Google Mapsでマーカーをドラッグする
Google Maps SDK for iOSの1.5からマーカーをドラッグできるようになってる。
https://developers.google.com/maps/documentation/ios/releases
GMSMarker *marker = [GMSMarker markerWithPosition:coordOPin];
marker.draggable = YES;
marker.map = self.mapView;
self.mapView.delegate = self;
これだけでドラッグできるようになる。 ドラッグ開始、ドラッグ中、ドラッグ終了のそれぞれでGMSMapViewDelegateのメッセージが呼ばれる
//ドラッグ開始
- (void)mapView:(GMSMapView *)mapView didBeginDraggingMarker:(GMSMarker *)marker;
//ドラッグ中
- (void)mapView:(GMSMapView *)mapView didEndDraggingMarker:(GMSMarker *)marker;
//ドラッグ終了
- (void)mapView:(GMSMapView *)mapView didDragMarker:(GMSMarker *)marker;
実装は特に問題なかったが、実際に動かしてみると簡単にはドラッグできなかった。
これは、マーカーをドラッグするには、まずマーカーを長押し(Long Tap)する必要がある。というのをというのを知らなかったため。
長押しすると、マーカーが少し「ジャンプ」したようになり、この状態になって初めてドラッグができるようになる。
GoogleMapのアプリを使っていてもこのような動きは見たことがないのだが・・・、これって一般的な仕様なの?