2013-04-04 13 views
20

Jestem nowy w rozwoju iOS. Dotyczy to okna informacji o znacznikach w Google Maps iOS SDK.Jak wyświetlić okno informacyjne w mapach Google na iOS bez stukania w Marker?

Rozumiem, możemy stworzyć znacznik z oknem informacyjnym przy pomocy GMSMarkerOption.

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

[mapView addMarkerOption:myLocationOption]; 

Zgodnie z powyższym kodem, Marker wyświetlany w widoku mapy zgodnie z oczekiwaniami. Stukanie w znacznik pokazuje okno informacyjne "Moja lokalizacja" na mapach Google, które jest dobre.

Czy mimo to możemy wyświetlać okno informacyjne programowo, gdy użytkownik przejdzie do ekranu niestandardowej mapy?

Odpowiedz

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

mapView.selectedMarker = [mapView addMarkerWithOptions:myLocationOptions]; 

(zauważ, że to opcje, a nie opcja)

+0

gmsmarkeroptions? czy jest amortyzowany? –

55

ta uległa zmianie na Google Maps SDK i łatwiej zrozumieć:

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

użyć teraz setSelectedMarker sposób, aby pokazać okno informacyjne znacznika

+0

Użyłem powyższego kodu, ale infowindow wyświetla się tylko wtedy, gdy kliknąłem na marker.jest tam mimo to pokazywanie infowindow i pin jednocześnie? –

+0

@BandishDave, powyższy kod powinien zrobić to, czego szukasz. Jeśli nie, może coś zmieniło się na SDK ponownie – estemendoza

+0

@BandishDave - ** setSelectedMarker ** nadal działa od 12/26/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 . 

Wesołego dorsza ing :)

+5

To już odpowiedział 2 lata przed twoim przez @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 

    } 

poniżej linii jest odpowiedzią

mapView.selectedMarker=locationMarker 
3

Swift 3

self.mapView.selectedMarker = marker

zab e przypadek szybkiej 3, można otworzyć snipet USINT się selectedMarker

Jeśli tworzysz znacznik w podobny sposób:

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 
Powiązane problemy