Menambahkan set data ke set data peta dan gaya

Pilih platform: Android iOS JavaScript

Halaman ini menunjukkan cara menambahkan set data ke peta, dan menerapkan gaya visual.

Screenshot yang menampilkan data poligon yang telah ditata gayanya.

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:

  1. Di Konsol Google Cloud, buka halaman Datasets.
  2. Klik nama set data. Halaman Dataset details akan muncul.
  3. Klik tab Preview.
  4. Di bagian Associated map styles, klik ADD MAP STYLE.
    Screenshot tombol ADD MAP STYLE.
  5. Centang kotak untuk Gaya Peta yang akan dikaitkan, lalu klik SAVE.

Menerapkan gaya ke set data

Untuk menerapkan gaya ke set data:

  1. Buat fungsi factory gaya yang mengimplementasikan antarmuka FeatureLayer.StyleFactory. Fungsi ini menentukan logika gaya visual untuk set data.

  2. 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 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 mengetahui informasi selengkapnya, lihat Menghapus gaya 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.

Menetapkan goresan, isi, dan radius titik

Saat menata gaya fitur dalam fungsi factory gaya, Anda dapat menetapkan:

  • Warna dan opasitas goresan batas seperti yang ditentukan oleh class Color. Nilai defaultnya adalah transparan (Color.TRANSPARENT).

  • Lebar goresan batas dalam piksel layar. Nilai defaultnya adalah 2.

  • Warna dan opasitas isian 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. 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 ke poligon di lapisan fitur set data. Fungsi factory gaya menerapkan gaya isian dan goresan kustom ke poligon:

  1. Jika Anda belum melakukannya, ikuti langkah-langkah di bagian Memulai untuk membuat gaya peta dan ID peta baru. Pastikan untuk mengaktifkan lapisan fitur Set Data.

  2. 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(); }

  3. Buat fungsi factory gaya dan terapkan ke lapisan fitur Set Data.

    Contoh berikut menerapkan isi dan goresan yang sama ke 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, misalnya, jika Anda ingin sebagian fitur tetap tidak ditampilkan.