2013-04-04 10 views
20

Sono nuovo nello sviluppo di iOS. Si tratta della finestra informativa Marker nell'SDK di Google Maps per iOS.Come mostrare una finestra informativa in iOS Google maps senza toccare Marker?

Capisco, possiamo creare un marcatore con finestra informazioni utilizzando GMSMarkerOption.

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

[mapView addMarkerOption:myLocationOption]; 

Come da codice precedente, indicatore visualizzato nella vista Mappa come previsto. E toccando sull'indicatore mostra la finestra di informazioni "La mia posizione" in Google maps che è buona.

Esiste comunque la possibilità di mostrare la finestra di informazioni a livello di codice quando l'utente accede alla schermata Mappa personalizzata?

risposta

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

mapView.selectedMarker = [mapView addMarkerWithOptions:myLocationOptions]; 

(notare che si tratta di opzioni, non è opzionale)

+0

gmsmarkeroptions? è deprezzato? –

55

Questo è cambiato in Google Maps SDK ed è più facile da capire:

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]; 

Si utilizza ora setSelectedMarker metodo per mostrare un info window di un marker

+0

ho usato sopra il codice, ma infowindow visualizzato solo quando ho toccato su marker.è lì comunque a mostrare infowindow e pin simultaneamente ?? –

+0

@BandishDave, il codice sopra dovrebbe fare quello che stai cercando. In caso contrario, potrebbe essere cambiato qualcosa sull'SDK – estemendoza

+0

@BandishDave - ** setSelectedMarker ** funziona ancora a partire dal 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 ing :)

+5

Hai già risposto 2 anni prima a te per @estemendoza! – 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 

    } 

sotto la linea è la risposta

mapView.selectedMarker=locationMarker 
3

rapida 3

self.mapView.selectedMarker = marker

In th e caso di rapida 3, è possibile aprire il snipet SINA la selectedMarker

Se si sta creando il marcatore in un modo simile a:

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 
Problemi correlati