2013-04-04 12 views
20

Ich bin neu in der iOS-Entwicklung. Dies betrifft das Marker-Info-Fenster im Google Maps iOS SDK.Wie zeigt man ein Info-Fenster in iOS Google Maps, ohne auf Marker zu tippen?

Ich verstehe, wir können einen Marker mit Info-Fenster mit GMSMarkerOption erstellen.

GMSMarkerOption *myLocationOption = [GMSMarkerOption alloc]; 
myLocationOption .title = @"My Location"; 
myLocationOption .snippet = @"Lat:...., Lang:...."; 

[mapView addMarkerOption:myLocationOption]; 

Gemäß dem obigen Code wird Marker wie erwartet in der Kartenansicht angezeigt. Und tippen auf Marker zeigt das "My Location" Infofenster in Google Maps, was gut ist.

Können wir das Infofenster trotzdem programmatisch anzeigen, wenn der Benutzer zum Custom Map Screen geht?

Antwort

26
GMSMarkerOptions *myLocationOptions = [GMSMarkerOptions options]; 
myLocationOptions.title = @"My Location"; 
myLocationOptions.snippet = @"Lat:...., Lang:...."; 

mapView.selectedMarker = [mapView addMarkerWithOptions:myLocationOptions]; 

(beachten Sie, dass es Optionen, nicht Option)

+0

gmsmarkeroptions? Wird es abgeschrieben? –

55

Das hat sich geändert auf Google Maps SDK und es ist einfacher zu verstehen:

GMSMarker *marker = [[GMSMarker alloc] init]; 
marker.position = coordinate; 
marker.title = @"Location selected"; 
marker.snippet = @"Testing"; 
marker.map = mapView_; 

//Show info window on map 
[mapView_ setSelectedMarker:marker]; 

Sie verwenden jetzt setSelectedMarker Verfahren ein zeigen, Infofenster einer Markierung

+0

Ich habe den obigen Code benutzt, aber das Infofenster wird nur angezeigt, wenn ich auf den Marker geklickt habe. Gibt es trotzdem einen Hinweis auf das Infowindow und den Pin gleichzeitig? –

+0

@BandishDave, der obige Code sollte tun, was Sie suchen. Wenn nicht, hat sich vielleicht wieder etwas am SDK geändert – estemendoza

+0

@BandishDave - ** setSelectedMarker ** funktioniert immer noch ab dem 26.12.14 (SDK v1.9.1). –

2
// Below line will shows the infowindow for marker with out tapping on it 
    [mapView setSelectedMarker:myLocationOptions]; // myLocationOptions is your desired GMSMarker to show Infowindow with out tapping . 

Happy Cod. No. ing :)

+5

Es wurde bereits 2 Jahre vor Ihrem @estemendoza beantwortet! – Husam

7

Swift 3,0

func addMarker(_ location:CLLocation){ 
     var locationMarker: GMSMarker! 
     if locationMarker != nil { 
      locationMarker.map = nil 
     } 
     locationMarker = GMSMarker(position: location.coordinate) 
     locationMarker.map = mapView 
     locationMarker.appearAnimation = kGMSMarkerAnimationPop 
     locationMarker.icon = GMSMarker.markerImage(with: UIColor.green) 
     locationMarker.opacity = 0.85 
     locationMarker.isFlat = true 
     locationMarker.snippet = "My Location" 
     mapView.selectedMarker=locationMarker 

    } 

unterhalb der Linie ist die Antwort

mapView.selectedMarker=locationMarker 
3

swift 3

self.mapView.selectedMarker = marker

In th e Fall einer schnellen 3 können Sie die snipet öffnen USInt die selectedMarker

Wenn Sie den Marker in einer ähnlichen Art und Weise erstellen zu:

marker.position = CLLocationCoordinate2D(latitude: 34.1331168, longitude: -118.3550723) 
marker.title = "My super place name" 
marker.snippet = "Are you looking a place to play? This is your place! " 
marker.appearAnimation = kGMSMarkerAnimationPop 
marker.map = self.mapView 
Verwandte Themen