Berinteraksi dengan peta di SDK iOS (Pratinjau)
Artikel ini menjelaskan cara menggunakan pengelola peristiwa peta.
Catatan
Penghentian Azure Peta iOS SDK
Azure Peta Native SDK untuk iOS sekarang tidak digunakan lagi dan akan dihentikan pada 31/3/3/25. Untuk menghindari gangguan layanan, migrasikan ke Azure Peta Web SDK dengan 3/31/25. Untuk informasi selengkapnya, lihat Panduan migrasi Azure Peta iOS SDK.
Berinteraksi dengan peta
Peta mengelola semua peristiwa melalui propertinya events
yang menerima delegasi, yang sesuai dengan AzureMapDelegate
protokol. Tabel berikut mencantumkan semua peristiwa peta yang didukung yang diwakili sebagai metode AzureMapDelegate
protokol.
Metode | Deskripsi |
---|---|
azureMapCameraIsIdle(_ map: AzureMap) |
Diaktifkan setelah bingkai terakhir dirender, sebelum peta memasuki status "idle":
|
azureMapCameraIsMoving(_ map: AzureMap) |
Diaktifkan berulang kali selama transisi animasi dari satu tampilan ke tampilan lainnya. Ini bisa menjadi hasil dari interaksi atau metode pengguna. |
azureMapCameraMoveWasCanceled(_ map: AzureMap) |
Diaktifkan saat membatalkan permintaan gerakan ke kamera. |
azureMap(_ map: AzureMap, cameraMoveIsStarted reason: CameraChangeReason) |
Diaktifkan tepat sebelum peta mulai bertransisi dari satu tampilan ke tampilan lainnya. Hal ini dapat terjadi secara terprogram atau sebagai akibat dari interaksi pengguna. Parameter reason adalah set opsi yang memberikan detail tentang bagaimana gerakan kamera dimulai. Daftar berikut menguraikan kemungkinan alasannya:
|
azureMap(_ map: AzureMap, didTapAt location: CLLocationCoordinate2D) |
Diaktifkan saat peta ditekan dan dirilis pada titik yang sama di peta. |
azureMap(_ map: AzureMap, didTapOn features: [Feature]) |
Diaktifkan saat peta ditekan dan dirilis pada titik yang sama di fitur. |
azureMap(_ map: AzureMap, didAddLayer layer: Layer) |
Diaktifkan saat lapisan ditambahkan ke peta. |
azureMap(_ map: AzureMap, didRemoveLayer layer: Layer) |
Diaktifkan saat lapisan dihapus dari peta. |
azureMapWillLoad(_ map: AzureMap) |
Diaktifkan sebelum mengunduh sumber daya yang diperlukan untuk penyajian. |
azureMapDidLoad(_ map: AzureMap) |
Diaktifkan setelah sumber daya diunduh dan perenderan visual pertama peta selesai. |
azureMap(_ map: AzureMap, didLongPressAt location: CLLocationCoordinate2D) |
Diaktifkan saat peta ditekan, ditahan sejenak, lalu dirilis pada titik yang sama di peta. |
azureMap(_ map: AzureMap, didLongPressOn features: [Feature]) |
Diaktifkan saat peta ditekan, ditahan sejenak, dan kemudian dirilis pada titik yang sama pada sebuah fitur. |
azureMapIsReady(_ map: AzureMap) |
Diaktifkan ketika kondisi berikut terpenuhi:
|
azureMap(_ map: AzureMap, didAddSource source: Source) |
Diaktifkan saat DataSource atau VectorTileSource ditambahkan ke peta. |
azureMap(_ map: AzureMap, didRemoveSource source: Source) |
Diaktifkan saat DataSource atau VectorTileSource dihapus dari peta. |
azureMapStyleDidChange(_ map: AzureMap) |
Diaktifkan saat gaya peta dimuat atau berubah. |
Kode berikut menunjukkan cara menambahkan peristiwa azureMap(_ map: AzureMap, didTapAt location: CLLocationCoordinate2D)
, azureMap(_ map: AzureMap, didTapOn features: [Feature])
, dan azureMapCameraIsMoving(_ map: AzureMap)
ke peta.
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.
}
}
Untuk informasi selengkapnya, lihat artikel Menavigasi peta tentang cara berinteraksi dengan peta dan memicu peristiwa.
Lingkup peristiwa fitur ke lapisan
Saat menambahkan delegasi ke peta, ID lapisan dapat diteruskan sebagai parameter kedua. Ketika lapisan diteruskan, peristiwa hanya menembak jika terjadi pada lapisan tersebut. Peristiwa yang tercakup dalam lapisan didukung oleh lapisan simbol, gelembung, garis, dan poligon.
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.
}
}
Informasi Tambahan
Lihat artikel berikut untuk contoh kode lengkap: