Veri kümesini harita ve stil veri kümesine ekleme

Platform seçin: Android iOS JavaScript

Bu sayfada, haritaya veri kümesi ekleme ve stillerin uygulanması gösterilmektedir.

Stil uygulanmış poligon verilerini gösteren ekran görüntüsü.

Ön koşullar

Devam etmeden önce harita kimliğiniz, harita stiliniz ve veri kümesi kimliğiniz olmalıdır.

Veri kümesi kimliğini harita stiliyle ilişkilendirme

Bir veri kümesinin özelliklerinin stilini belirlemek için veri kümesine bir stil işlevi veri kümesi özellik katmanını kullanın. Veri kümesi özellik katmanı, veri kümesini harita stiliyle ilişkilendirme başlıklı makaleyi inceleyin.

Veri kümenizi harita stiliyle ilişkilendirmek için:

  1. Google Cloud Console'da Veri kümeleri sayfasına gidin.
  2. Veri kümesinin adını tıklayın. Veri kümesi ayrıntıları sayfası görüntülenir.
  3. Önizleme sekmesini tıklayın.
  4. İlişkili harita stilleri bölümünde HARİTA STİLİ EKLE'yi tıklayın.
    HARİTA STİLİ EKLE düğmesinin ekran görüntüsü.
  5. İlişkilendirilecek Harita Stilleri için onay kutularını tıklayın ve ardından KAYDET.

Veri kümesine stil uygulama

Bir veri kümesine stil uygulamak için:

  1. Modelleme işleminde FeatureLayer.StyleFactory kullanır. Bu işlev, veri kümesinin biçimlendirme mantığını tanımlar.

  2. Telefonla arama FeatureLayer.setFeatureStyle() stil fabrika işlevini veri kümesindeki her özelliğe uygulayın.

Stil fabrika işlevi oluşturma

Stil fabrika işlevi, veri kümesindeki tüm özelliklere uygulanır katmanında kullanabilirsiniz. Bu işlev, FeatureStyle değeri döndür poligonun stilinin nasıl değiştirileceğini belirten bir nesnedir.

Stil fabrikası null değerini döndürürse belirtilen özellik oluşturulmaz. Daha fazla Stili bir katmandan kaldırma başlıklı makaleyi inceleyin.

Android için Haritalar SDK'sı Feature örneğini oluşturalım. Feature örneği meta verilere erişmenizi sağlar. işlevini kullanın.

Stil fabrikası işlevi aşağıdaki durumlarda her zaman tutarlı sonuçlar döndürmelidir: geçerlidir. Örneğin, bir özellik grubunu rastgele renklendirmek isterseniz, özellik stili işlevinde rastgele kısım yer almamalıdır, istenmeyen sonuçlara yol açabilir.

Bu fonksiyon bir katmandaki tüm özelliklerin üzerinden çalıştığı için optimizasyon önemlidir. Oluşturma sürelerini etkilememek için FeatureLayer.setFeatureStyle(null).

Veri kümesinin kimliğini almak için FeatureLayer.getDatasetId() öğesini de çağırabilirsiniz.

Çizgi, dolgu ve nokta yarıçapını ayarlama

Stil fabrikası işlevinde bir özelliğin stilini belirlerken şunları ayarlayabilirsiniz:

  • Çizgi rengi ve opaklığı Color sınıfını kullanır. Varsayılan değer şeffaftır (Color.TRANSPARENT).

  • Ekran pikseli cinsinden kenarlığın çizgi genişliği. Varsayılan değer 2'dir.

  • Dolgu rengi ve opaklığı Color sınıfını kullanır. Varsayılan değer şeffaftır (Color.TRANSPARENT).

  • 0 ile 128 piksel arasında bir nokta özelliğinin nokta yarıçapı.

Basit stil kuralları kullanma

Özelliklerin stilini belirlemenin en basit yolu bir FeatureLayer.StyleFactory tanımlamaktır her zaman aynı FeatureStyle nesnesini oluşturur; özelliğini kullanabilirsiniz. Özellik stili seçeneklerini doğrudan veri kümesi özellik katmanına uygulayın veya bunları bir FeatureStyleFunction ile birlikte gösterir.

Bildirim temelli stil kuralları kullan

Stil kurallarını bir özellik özelliğine göre bildirimli şekilde ayarlayabilirsiniz. ve bunları tüm veri kümenize uygulayın. null için şuradan iade edebilirsiniz: bir özellik alt kümesinin kalmasını istiyorsanız görünmez.

Örneğin, DatasetFeature.getDatasetAttributes() yöntemini kullanarak Bir özelliğin veri kümesi özelliklerinin Map<String,String> kadarı. Ardından özelliklerine göre özelliğin stilini özelleştirmek.

Bu örnekte, "highlightColor" değeri belirlenir. özelliğinin özelliğini kontrol etmek için kullanılır:

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; }

Veri kümesi özellik katmanına stil uygula

Bu örnek, veri kümesindeki bir poligona stil fabrika işlevi uygular özellik katmanıdır. Stil fabrika işlevi özel bir dolgu ve fırça stili uygular tıklayın:

  1. Henüz yapmadıysanız Başlarken yeni bir harita kimliği ve harita stili oluşturun. Veri kümelerini etkinleştirdiğinizden emin olun. özellik katmanıdır.

  2. Harita başlatıldığında veri kümeleri özellik katmanına referans alın.

    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. Stil fabrika işlevi oluşturma ve bunu Veri kümelerine uygulama özellik katmanıdır.

    Aşağıdaki örnek tüm özellikler için aynı dolgu ve fırçayı uygular ekler.

    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); }

Katmandan stil kaldırma

Bir katmandan stili kaldırmak için FeatureLayer.setFeatureStyle(null) komutunu çağırın.

Ayrıca null ürününü stil fabrikanızdan iade edebilirsiniz. Örneğin: bir alt kümenin görünmez kalmasını istiyor.