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 pada lapisan fitur set data peta. Lapisan fitur set data dibuat saat Anda mengaitkan set data dengan gaya peta.

Untuk mengaitkan set data 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 Gaya peta terkait, klik TAMBAHKAN GAYA PETA.
    Screenshot tombol ADD MAP STYLE.
  5. Centang kotak untuk Gaya Peta yang akan dikaitkan, lalu klik SAVE.

Menerapkan gaya pada set data

Untuk menerapkan gaya pada set data:

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

  2. Telepon FeatureLayer.setFeatureStyle() untuk menerapkan fungsi factory style ke setiap fitur dalam set data.

Membuat fungsi factory gaya

Fungsi factory gaya diterapkan ke setiap fitur dalam set data pada saat Anda menetapkan fungsi di lapisan fitur. Fungsi ini harus menampilkan FeatureStyle yang menetapkan cara menata gaya poligon.

Jika factory gaya menampilkan null, fitur yang diberikan tidak akan dirender. Untuk selengkapnya lihat Menghapus gaya visual dari lapisan.

Maps SDK for Android meneruskan Feature ke fungsi factory style. Instance Feature mewakili metadata fitur, sehingga memberi Anda akses ke metadata di factory gaya fungsi tersebut.

Fungsi factory gaya harus selalu menampilkan hasil yang konsisten saat diterapkan. Misalnya, jika Anda ingin mewarnai serangkaian fitur secara acak, acak seharusnya tidak 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 didefinisikan oleh Color . Nilai defaultnya adalah transparan (Color.TRANSPARENT).

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

  • Warna pengisi dan opasitas seperti yang didefinisikan oleh 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 membangun objek FeatureStyle yang identik, terlepas dari aplikasi baru. Terapkan opsi gaya fitur secara langsung ke lapisan fitur set data, atau gunakan mereka bersama-sama dengan FeatureStyleFunction.

Menggunakan aturan gaya deklaratif

Anda bisa menyetel aturan gaya secara deklaratif berdasarkan atribut fitur, lalu menerapkannya di seluruh {i>dataset<i} Anda. Anda dapat mengembalikan null dari fungsi gaya fitur, misalnya jika Anda ingin sebagian fitur tetap tak terlihat.

Misalnya, gunakan metode DatasetFeature.getDatasetAttributes() untuk menampilkan Map<String,String> atribut set data untuk sebuah fitur. Anda kemudian dapat menyesuaikan gaya fitur berdasarkan atributnya.

Contoh ini menentukan nilai "highlightColor" masing-masing fitur set data untuk mengontrol gaya:

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

  1. Jika Anda belum melakukannya, ikuti langkah-langkah berikut Memulai untuk membuat gaya peta dan ID peta baru. Pastikan untuk mengaktifkan Datasets lapisan fitur.

  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. Membuat fungsi factory gaya dan menerapkannya ke Set data lapisan fitur.

    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(2F) .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 terlihat.