MapKit pin Annotations的奇怪行为

时间:2013-08-13 07:28:30

标签: iphone objective-c mkmapview mapkit callout

当我在具有相同地址的mapView上放置5个引脚时,当我们点击选定的注释视图时,仅显示两个引脚的标注气泡。当我点击引脚然后标注仅显示两个引脚。

如何解决这个问题,我想显示所有引脚的标注,即使它们具有相同的地址。

2 个答案:

答案 0 :(得分:0)

这是因为根据您的坐标要求,地图的缩放级别不正确。虽然你在相同的地址上注释了五个引脚,但是在坐标上应该有微小的差别,以便分开。

你应该在经度德尔塔和latitudeDelta来克服这一点。

对于前。你可以设置

<coordinate_object>.latitudeDelta = 0.04;
        <coordinate_object>.longitudeDelta = 0.04;

delta值越小,缩放级别越高,反之亦然。

享受编程!

答案 1 :(得分:0)

在将每个注释添加到地图之前,您应该检查在同一个地方或几米内是否已有另一个注释。如果是这样,那么将这些注释的数据组合成一个可以保持增长的结构(NSMutableArray是我的第一个猜测),然后将该组合数据添加为新的注释*。然后,当敲击引脚时,它将询问呼出详细信息并告诉您触发了哪个注释,您可以在正确设置标注时检查注释是否有一个数据或多个数据。 你需要有一个自定义注释类,但如果你存储有关每个注释类的有用数据,你可能还需要它。

*您还需要确保第一个注释不会留在地图上,因此您可以在执行任何注释之前对数据进行扫描并组合成数组。每个注释都会存储一个值数组,其中大多数只有一个,但是如果它们太靠近,那么数组就会有很多值,而你的callout函数必须显示它。