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

Platform seçin: Android iOS JavaScript

Bu sayfada, haritaya nasıl veri kümesi ekleyeceğiniz ve stil uygulayacağınız gösterilmektedir.

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

Ön koşullar

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

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

Veri kümesinin özelliklerini stilize etmek için haritanın veri kümesi özellik katmanına bir stil işlevi uygularsınız. Veri kümesi özelliği katmanı, bir veri kümesini harita stiliyle ilişkilendirdiğinizde oluşturulur.

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österilir.
  3. Önizleme sekmesini tıklayın.
  4. İlişkili harita stilleri bölümünde HARİTA STİLİ EKLE'yi tıklayın.
    Sağda HARİTA STİLİ EKLE yazan bir artı düğmesi içeren İlişkili harita stilleri bölümü.
  5. İlişkilendirilecek harita stillerinin onay kutularını işaretleyin ve KAYDET'i tıklayın.

Veri kümesine stil uygulama

Veri kümesine stil uygulamak için:

  1. FeatureLayer.StyleFactory arayüzünü uygulayan bir stil fabrikası işlevi oluşturun. Bu işlev, bir veri kümesinin stil oluşturma mantığını tanımlar.

  2. Stil fabrikası işlevini veri kümesindeki her bir özelliğe uygulamak için FeatureLayer.setFeatureStyle() işlevini çağırın.

Stil fabrikası işlevi oluşturma

Stil fabrikası işlevi, işlev katmanında işlevi ayarladığınız sırada veri kümesi katmanındaki her özelliğe uygulanır. Bu işlev, poligonun nasıl stilize edileceğini belirten bir FeatureStyle nesnesi döndürmelidir.

Stil fabrikası null değerini döndürürse belirtilen özellik oluşturulmaz. Daha fazla bilgi için Katmandan stil kaldırma başlıklı makaleyi inceleyin.

Android için Haritalar SDK'sı, stil fabrikası işlevine bir Feature örneği iletir. Feature örneği, özelliğin meta verilerini temsil eder ve stil fabrikası işlevindeki meta verilere erişmenizi sağlar.

Stil fabrikası işlevi, uygulandığında her zaman tutarlı sonuçlar döndürmelidir. Örneğin, bir dizi özelliği rastgele renklendirmek istiyorsanız rastgele kısım, özellik stili işlevinde yer almamalıdır. Aksi takdirde, istenmeyen sonuçlar ortaya çıkabilir.

Bu işlev bir katmandaki her özellik üzerinde çalıştığından optimizasyon önemlidir. Oluşturma sürelerini etkilememek için bir özellik katmanı artık kullanılmadığında FeatureLayer.setFeatureStyle(null) işlevini çağırın.

Veri kümesinin kimliğini almak için FeatureLayer.getDatasetId() numarasını da arayabilirsiniz.

Kontur, dolgu ve nokta yarıçapını ayarlama

Stil fabrikası işlevinde bir özelliğe stil verirken şunları ayarlayabilirsiniz:

  • Color sınıfı tarafından tanımlanan kenarlığın kontur rengi ve opaklığı. Varsayılan değer şeffaftır (Color.TRANSPARENT).

  • Kenarlığın ekran pikselleri cinsinden çizgi genişliği. Varsayılan değer 2'dir.

  • Color sınıfı tarafından tanımlanan dolgu rengi ve opaklığı. Varsayılan değer şeffaftır (Color.TRANSPARENT).

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

Basit stil kuralları kullanma

Özellikleri stilize etmenin en basit yolu, FeatureLayer.StyleFactory tanımlamaktır. Bu, özellikten bağımsız olarak her zaman aynı FeatureStyle nesneyi oluşturur. Özellik stili seçeneklerini doğrudan bir veri kümesi özellik katmanına uygulayın veya bunları FeatureStyleFunction ile birlikte kullanın.

Bildirimsel stil kurallarını kullanma

Bir özellik özelliğine göre bildirimsel olarak stil kuralları belirleyebilir ve bunları veri kümenizin tamamına uygulayabilirsiniz. Örneğin, özelliklerin bir alt kümesinin görünmez kalmasını istiyorsanız özellik stili işlevinizden null döndürebilirsiniz.

Örneğin, bir özellik için DatasetFeature.getDatasetAttributes() veri kümesi özelliğini döndürmek üzere Map<String,String> yöntemini kullanın. Ardından, özelliğin stilini özelliklerine göre özelleştirebilirsiniz.

Bu örnekte, stil oluşturmayı kontrol etmek için bir veri kümesinin her özelliğinin "highlightColor" özelliğinin değeri belirlenir:

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 uygulama

Bu örnekte, veri kümesi özellik katmanındaki bir çokgene stil oluşturma işlevi uygulanmaktadır. Stil oluşturma işlevi, çokgene özel bir dolgu ve kontur stili uygular:

  1. Henüz yapmadıysanız yeni bir harita kimliği ve harita stili oluşturmak için Başlangıç bölümündeki adımları uygulayın. Veri kümeleri özellik katmanını etkinleştirdiğinizden emin olun.

  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 fabrikası işlevi oluşturun ve bunu veri kümeleri özellik katmanına uygulayın.

    Aşağıdaki örnekte, veri kümesindeki tüm özelliklere aynı dolgu ve kontur uygulanmaktadır.

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

Katmandan stil kaldırma

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

Örneğin, özelliklerin bir alt kümesinin görünmez kalmasını istiyorsanız null öğesini stil fabrikanızdan da döndürebilirsiniz.