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?
GMSMarkerOptions *myLocationOptions = [GMSMarkerOptions options];
myLocationOptions.title = @"My Location";
myLocationOptions.snippet = @"Lat:...., Lang:....";
mapView.selectedMarker = [mapView addMarkerWithOptions:myLocationOptions];
(notez que c'est Options, pas Option)
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
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
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
// 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 :)
mMapView.selectedMarker = marqueur
Pour ceux qui ont atterri ici en utilisant MKMapView
mkMapView.selectedAnnotations = [annotation]
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
}