所以我正在使用地图为每个在联系人中都有地址的人添加点数,而且我有点难以确定如何为未知数量的联系人设置它。现在我设置它的方式,它只是为列表中的最后一个联系人添加一个引脚。这里有一些代码:address是一个从addressProperty设置的字符串。
if(addressProperty != nil)
{
[location geocodeAddressString:address completionHandler:^(NSArray *placemarks, NSError *error) {
NSMutableArray *array = [[NSMutableArray alloc]init];
for(int a = 0; a < [placemarks count]; a++)
{
self.placeMarkData = [placemarks objectAtIndex:a];
[point setCoordinate: self.placeMarkData.location.coordinate];
[array addObject:point];
pin.animatesDrop = YES;
point.title = address;
[map addAnnotations:array];
}
}];
}
因此,当我运行应用程序时,我可以看到每个位置都设置了针脚并移动到下一个位置,直到它在列表中的最后位置结束。如何为每个添加一个点?我相信这是一个简单的解决方案,但它现在正在躲避我。
答案 0 :(得分:1)
所有这些都必须有一个循环才能通过所有联系人。 location
是CLGeocoder吗?您不应该在同一个地理编码器上设置两个geocodeAddressString函数,您需要为您执行的每个地理编码初始化一个新的geocode(除非您确定以前的地理编码,这是异步的,已完成)。
其他四个问题:
point
变量每次都是相同的。当您更改坐标时,该点将出现在地图上的不同位置,但它是相同的,因此您在任何时候都不会在地图上看到更多。pin
用于什么?array
添加到地图中。如果您想要屏幕上的点,请将它们单独添加到地图中。添加整个阵列,然后向阵列添加另一个东西并再次添加整个阵列是一种浪费。答案 1 :(得分:0)
似乎是代码中的一个简单错误。你能尝试在for循环之外移动[map addAnnotations:array];
行吗?