2016-05-03 18 views
1

iPhoneアプリでobjective-cでGoogleマップを使用していますが、マーカーは所定の場所にあります。特定の場所をクリックすると、地図をクリックしてマーカーの場所を選択した場所に変更します。 これを行う方法は? ありがとうございます。onClick Googleマップでマーカー位置を変更するios

私のコード:

GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:29.964996 
                 longitude:30.939680 zoom:5 
                  bearing:0 
                viewingAngle:0 
          ]; 
_mapView = [GMSMapView mapWithFrame:viewOfMap.bounds camera:camera]; 
_mapView.autoresizingMask = UIViewAutoresizingFlexibleWidth| 
UIViewAutoresizingFlexibleHeight; 


[_mapView addObserver:self 
      forKeyPath:@"myLocation" 
       options:NSKeyValueObservingOptionNew 
       context:NULL]; 

[viewOfMap addSubview:_mapView]; 


dispatch_async(dispatch_get_main_queue(), ^{ 
    //_mapView.myLocationEnabled = YES; 
    _mapView.myLocationEnabled = YES; 
}); 

GMSMarker *marker = [[GMSMarker alloc] init]; 
marker.position = CLLocationCoordinate2DMake(lat, lag); 
marker.map = _mapView; 
+0

チェックこれはSO疑問[28955976](http://stackoverflow.com/questions/28955976/gmsmarker-icon-from-center-ios)と[16686795](のhttp:// stackoverflowの.com/questions/16686795/ios-google-maps-sdk-gmsmarker-positioning)が役に立ちました;) – KENdi

答えて

1
- (BOOL)mapView:(GMSMapView *)mapView didTapMarker:(GMSMarker *)marker 
{ 
    marker.icon=[UIImage imageNamed:@"selectedicon.png"];//selected marker 

    for (int i=0; i<[markerArray count]; i++) 
    { 
     GMSMarker *unselectedMarker=markerArray[i]; 
     //check selected marker and unselected marker position 
     if(unselectedMarker.position.latitude!=marker.position.latitude && unselectedMarker.position.longitude!=marker.position.longitude) 
     { 
      unselectedMarker.icon=[UIImage imageNamed:@"unselectedicon.png"]; 
     } 
    } 
    return NO; 
} 
+0

これは私のために働いたので、このコードを使用してください。 –

+0

クリックイベントでマーカー画像を変更したい場合は、このコードを使用してください。 – ravinder521986

0

私はあなたの質問を理解していれば、あなたは場所をタップすると、その場所にマーカーの動きを持っていると思います。

ビューコントローラがGMSMapViewDelegateを実装し、didTapAtCoordinate代理人メソッドを使用していることを確認してください。このような何か:

-(void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate { 
    [marker setPosition:coordinate]; 
} 
関連する問題