Delen via


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:

  • Er worden geen cameraovergangen uitgevoerd.
  • Alle momenteel aangevraagde tegels zijn geladen.
  • Alle animaties voor vervagen/overgangen zijn voltooid.

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:
  • Onbekend
  • Via programmacode
  • North Reset
  • Panbeweging
  • Knijpbeweging
  • Beweging draaien
  • Inzoombeweging
  • Uitzoombeweging
  • Beweging met één vinger in- en uitzoomen
  • Beweging voor kantelen
  • Overgang geannuleerd
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:
  • De kaart wordt in eerste instantie geladen
  • De afdrukstand van de app verandert
  • Het laden van de minimaal vereiste kaartbronnen is voltooid
  • De kaart is klaar om programmatisch te worden gebruikt.
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: