Bu sayfada, bir haritaya veri kümesi ekleme ve stil uygulama işlemleri 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 değiştirmek için haritanın veri kümesi özellik katmanına bir stil işlevi uygularsınız. Veri kümesi özellik katmanı, bir veri kümesini harita stiliyle ilişkilendirdiğinizde oluşturulur.
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ünür.
- Ö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 stillerinin onay kutularını ve ardından KAYDET'i tıklayın.
Veri kümesine stil uygulama
Bir veri kümesine stil uygulamak için:
FeatureLayer.StyleFactory
arayüzünü uygulayan bir stil fabrikası işlevi oluşturun. Bu işlev, veri kümesinin biçimlendirme mantığını tanımlar.Stil fabrikası işlevini veri kümesindeki her özelliğe uygulamak için
FeatureLayer.setFeatureStyle()
çağrısı yapın.
Stil fabrika işlevi oluşturma
Stil fabrikası işlevi, işlevi özellik katmanında ayarladığınız sırada veri kümesi katmanındaki her özelliğe uygulanır. Bu işlev, poligonun stilini nasıl alacağını 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 Bir katmandan stili 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 rastgelelik özelliği, özellik stili işlevinde yer almamalıdır. Aksi takdirde istenmeyen sonuçlar elde edilir.
Bu işlev, bir katmandaki tüm özellikler üzerinde çalıştığı için optimizasyon önemlidir. Oluşturma sürelerini etkilememek için, ö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()
işlevini de çağırabilirsiniz.
Çizgi, dolgu ve nokta yarıçapını ayarlama
Stil fabrikası işlevinde bir özelliğin stilini belirlerken şunları ayarlayabilirsiniz:
Kenarlığın
Color
sınıfı tarafından tanımlanan fırça rengi ve opaklığı. Varsayılan değer şeffaftır (Color.TRANSPARENT
).Kenarlığın ekran piksel 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
).0 ile 128 piksel arasında bir nokta özelliğinin nokta yarıçapı.
Basit stil kuralları kullanın
Özelliklerin stilini belirlemenin en basit yolu, özellikten bağımsız olarak her zaman özdeş bir FeatureStyle
nesnesi oluşturan bir FeatureLayer.StyleFactory
tanımlamaktır. Özellik stili seçeneklerini doğrudan veri kümesi özellik katmanına uygulayabilir veya FeatureStyleFunction
ile birlikte kullanabilirsiniz.
Bildirim temelli stil kuralları kullan
Stil kurallarını bir özellik özelliğine göre açık bir şekilde ayarlayabilir ve veri kümenizin tamamına uygulayabilirsiniz. Örneğin, bir özellik alt kümesinin görünmez kalmasını istiyorsanız özellik stili işlevinizden null
döndürebilirsiniz.
Örneğin, bir özellik için Map<String,String>
veri kümesi özelliğini döndürmek amacıyla DatasetFeature.getDatasetAttributes()
yöntemini kullanın. Ardından, özelliğin stilini özelliklerine göre özelleştirebilirsiniz.
Bu örnekte, stili kontrol etmek için bir veri kümesinin her özelliğinin "highlightColor" özelliğinin değeri belirlenmektedir:
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 örnek, veri kümesi özellik katmanındaki bir poligona stil fabrikası işlevi uygular. Stil fabrikası işlevi, poligona özel bir dolgu ve çizgi stili uygular:
Henüz yapmadıysanız yeni bir harita kimliği ve harita stili oluşturmak için Başlayın bölümündeki adımları uygulayın. Veri kümeleri özellik katmanını etkinleştirdiğinizden emin olun.
Harita başlatılırken 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 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 stili kaldırma
Bir katmandan stili kaldırmak için FeatureLayer.setFeatureStyle(null)
işlevini çağırın.
Ayrıca, örneğin bir özellik alt kümesinin görünmez kalmasını istiyorsanız null
ürününü stil fabrikanızdan da iade edebilirsiniz.