Interakcja z mapą w zestawie SDK systemu iOS (wersja zapoznawcza)
W tym artykule pokazano, jak używać menedżera zdarzeń mapowania.
Uwaga
Wycofanie zestawu AZURE Mapy iOS SDK
Zestaw Azure Mapy Native SDK dla systemu iOS jest teraz przestarzały i zostanie wycofany w dniu 3/31/25. Aby uniknąć przerw w działaniu usługi, przeprowadź migrację do zestawu Sdk sieci Web usługi Azure Mapy do 31/31/25. Aby uzyskać więcej informacji, zobacz Przewodnik migracji zestawu SDK platformy Azure Mapy iOS.
Interakcja z mapą
Mapa zarządza wszystkimi zdarzeniami za pośrednictwem jej events
właściwości akceptujących delegatów, które są zgodne z protokołem AzureMapDelegate
. W poniższej tabeli wymieniono wszystkie obsługiwane zdarzenia mapy reprezentowane jako metody AzureMapDelegate
protokołu.
Metoda | opis |
---|---|
azureMapCameraIsIdle(_ map: AzureMap) |
Zostanie wyzwolony po renderowaniu ostatniej ramki, zanim mapa przejdzie w stan bezczynności:
|
azureMapCameraIsMoving(_ map: AzureMap) |
Uruchamia się wielokrotnie podczas animowanego przejścia z jednego widoku do drugiego. Może to być wynik interakcji użytkownika lub metod. |
azureMapCameraMoveWasCanceled(_ map: AzureMap) |
Wystrzeliwuje podczas anulowania żądania ruchu do kamery. |
azureMap(_ map: AzureMap, cameraMoveIsStarted reason: CameraChangeReason) |
Uruchamia się tuż przed rozpoczęciem przejścia mapy z jednego widoku do drugiego. Może się to zdarzyć programowo lub w wyniku interakcji użytkownika. Parametr reason jest zestawem opcji, który zawiera szczegółowe informacje o sposobie inicjowania ruchu aparatu. Poniższa lista przedstawia możliwe przyczyny:
|
azureMap(_ map: AzureMap, didTapAt location: CLLocationCoordinate2D) |
Uruchamia się, gdy mapa jest naciśnięta i zwalniana w tym samym punkcie na mapie. |
azureMap(_ map: AzureMap, didTapOn features: [Feature]) |
Uruchamia się, gdy mapa jest naciśnięta i zwalniana w tym samym punkcie funkcji. |
azureMap(_ map: AzureMap, didAddLayer layer: Layer) |
Uruchamia się po dodaniu warstwy do mapy. |
azureMap(_ map: AzureMap, didRemoveLayer layer: Layer) |
Uruchamia się po usunięciu warstwy z mapy. |
azureMapWillLoad(_ map: AzureMap) |
Uruchamia się przed pobraniem zasobów wymaganych do renderowania. |
azureMapDidLoad(_ map: AzureMap) |
Wyzwalane po pobraniu zasobów i zakończeniu pierwszego wizualnego renderowania mapy. |
azureMap(_ map: AzureMap, didLongPressAt location: CLLocationCoordinate2D) |
Uruchamia się, gdy mapa jest naciśnięta, przechowywana przez chwilę, a następnie zwalniana w tym samym punkcie na mapie. |
azureMap(_ map: AzureMap, didLongPressOn features: [Feature]) |
Uruchamia się, gdy mapa jest naciśnięta, przechowywana przez chwilę, a następnie zwalniana w tym samym momencie na funkcji. |
azureMapIsReady(_ map: AzureMap) |
Uruchamia się, gdy spełnione są następujące warunki:
|
azureMap(_ map: AzureMap, didAddSource source: Source) |
Uruchamia się po dodaniu elementu DataSource lub VectorTileSource do mapy. |
azureMap(_ map: AzureMap, didRemoveSource source: Source) |
Uruchamia się, gdy element DataSource lub VectorTileSource zostanie usunięty z mapy. |
azureMapStyleDidChange(_ map: AzureMap) |
Uruchamia się, gdy styl mapy zostanie załadowany lub zmieniony. |
Poniższy kod przedstawia sposób dodawania azureMap(_ map: AzureMap, didTapAt location: CLLocationCoordinate2D)
zdarzeń , azureMap(_ map: AzureMap, didTapOn features: [Feature])
i azureMapCameraIsMoving(_ map: AzureMap)
do mapy.
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.
}
}
Aby uzyskać więcej informacji, zobacz artykuł Nawigowanie po mapie na temat interakcji ze zdarzeniami mapy i wyzwalania.
Określanie zakresu zdarzeń funkcji do warstwy
Podczas dodawania delegata do mapy identyfikatory warstw można przekazać jako drugi parametr. Po przekazaniu warstw zdarzenie jest uruchamiane tylko wtedy, gdy występuje w tej warstwie. Zdarzenia o zakresie warstw są obsługiwane przez warstwy symboli, bąbelków, linii i wielokątów.
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.
}
}
Dodatkowe informacje
Zobacz następujące artykuły, aby zapoznać się z pełnymi przykładami kodu: