Les superpositions au sol sont des superpositions sur la carte qui sont associées à des coordonnées de latitude/longitude. Elles se déplacent donc lorsque vous faites glisser la carte ou que vous faites un zoom.
Introduction
Une superposition au sol est une image fixée sur une carte. Contrairement aux repères, les superpositions au sol sont orientées vers la surface de la Terre plutôt que vers l'écran. Par conséquent, si vous appliquez une rotation, une inclinaison ou un zoom sur la carte, l'orientation de l'image est modifiée.
Pour ajouter une superposition au sol, créez un objet GMSGroundOverlay
qui définit à la fois une icône et des limites. Si vous ne spécifiez pas l'un de ces éléments, la superposition au sol n'apparaîtra pas sur la carte. Vous pouvez éventuellement spécifier des paramètres supplémentaires qui affecteront le positionnement de l'image sur la carte.
Une fois les options nécessaires définies, définissez la propriété map
de cet objet pour ajouter la superposition.
Ajouter une superposition
- Instanciez un nouvel objet
GMSGroundOverlay
. - Définissez la propriété
icon
sur une instance deUIImage
. - Définissez la propriété
bounds
sur une instance deGMSCoordinateBounds
. Les limites représentent les coins sud-ouest et nord-est de l'image. - Définissez les propriétés facultatives, telles que
bearing
etzoomLevel
, comme vous le souhaitez. - Définissez la propriété
map
. L'image s'affiche sur la carte.
L'exemple ci-dessous montre comment ajouter une superposition au sol à un objet GMSMapView
existant.
Swift
let southWest = CLLocationCoordinate2D(latitude: 40.712216, longitude: -74.22655) let northEast = CLLocationCoordinate2D(latitude: 40.773941, longitude: -74.12544) let overlayBounds = GMSCoordinateBounds(coordinate: southWest, coordinate: northEast) // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg let icon = UIImage(named: "newark_nj_1922") let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView
Objective-C
CLLocationCoordinate2D southWest = CLLocationCoordinate2DMake(40.712216,-74.22655); CLLocationCoordinate2D northEast = CLLocationCoordinate2DMake(40.773941,-74.12544); GMSCoordinateBounds *overlayBounds = [[GMSCoordinateBounds alloc] initWithCoordinate:southWest coordinate:northEast]; // Image from http://www.lib.utexas.edu/maps/historical/newark_nj_1922.jpg UIImage *icon = [UIImage imageNamed:@"newark_nj_1922"]; GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView;
Supprimer un calque
Vous pouvez supprimer un calque de fond de la carte en définissant la propriété map
de votre GMSGroundOverlay
sur nil
. Vous pouvez également supprimer toutes les superpositions (y compris les superpositions de terrain actuellement sur la carte) en appelant la méthode clear
de GMSMapView
.
Swift
mapView.clear()
Objective-C
[mapView clear];
Si vous souhaitez modifier un calque de fond après l'avoir ajouté à la carte, veillez à conserver l'objet GMSGroundOverlay
. Vous pourrez modifier le calque de fond plus tard en apportant des modifications à cet objet.
Swift
let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon) overlay.bearing = 0 overlay.map = mapView // ... overlay.isTappable = true
Objective-C
GMSGroundOverlay *overlay = [GMSGroundOverlay groundOverlayWithBounds:overlayBounds icon:icon]; overlay.bearing = 0; overlay.map = mapView; // ... overlay.tappable = YES;
Événements
Vous pouvez écouter les événements qui se produisent sur la carte, par exemple lorsqu'un utilisateur appuie sur une superposition. Pour écouter des événements, vous devez implémenter le protocole GMSMapViewDelegate
. Consultez le guide des événements et la liste des méthodes sur GMSMapViewDelegate
.