Tambahkan lapisan petak peta pada peta (Android SDK)

Catatan

Penghentian Azure Peta Android SDK

Azure Peta Native SDK untuk Android sekarang tidak digunakan lagi dan akan dihentikan pada 31/3/25. Untuk menghindari gangguan layanan, migrasikan ke Azure Peta Web SDK dengan 3/31/25. Untuk informasi selengkapnya, lihat Panduan migrasi Azure Peta Android SDK.

Artikel ini memperlihatkan kepada Anda cara merender lapisan petak pada peta menggunakan Azure Maps Android SDK. Lapisan petak peta memungkinkan Anda mengganti gambar di atas petak peta dasar Azure Maps. Informasi selengkapnya tentang sistem perpetakan Azure Maps dapat ditemukan di dokumentasi tingkat Zoom dan kisi petak peta.

Lapisan petak dimuat dalam petak dari server. Gambar-gambar ini dapat dirender dan disimpan seperti gambar lain di server, menggunakan konvensi penamaan yang dipahami lapisan petak peta. Atau, gambar-gambar ini dapat dirender dengan layanan dinamis yang menghasilkan gambar yang mendekati waktu nyata. Ada tiga konvensi penamaan layanan petak yang berbeda yang didukung oleh kelas TileLayer Azure Maps:

  • X, Y, Notasi Zoom - Berdasarkan tingkat zoom, x adalah kolom dan y adalah posisi baris petak peta dalam kisi petak peta.
  • Notasi quadkey - Kombinasi x, y, informasi zoom ke dalam nilai untai (karakter) tunggal yang merupakan pengidentifikasi unik untuk petak peta.
  • Kotak Batas - Koordinat kotak batas dapat digunakan untuk menentukan gambar dalam format {west},{south},{east},{north}, yang biasanya digunakan oleh Layanan pemetaan web (web-mapping Services atau WMS).

Tip

TileLayer adalah cara yang baik untuk memvisualisasikan set data yang besar di peta. Lapisan petak peta tidak hanya dapat dihasilkan dari gambar, tetapi data vektor juga dapat dirender sebagai lapisan petak peta juga. Dengan merender data vektor sebagai lapisan petak peta, kontrol peta hanya perlu memuat petak peta, yang bisa jauh lebih kecil dalam ukuran file daripada data vektor yang mereka wakili. Teknik ini telah digunakan oleh banyak orang yang perlu merender jutaan baris data di peta.

URL petak peta yang diteruskan ke dalam lapisan petak peta harus merupakan URL http/https ke sumber daya TileJSON atau templat URL petak peta yang menggunakan parameter berikut:

  • {x} - Posisi X petak peta. Juga membutuhkan {y} dan {z}.
  • {y} - Posisi Y petak. Juga membutuhkan {x} dan {z}.
  • {z} -Tingkat pembesaran petak. Juga membutuhkan {x} dan {y}.
  • {quadkey} - Pengenal quadkey petak berdasarkan konvensi penamaan sistem petak Bing Maps.
  • {bbox-epsg-3857} - String kotak pembatas dengan format {west},{south},{east},{north} dalam Sistem Referensi Spasial EPSG 3857.
  • {subdomain} - Tempat penampung untuk nilai subdomain, jika nilai subdomain telah ditentukan.
  • azmapsdomain.invalid - Placeholder untuk menyelaraskan domain dan autentikasi permintaan petak dengan nilai yang sama dengan yang digunakan oleh peta. Gunakan ini saat memanggil layanan petak peta yang dihosting oleh Azure Maps.

Prasyarat

Untuk menyelesaikan proses dalam artikel ini, Anda perlu memasang Azure Maps Android SDK untuk memuat peta.

Tambahkan lapisan petak pada peta

Contoh ini menunjukkan cara membuat lapisan petak yang menunjukkan sekumpulan petak. Sampel ini menggunakan sistem pemetakan "x, y, zoom". Sumber lapisan petak peta ini adalah proyek OpenSeaMap, yang berisi bagan nautik yang bersumber dari kerumunan. Seringkali ketika melihat lapisan petak peta, diinginkan untuk dapat melihat dengan jelas label kota di peta. Perilaku ini dapat dicapai dengan memasukkan lapisan petak peta di bawah lapisan label peta.

TileLayer layer = new TileLayer(
    tileUrl("https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png"),
    opacity(0.8f),
    tileSize(256),
    minSourceZoom(7),
    maxSourceZoom(17)
);

map.layers.add(layer, "labels");
val layer = TileLayer(
    tileUrl("https://tiles.openseamap.org/seamark/{z}/{x}/{y}.png"),
    opacity(0.8f),
    tileSize(256),
    minSourceZoom(7),
    maxSourceZoom(17)
)

map.layers.add(layer, "labels")

Cuplikan layar berikut menunjukkan kode di atas yang menampilkan lapisan petak peta informasi bahari pada peta yang memiliki gaya skala abu-abu gelap.

Peta Android menampilkan lapisan petak peta

Menambahkan layanan pemetaan web (WMS) OGC

Layanan pemetaan web (WMTS) adalah standar Open Geospatial Consortium (OGC) untuk menyajikan gambar data peta. Ada banyak set data terbuka yang tersedia dalam format ini yang dapat Anda gunakan dengan Azure Maps. Jenis layanan ini dapat digunakan dengan lapisan petak jika layanan mendukung sistem referensi koordinat (CRS) EPSG:3857. Saat menggunakan layanan WMS, atur parameter lebar dan tinggi ke nilai yang didukung oleh layanan, pastikan untuk mengatur nilai yang sama ini dalam tileSize opsi . Di URL yang diformat, atur parameter BBOX layanan dengan placeholder {bbox-epsg-3857}.

TileLayer layer = new TileLayer(
    tileUrl("https://mrdata.usgs.gov/services/gscworld?FORMAT=image/png&HEIGHT=1024&LAYERS=geology&REQUEST=GetMap&STYLES=default&TILED=true&TRANSPARENT=true&WIDTH=1024&VERSION=1.3.0&SERVICE=WMS&CRS=EPSG:3857&BBOX={bbox-epsg-3857}"),
    tileSize(1024)
);

map.layers.add(layer, "labels");
val layer = TileLayer(
    tileUrl("https://mrdata.usgs.gov/services/gscworld?FORMAT=image/png&HEIGHT=1024&LAYERS=geology&REQUEST=GetMap&STYLES=default&TILED=true&TRANSPARENT=true&WIDTH=1024&VERSION=1.3.0&SERVICE=WMS&CRS=EPSG:3857&BBOX={bbox-epsg-3857}"),
    tileSize(1024)
)

map.layers.add(layer, "labels")

Cuplikan layar berikut menunjukkan kode di atas yang melapisi layanan pemetaan web data geologi dari U.S. Geological Survey (USGS) di atas peta, di bawah label.

Peta Android menampilkan lapisan petak peta WMS

Menambahkan layanan petak pemetaan web OGC (WMTS)

Layanan petak pemetaan web (WMTS) adalah standar Open Geospatial Consortium (OGC) untuk melayani overlay berbasis petak untuk peta. Ada banyak set data terbuka yang tersedia dalam format ini yang dapat Anda gunakan dengan Azure Maps. Jenis layanan ini dapat digunakan dengan lapisan petak jika layanan mendukung EPSG:3857 atau sistem referensi koordinat (CRS) GoogleMapsCompatible. Saat menggunakan layanan WMTS, atur parameter lebar dan tinggi ke nilai yang didukung oleh layanan, pastikan untuk mengatur nilai yang sama ini dalam tileSize opsi . Di URL yang diformat, ganti placeholder berikut dengan tepat:

  • {TileMatrix} =>{z}
  • {TileRow} =>{y}
  • {TileCol} =>{x}
TileLayer layer = new TileLayer(
    tileUrl("https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/WMTS/tile/1.0.0/USGSImageryOnly/default/GoogleMapsCompatible/{z}/{y}/{x}"),
    tileSize(256),
    bounds(-173.25000107492872, 0.0005794121990209753, 146.12527718104752, 71.506811402077),
    maxSourceZoom(18)
);

map.layers.add(layer, "transit");
val layer = TileLayer(
    tileUrl("https://basemap.nationalmap.gov/arcgis/rest/services/USGSImageryOnly/MapServer/WMTS/tile/1.0.0/USGSImageryOnly/default/GoogleMapsCompatible/{z}/{y}/{x}"),
    tileSize(256),
    bounds(-173.25000107492872, 0.0005794121990209753, 146.12527718104752, 71.506811402077),
    maxSourceZoom(18)
)

map.layers.add(layer, "transit")

Cuplikan layar berikut menunjukkan kode di atas yang melapisi layanan pemetaan web data geologi dari U.S. Geological Survey (USGS) di atas peta, di bawah label.

Peta Android menampilkan lapisan petak peta WMS

Langkah berikutnya

Lihat artikel berikut ini untuk mempelajari selengkapnya tentang cara melapisi gambar pada peta.