Interagir avec la carte dans le Kit de développement logiciel (SDK) iOS (préversion)
Cet article explique comment utiliser le gestionnaire des événements cartographiques.
Remarque
Mise hors service du kit de développement logiciel (SDK) iOS Azure Maps
Le Kit de développement logiciel (SDK) natif Azure Maps pour iOS est désormais déconseillé et sera mis hors service le 31 mars 2025. Pour éviter toute interruption de service, nous vous recommandons de migrer vers le kit de développement logiciel (SDK) web Azure Maps avant le 31 mars 2025. Pour plus d’informations, consultez le Guide de migration du kit de développement logiciel (SDK) iOS Azure Maps.
Interagir avec la carte
La carte gère tous les événements via sa propriété events
acceptant des délégués conformes au protocole AzureMapDelegate
. Le tableau suivant répertorie tous les événements de carte pris en charge, représentés en tant que méthodes du protocole AzureMapDelegate
.
Méthode | Description |
---|---|
azureMapCameraIsIdle(_ map: AzureMap) |
Déclenche après l’affichage de la dernière image, avant que la carte entre dans un état « inactif » :
|
azureMapCameraIsMoving(_ map: AzureMap) |
Déclenche à plusieurs reprises pendant une transition animée d’un affichage à un autre. Cela peut résulter d’une interaction utilisateur ou de méthodes. |
azureMapCameraMoveWasCanceled(_ map: AzureMap) |
Déclenche lors de l’annulation d’une demande de déplacement vers la caméra. |
azureMap(_ map: AzureMap, cameraMoveIsStarted reason: CameraChangeReason) |
Déclenche juste avant que la carte commence la transition d’un affichage à un autre. Cela peut se produire par programme ou à la suite d’une interaction utilisateur. Le paramètre reason est un ensemble d’options qui fournit des détails sur la façon dont le mouvement de la caméra a été initié. Voici la liste des raisons possibles :
|
azureMap(_ map: AzureMap, didTapAt location: CLLocationCoordinate2D) |
Déclenche en cas de pression, puis relâchement de celle-ci, sur un point de la carte. |
azureMap(_ map: AzureMap, didTapOn features: [Feature]) |
Déclenche en cas de pression, puis relâchement de celle-ci, sur une fonctionnalité. |
azureMap(_ map: AzureMap, didAddLayer layer: Layer) |
Déclenche lors de l’ajout d’un calque à la carte. |
azureMap(_ map: AzureMap, didRemoveLayer layer: Layer) |
Déclenche lors de la suppression d’un calque de la carte. |
azureMapWillLoad(_ map: AzureMap) |
Déclenche avant le téléchargement des ressources requises pour le rendu. |
azureMapDidLoad(_ map: AzureMap) |
Déclenche une fois les ressources téléchargées et le premier rendu visuel de la carte terminé. |
azureMap(_ map: AzureMap, didLongPressAt location: CLLocationCoordinate2D) |
Déclenche en cas de pression prolongée, puis relâchement de celle-ci, sur un point sur la carte. |
azureMap(_ map: AzureMap, didLongPressOn features: [Feature]) |
Déclenche en cas de pression prolongée, puis relâchement de celle-ci, sur une fonctionnalité. |
azureMapIsReady(_ map: AzureMap) |
Déclenche quand les conditions suivantes sont réunies,
|
azureMap(_ map: AzureMap, didAddSource source: Source) |
Déclenche lors de l’ajout de DataSource ou de VectorTileSource à la carte. |
azureMap(_ map: AzureMap, didRemoveSource source: Source) |
Déclenche lors de la suppression de DataSource ou de VectorTileSource de la carte. |
azureMapStyleDidChange(_ map: AzureMap) |
Déclenche lors du chargement ou de la modification du style de la carte. |
Le code suivant montre comment ajouter les événements azureMap(_ map: AzureMap, didTapAt location: CLLocationCoordinate2D)
, azureMap(_ map: AzureMap, didTapOn features: [Feature])
et azureMapCameraIsMoving(_ map: AzureMap)
à la carte.
class ShowSimpleEventsHandlingViewController: UIViewController, AzureMapDelegate {
// Other Setup...
func setupMapControl() {
mapControl.onReady { map in
// Add the delegate to the map to respond to events.
map.events.addDelegate(self)
}
}
func azureMap(_ map: AzureMap, didTapAt location: CLLocationCoordinate2D) {
// Map clicked.
}
func azureMap(_ map: AzureMap, didTapOn features: [Feature]) {
// Feature clicked.
}
func azureMapCameraIsMoving(_ map: AzureMap) {
// Map camera moved.
}
}
Pour plus d’informations, consultez l’article Navigation dans la carte expliquant comment interagir avec la carte et déclencher des événements.
Étendre les événements de fonctionnalité à la couche
Lors de l’ajout d’un délégué à la carte, des ID de calque peuvent être transmis en tant que deuxième paramètre. Lors de la transmission de calque, les événements ne déclenchent que s’ils se produisent sur cette couche. Les événements inclus dans l’étendue de couches sont pris en charge par les couches de symboles, de bulles, de lignes et de polygones.
class ShowScopedEventsHandlingViewController: UIViewController, AzureMapDelegate {
// Other Setup...
func setupMapControl() {
mapControl.onReady { map in
// Create a data source.
let source = DataSource()
map.sources.add(source)
// Add data to the data source.
source.add(geometry: Point(CLLocationCoordinate2D(latitude: 0, longitude: 0)))
// Create a layer and add it to the map.
let layer = BubbleLayer(source: source)
map.layers.addLayer(layer)
// Add the delegate to the map to respond to events.
map.events.addDelegate(self, for: [layer.id])
}
}
func azureMap(_ map: AzureMap, didTapOn features: [Feature]) {
// One or more features tapped.
}
func azureMap(_ map: AzureMap, didLongPressOn features: [Feature]) {
// One or more features long pressed.
}
}
Informations supplémentaires
Pour voir des exemples de codes complets, consultez les articles suivants :