Interactie met de kaart in de iOS SDK (preview)
In dit artikel leest u hoe u de gebeurtenissenbeheerder van kaarten gebruikt.
Notitie
Buitengebruikstelling van Azure Kaarten iOS SDK
De Azure Kaarten Native SDK voor iOS is nu afgeschaft en wordt buiten gebruik gesteld op 3-31-25. Om serviceonderbrekingen te voorkomen, migreert u tegen 3-31-25 naar de Azure Kaarten Web SDK. Zie de migratiehandleiding voor de Azure Kaarten iOS SDK voor meer informatie.
Interactie met de kaart
De kaart beheert alle gebeurtenissen via de events
eigenschap die gemachtigden accepteert, die voldoen aan het AzureMapDelegate
protocol. De volgende tabel bevat alle ondersteunde kaart-gebeurtenissen die worden weergegeven als methoden van het AzureMapDelegate
protocol.
Wijze | Description |
---|---|
azureMapCameraIsIdle(_ map: AzureMap) |
Wordt geactiveerd nadat het laatste frame wordt weergegeven, voordat de kaart de status Niet-actief invoert:
|
azureMapCameraIsMoving(_ map: AzureMap) |
Wordt herhaaldelijk geactiveerd tijdens een geanimeerde overgang van de ene weergave naar de andere. Dit kan het resultaat zijn van gebruikersinteractie of methoden. |
azureMapCameraMoveWasCanceled(_ map: AzureMap) |
Wordt geactiveerd bij het annuleren van een verplaatsingsaanvraag naar de camera. |
azureMap(_ map: AzureMap, cameraMoveIsStarted reason: CameraChangeReason) |
Wordt net voordat de kaart begint over te stappen van de ene weergave naar de andere. Dit kan programmatisch gebeuren of als gevolg van gebruikersinteractie. De reason parameter is een optieset die details geeft over hoe de camerabeweging is gestart. De volgende lijst bevat een overzicht van de mogelijke oorzaken:
|
azureMap(_ map: AzureMap, didTapAt location: CLLocationCoordinate2D) |
Wordt geactiveerd wanneer de kaart wordt ingedrukt en losgelaten op hetzelfde punt op de kaart. |
azureMap(_ map: AzureMap, didTapOn features: [Feature]) |
Wordt geactiveerd wanneer de kaart wordt ingedrukt en losgelaten op hetzelfde punt op een functie. |
azureMap(_ map: AzureMap, didAddLayer layer: Layer) |
Wordt geactiveerd wanneer een laag wordt toegevoegd aan de kaart. |
azureMap(_ map: AzureMap, didRemoveLayer layer: Layer) |
Wordt geactiveerd wanneer een laag uit de kaart wordt verwijderd. |
azureMapWillLoad(_ map: AzureMap) |
Wordt geactiveerd voordat resources worden gedownload die vereist zijn voor rendering. |
azureMapDidLoad(_ map: AzureMap) |
Wordt geactiveerd nadat resources zijn gedownload en de eerste visuele weergave van de kaart is voltooid. |
azureMap(_ map: AzureMap, didLongPressAt location: CLLocationCoordinate2D) |
Wordt geactiveerd wanneer de kaart wordt ingedrukt, even vastgehouden en vervolgens op hetzelfde punt op de kaart losgelaten. |
azureMap(_ map: AzureMap, didLongPressOn features: [Feature]) |
Wordt geactiveerd wanneer de kaart wordt ingedrukt, even vastgehouden en vervolgens op hetzelfde punt op een functie losgelaten. |
azureMapIsReady(_ map: AzureMap) |
Brandt wanneer aan de volgende voorwaarden wordt voldaan:
|
azureMap(_ map: AzureMap, didAddSource source: Source) |
Wordt geactiveerd wanneer een DataSource of VectorTileSource wordt toegevoegd aan de kaart. |
azureMap(_ map: AzureMap, didRemoveSource source: Source) |
Wordt geactiveerd wanneer een DataSource of VectorTileSource wordt verwijderd uit de kaart. |
azureMapStyleDidChange(_ map: AzureMap) |
Wordt geactiveerd wanneer de stijl van de kaart wordt geladen of gewijzigd. |
De volgende code laat zien hoe u de azureMap(_ map: AzureMap, didTapAt location: CLLocationCoordinate2D)
, azureMap(_ map: AzureMap, didTapOn features: [Feature])
en azureMapCameraIsMoving(_ map: AzureMap)
gebeurtenissen toevoegt aan de kaart.
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.
}
}
Zie het artikel Navigeren in het kaartartikel over de interactie met de kaart en trigger-gebeurtenissen voor meer informatie.
Bereik van functie-gebeurtenissen op laag
Wanneer u een gemachtigde aan de kaart toevoegt, kunnen laag-id's worden doorgegeven als een tweede parameter. Wanneer lagen worden doorgegeven, wordt de gebeurtenis alleen geactiveerd als deze op die laag plaatsvindt. Gebeurtenissen binnen het bereik van lagen worden ondersteund door de symbool-, bellen-, lijn- en veelhoeklagen.
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.
}
}
Aanvullende informatie
Zie de volgende artikelen voor volledige codevoorbeelden: