26

我正在使用故事板和谷歌地图构建一个 iOS 应用程序。使用iOS6

我的应用程序具有在 facebook 应用程序中看到的拆分视图导航

在我的左视图中,我在列表中选择一个具有纬度/长线的项目,并通过以下方法在我的地图上显示它

- (void)viewWillAppear:(BOOL)animated

我想在添加另一个标记之前删除此方法中的所有标记(因此地图上只有一个标记),有没有办法做到这一点?下面是我向 mapView 添加标记的代码

在此先感谢 - 乔恩

- (void)loadView
{
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:poi.lat
                                                            longitude:poi.lon
                                                                 zoom:15];
    mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];

    mapView.myLocationEnabled = YES;
    self.view = mapView;
    mapView.mapType = kGMSTypeHybrid;

    //Allows you to tap a marker and have camera pan to it
    mapView.delegate = self;
}

-(void)viewWillAppear:(BOOL)animated
{
    GMSMarkerOptions *options = [[GMSMarkerOptions alloc] init];
    options.position = CLLocationCoordinate2DMake(poi.lat, poi.lon);
    options.title =  poi.title;
    options.snippet = poi.description;
    options.icon =  [UIImage imageNamed:@"flag-red.png"];
    [mapView addMarkerWithOptions:options];

    [mapView animateToLocation:options.position];
    [mapView animateToBearing:0];
    [mapView animateToViewingAngle:0];
}
4

7 回答 7

57

删除所有标记

mapView.clear()

删除特定标记

myMarker.map = nil
于 2016-03-14T07:20:34.370 回答
35

要删除所有标记,请执行以下操作:

[self.mapView clear];
于 2014-01-27T18:09:21.463 回答
16

请参考谷歌地图文档:Google Maps SDK for iOS

请参阅标题“删除标记”部分。始终检查此类方法的文档。

于 2013-04-17T18:43:03.723 回答
6

mapView.clear()

// 它将清除 GMSMapView 中的所有标记。

于 2017-05-16T06:09:38.697 回答
1

如果您只想删除一组标记中的一个标记,这有点棘手。

 let marker = GMSMarker(position: coordinate) //
  marker.icon = UIImage(named: "ic_pin_marker")
  marker.map = mapView

  mapView.selectedMarker = marker //  the specific marker you want to remove or modify by set it as selectedMarker on the map.

那么您要删除或修改

mapView.selectedMarker.map = nil //example to remove the marker form the map.

希望对您的情况有用。

于 2020-12-16T07:50:10.853 回答
1

删除单个标记

yourMarkerName.map = nil

删除所有标记

yourMapViewName.clear()

于 2019-12-23T06:28:15.557 回答
0

mapView.clear() 不是一个好主意。因为适用于 iOS 的 Places SDK 强制执行每 24 小时 1,000 个请求的默认限制。(如果您的应用程序超出限制,应用程序将开始失败。验证您的身份以每 24 小时获得 150,000 个请求。) whit mapView.clear( ) 请求增加。最好的方法是清除每个标记和折线。

于 2018-11-14T07:27:27.353 回答