Bu sayfada, haritaya veri kümesi ekleme ve stillerin uygulanması gösterilmektedir.
Ö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:
- Google Cloud Console'da Veri kümeleri sayfasına gidin.
- Veri kümesinin adını tıklayın. Veri kümesi ayrıntıları sayfası görüntülenir.
- Önizleme sekmesini tıklayın.
- İlişkili harita stilleri bölümünde
HARİTA STİLİ EKLE'yi tıklayın.
- İ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:
Stil fabrikası işlevini oluşturarak
FeatureLayer.StyleFactory
arayüzü. Bu işlev, veri kümesinin biçimlendirme mantığını tanımlar.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:
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.
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(); }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(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)
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.