2016-05-03 11 views
1

Ich benutze eine Google-Karte in iPhone App von Objective-C, es ist in Ordnung und der Marker ist an einem bestimmten Ort. Ich möchte, wenn Sie auf einen bestimmten Ort klicken, ändern Sie den Marker-Standort zum ausgewählten Ort, indem Sie auf die Karte klicken. Wie geht das? Vielen Dank im Voraus.Ändern Sie die Marker-Position durch onClick google map ios

mein Code:

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

prüfen diese Frage SO [28955976] (http://stackoverflow.com/questions/28955976/gmsmarker-icon-from-center-ios) und [16686795] (http: // Stackoverflow .com/questions/16686795/ios-google-maps-sdk-gsmarker-positionierung) wenn es dir helfen kann;) – KENdi

Antwort

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

das funktionierte für mich, benutze diesen code. –

+0

gut, es funktioniert gut, dieser Code wird verwendet, wenn Sie das Markerbild bei Klickereignis ändern möchten. – ravinder521986

0

Wenn ich Ihre Frage verstehen, wollen Sie einen Ort erschließen und haben einen Marker bewegen zu diesem Ort.

Stellen Sie sicher, dass der View Controller GMSMapViewDelegate implementiert und die Delegatenmethode didTapAtCoordinate verwendet. Etwas wie folgt aus:

-(void)mapView:(GMSMapView *)mapView didTapAtCoordinate:(CLLocationCoordinate2D)coordinate { 
    [marker setPosition:coordinate]; 
}