Halaman ini menunjukkan cara menambahkan set data ke peta, dan menerapkan gaya visual.
Prasyarat
Sebelum melanjutkan, Anda harus memiliki ID peta dan gaya peta, serta ID set data.
Mengaitkan ID set data dengan gaya peta
Untuk menata gaya fitur set data, Anda menerapkan fungsi gaya ke lapisan fitur set data peta. Lapisan fitur set data dibuat saat Anda mengaitkan set data dengan gaya peta.
Untuk mengaitkan set data Anda dengan gaya peta:
- Di Konsol Google Cloud, buka halaman Datasets.
- Klik nama set data. Halaman Dataset details akan muncul.
- Klik tab Preview.
- Di bagian Associated map style, klik ADD MAP STYLE.
- Centang kotak untuk Gaya Peta yang akan dikaitkan, lalu klik SAVE.
Menerapkan gaya pada set data
Untuk menerapkan gaya ke set data:
Buat fungsi factory gaya yang mengimplementasikan antarmuka
FeatureLayer.StyleFactory
. Fungsi ini menentukan logika gaya visual untuk set data.Panggil
FeatureLayer.setFeatureStyle()
untuk menerapkan fungsi factory gaya ke setiap fitur dalam set data.
Membuat fungsi factory gaya
Fungsi factory gaya diterapkan ke setiap fitur di lapisan set data pada saat Anda menetapkan fungsi di lapisan fitur. Fungsi ini harus menampilkan objek FeatureStyle
yang menentukan cara menata gaya poligon.
Jika factory gaya menampilkan null
, fitur yang diberikan tidak dirender. Untuk informasi
selengkapnya, lihat Menghapus gaya visual dari lapisan.
Maps SDK for Android meneruskan instance Feature
ke fungsi factory gaya. Instance Feature
mewakili
metadata fitur, yang memberi Anda akses ke metadata dalam fungsi
factory gaya.
Fungsi factory gaya harus selalu menampilkan hasil yang konsisten saat diterapkan. Misalnya, jika Anda ingin mewarnai sekumpulan fitur secara acak, bagian acak tersebut tidak boleh terjadi di fungsi gaya fitur karena akan menyebabkan hasil yang tidak diinginkan.
Karena fungsi ini berjalan di setiap fitur dalam lapisan, pengoptimalan harus dilakukan. Agar tidak memengaruhi waktu rendering, panggil
FeatureLayer.setFeatureStyle(null)
saat lapisan fitur tidak lagi digunakan.
Anda juga dapat memanggil FeatureLayer.getDatasetId()
untuk mendapatkan ID set data.
Menyetel goresan, isian, dan radius titik
Saat menata gaya fitur dalam fungsi factory gaya, Anda dapat menyetel:
Warna goresan dan opasitas batas seperti yang ditentukan oleh class
Color
. Nilai defaultnya adalah transparan (Color.TRANSPARENT
).Lebar goresan batas dalam piksel layar. Nilai defaultnya adalah 2.
Warna pengisi dan opasitas seperti yang ditentukan oleh class
Color
. Nilai defaultnya adalah transparan (Color.TRANSPARENT
).Radius titik fitur titik antara 0 dan 128 piksel.
Menggunakan aturan gaya sederhana
Cara paling sederhana untuk menata gaya fitur adalah dengan menentukan FeatureLayer.StyleFactory
yang selalu membuat objek FeatureStyle
yang identik, apa pun
fitur tersebut. Terapkan opsi gaya fitur secara langsung ke lapisan fitur set data, atau gunakan bersama dengan FeatureStyleFunction
.
Menggunakan aturan gaya deklaratif
Anda dapat menetapkan aturan gaya secara deklaratif berdasarkan atribut fitur, dan menerapkannya di seluruh set data. Anda dapat menampilkan null
dari fungsi gaya fitur, misalnya, jika Anda ingin sebagian fitur tetap tidak terlihat.
Misalnya, gunakan metode DatasetFeature.getDatasetAttributes()
untuk menampilkan
Map<String,String>
atribut set data untuk fitur. Kemudian, Anda dapat menyesuaikan gaya visual fitur berdasarkan atributnya.
Contoh ini menentukan nilai atribut "highlightColor" dari setiap fitur set data untuk mengontrol gaya visual:
Kotlin
// Get the dataset feature, so we can work with all of its attributes. val datasetFeature: DatasetFeature = feature as DatasetFeature
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. val attributeColor: MutableMap<String, String> = datasetFeature.getDatasetAttributes() when (attributeColor["highlightColor"]) { "Black" -> { ... } "Red" -> { ... } else -> { ... } }
Java
// Get the dataset feature, so we can work with all of its attributes. DatasetFeature datasetFeature = (DatasetFeature) feature;
// Create a switch statement based on the value of the // "highlightColor" attribute of the dataset. Map<String, String> attributeColor = datasetFeature.getDatasetAttributes(); switch(attributeColor.get("highlightColor")) { case "Black": ... break; case "Red": ... break; default: // Color not defined. ... break; }
Menerapkan gaya ke lapisan fitur set data
Contoh ini menerapkan fungsi factory gaya pada poligon di lapisan fitur set data. Fungsi factory gaya menerapkan gaya goresan dan isian kustom ke poligon:
Jika Anda belum melakukannya, ikuti langkah-langkah di bagian Memulai untuk membuat gaya peta dan ID peta baru. Pastikan untuk mengaktifkan lapisan fitur Datasets.
Dapatkan referensi ke lapisan fitur Set data saat peta melakukan inisialisasi.
Kotlin
private var datasetLayer: FeatureLayer? = null
override fun onMapReady(googleMap: GoogleMap) { // Get the DATASET feature layer. datasetLayer = googleMap.getFeatureLayer(FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build())
// Apply style factory function to DATASET layer. styleDatasetsLayer() }Java
private FeatureLayer datasetLayer;
@Override public void onMapReady(GoogleMap map) { // Get the DATASET feature layer. datasetLayer = map.getFeatureLayer(new FeatureLayerOptions.Builder() .featureType(FeatureType.DATASET) // Specify the dataset ID. .datasetId(YOUR_DATASET_ID) .build());
// Apply style factory function to DATASET layer. styleDatasetsLayer(); }Buat fungsi factory gaya dan terapkan ke lapisan fitur Set Data.
Contoh berikut menerapkan isian dan goresan yang sama untuk semua fitur dalam set data.
Kotlin
private fun styleDatasetsLayer() {
// Create the style factory function. val styleFactory = FeatureLayer.StyleFactory { feature: Feature ->
// Check if the feature is an instance of DatasetFeature. if (feature is DatasetFeature) {
return@StyleFactory FeatureStyle.Builder() // Define a style with green fill at 50% opacity and // solid green border. .fillColor(0x8000ff00.toInt()) .strokeColor(0xff00ff00.toInt()) .strokeWidth(2F) .build() } return@StyleFactory null }
// Apply the style factory function to the feature layer. datasetLayer?.setFeatureStyle(styleFactory) }Java
private void styleDatasetsLayer() {
// Create the style factory function. FeatureLayer.StyleFactory styleFactory = (Feature feature) -> {
// Check if the feature is an instance of DatasetFeature. if (feature instanceof DatasetFeature) {
return new FeatureStyle.Builder() // Define a style with green fill at 50% opacity and solid green border. .fillColor(0x8000ff00) .strokeColor(0xff00ff00) .strokeWidth(2) .build(); } return null; };
// Apply the style factory function to the feature layer. datasetLayer.setFeatureStyle(styleFactory); }
Menghapus gaya visual dari lapisan
Untuk menghapus gaya visual dari lapisan, panggil FeatureLayer.setFeatureStyle(null)
.
Anda juga dapat menampilkan null
dari factory gaya Anda, misalnya, jika Anda ingin sebagian fitur tetap tidak ditampilkan.