Bagikan melalui


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":

  • Tidak ada transisi kamera yang sedang berlangsung.
  • Semua petak yang saat ini diminta telah dimuat.
  • Semua animasi pudar/transisi telah selesai.

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:
  • Tidak dikenal
  • Terprogram
  • Mengatur Ulang Utara
  • Gestur Sentuhan Searah
  • Gestur Mencubit
  • Gestur Memutar
  • Gestur Memperbesar Tampilan
  • Gestur Memperkecil Tampilan
  • Gerakan Pembesaran Satu Jari
  • Gestur Miring
  • Transisi Dibatalkan
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:
  • Peta awalnya dimuat
  • Orientasi aplikasi berubah
  • Sumber daya peta minimum yang diperlukan selesai memuat
  • Peta siap untuk berinteraksi secara terprogram.
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: