我正在使用Google Maps SDK在Xcode中编写应用程序,我的地图上的标记显示了不同的位置。
我有一个UIPickerView,根据用户选择的标记显示标记,如下所示:
代码片段:
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
switch (row)
{
case 0: // Display no marker flags
{
....
}
break;
case 1: // Display vendor marker flags
{
if (isSelectedVendors == NO)
{
// Mark item as selected in picker list
isSelectedVendors = YES;
[self addVendorMarkersToMap];
}
break;
}
....
}
在地图上加载标记的方法片段:
- (void)addVendorMarkersToMap
{
// Add coordinates to know where to place markers
NSArray *coords = [ [NSArray alloc] initWithObjects: ...];
// Loop through all the coordinates and mark it on the map
for (int i = 0; i < [coords count]; i = i + 2)
{
GMSMarker *marker = [ [GMSMarker alloc] init];
marker.position = CLLocationCoordinate2DMake([ [coords objectAtIndex:i] floatValue], [ [coords objectAtIndex: (i + 1)] floatValue]);
marker.appearAnimation = kGMSMarkerAnimationPop;
marker.icon = [UIImage imageNamed:@"vendors.png"];
marker.map = mapView;
}
}
Google Map的文档没有解释如何在地图上检测标记。
由于我使用UIPickerView在地图上显示某些标记,如何在地图上检测标记以删除它们并仅显示用户从UIPickerView中选择的标记?
我唯一知道要做的就是使用[mapView clear]
,但这会清除地图上的所有内容,甚至是我在地图上的叠加层。