gpt4 book ai didi

iphone - 使 map 图钉从簇中分散开来

转载 作者:行者123 更新时间:2023-12-03 19:44:36 25 4
gpt4 key购买 nike

我的 map 有两个自定义注释类:一个用于与某个位置相关的单个帖子,另一个用于这些帖子的集群。该集群存储指向它包含的所有帖子的指针,以及中心纬度/经度位置(使用它包含的帖子的位置计算)。我的行为是,当我单击集群注释时,它会删除该集群并将其帖子添加到 map 中。我想要的是将簇扩展为动画时更改引脚掉落注释,从而使新引脚从簇中心向外移动到新位置。然而,我也有一些帖子由于与其他点的距离而从未聚集在一起。显然他们不能有这个动画,因为没有相关的位置可供他们向外移动。有谁知道我如何实现这个?

最佳答案

使引脚从簇中心展开实际上非常容易。当您制作新的单针注释时,将它们的坐标设置为簇中心:

id <MKAnnotation> pin;
CLLocationCoordinate2D clusterCenter;
// ...
pin.coordinate = clusterCenter;

viewForAnnotation:中,不要为新图钉设置动画:

MKPinAnnotationView *pinView;
// ...
pinView.animatesDrop = NO;

然后,将图钉添加到 map View 后,您将通过动画将它们移动到真实位置:

MKMapView *mapView;
id <MKAnnotation> pin;
// ...
// probably loop over annotations
[mapView addAnnotation:pin];
NSTimeInterval interval = 1.0; // or whatever
[UIView animateWithDuration:interval animations:^{
// probably loop over annotations here again
CLLocationCoordinate2D realCoord;
// ...
pin.coordinate = realCoord;
}];

至于非聚集引脚的问题,在不了解详细实现的情况下很难回答,但我认为有很多可能性。您可以只使用一个简单的标志来跳过动画。或者你可以完全一样地对待它们,即使它们是单独的,仍然对它们进行“集群”,并且仍然为它们设置动画……效率不是最高,但它会起作用,并且你的代码会更干净。

关于iphone - 使 map 图钉从簇中分散开来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7886750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com