web-dev-qa-db-fra.com

Comment afficher une fenêtre d'informations dans Google Maps iOS sans toucher au marqueur?

Je suis nouveau dans le développement iOS. Ceci concerne la fenêtre d'informations sur les marqueurs dans le SDK iOS de Google Maps.

Je comprends, nous pouvons créer un marqueur avec une fenêtre d’information en utilisant GMSMarkerOption.

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

[mapView addMarkerOption:myLocationOption];

Conformément au code ci-dessus, le marqueur s'affiche dans la vue cartographique comme prévu. Et taper sur le marqueur affiche la fenêtre d’information "Ma position" sur Google Maps, ce qui est bien.

Peut-on quand même afficher la fenêtre d’information par programmation lorsque l’utilisateur accède à l’écran Carte personnalisée?

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

mapView.selectedMarker = [mapView addMarkerWithOptions:myLocationOptions];

(notez que c'est Options, pas Option)

31
Rikkles

Cela a changé sur Google Maps SDK et il est plus facile à comprendre:

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

Vous utilisez maintenant setSelectedMarker method pour afficher la fenêtre d'informations d'un marqueur

59
estemendoza

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

    }

en dessous de la ligne est la réponse

mapView.selectedMarker=locationMarker
9
Sourabh Sharma

Swift 3

self.mapView.selectedMarker = marker

Dans le cas de Swift 3, vous pouvez ouvrir la snipet en utilisant la selectedMarker

Si vous créez le marqueur de manière similaire à:

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
3
MrMins
   // 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 .

Bonne codage :)

2
Naresh Reddy M

mMapView.selectedMarker = marqueur

1
xcodedeveloper

Pour ceux qui ont atterri ici en utilisant MKMapView

mkMapView.selectedAnnotations = [annotation]
0
Jack

GMSMarkerOptions est obsolète. Cela m'a aidé à afficher la fenêtre d'informations sans toucher-

func mapView(_ mapView: GMSMapView, idleAt position: GMSCameraPosition) {
    myMapView.selectedMarker = myGMSMarker
}
0
kumarsiddharth123