ストーリーボードとGoogleマップを使用してiOSアプリを構築しています。 iOS6を使用する
私のアプリケーションは、facebookアプリで見られるような分割ビューナビゲーションを特徴としています
左のビューで、緯度/経度コードが含まれるリスト内のアイテムを選択し、次の方法でマップに表示しています
- (void)viewWillAppear:(BOOL)animated
別のマーカーを追加する前にこの方法ですべてのマーカーを削除したいので(マップ上にマーカーが1つだけあります)、これを行う方法はありますか?以下は、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];
}
Googleマップのドキュメントを参照してください: iOS用GoogleマップSDK
セクションマーカー「マーカーを削除する」を参照してください。そのような方法については、常にドキュメントを確認してください。
すべてのマーカーを削除するには
mapView.clear()
特定のマーカーを削除するには
myMarker.map = nil
すべてのマーカーを簡単に削除するには:
[self.mapView clear];
mapView.clear()
// GMSMapViewからすべてのマーカーをクリアします。
mapView.clear()はお勧めできません。 iOSのPlaces SDKは24時間あたり1,000リクエストのデフォルト制限を適用するためです(アプリが制限を超えると、アプリは失敗し始めます。24時間あたり150,000リクエストを取得するには、IDを確認してください)。 )要求が増加します。最良の方法は、各マーカーとポリラインをクリアすることです。
単純な
Swift
var mapView = GMSMapView() // Global Declaration
self.mapView.clear() // clear the markers
最初に、マップビューアイコンをクリアし、その後にマーカーを設定します。
ループを使用する前に、マップビューマーカー固定関数に書き込む必要があります。