Haritaya çokgen ekstrüzyon katmanı ekleme (Android SDK)
Bu makalede, ve MultiPolygon
değerlerinin geometrilerini ekstrüze edilmiş şekiller olarak işlemek için çokgen ekstrüzyon katmanının Polygon
nasıl kullanılacağı gösterilmektedir.
Not
Android SDK'sı kullanımdan kaldırılmasını Azure Haritalar
Android için Azure Haritalar Yerel SDK artık kullanım dışıdır ve 31/3/25 tarihinde kullanımdan kaldırılacaktır. Hizmet kesintilerini önlemek için 31.03.25'e kadar Azure Haritalar Web SDK'sına geçin. Daha fazla bilgi için bkz. Android SDK geçiş kılavuzu Azure Haritalar.
Çokgen ekstrüzyon katmanı kullanma
Çokgen ekstrüzyon katmanını bir veri kaynağına Bağlan. Ardından haritaya yükledik. Çokgen ekstrüzyon katmanı, ve Polygon
MultiPolygon
özelliklerinin alanlarını ekstrüze edilmiş şekiller olarak işler. height
Çokgen ekstrüzyon katmanının ve base
özellikleri, ekstrüzyon şeklinin metre cinsinden zeminden ve yüksekliğinden taban uzaklığı tanımlar. Aşağıdaki kodda çokgen oluşturma, bunu bir veri kaynağına ekleme ve Çokgen ekstrüzyon katmanı sınıfını kullanarak işleme gösterilmektedir.
Not
Çokgen base
ekstrüzyon katmanında tanımlanan değer, değerinin değerinden height
küçük veya buna eşit olmalıdır.
//Create a data source and add it to the map.
DataSource source = new DataSource();
map.sources.add(source);
//Create a polygon.
source.add(Polygon.fromLngLats(
Arrays.asList(
Arrays.asList(
Point.fromLngLat(-73.958383, 40.800279),
Point.fromLngLat(-73.981547, 40.768459),
Point.fromLngLat(-73.981246, 40.767761),
Point.fromLngLat(-73.973618, 40.764616),
Point.fromLngLat(-73.973060, 40.765128),
Point.fromLngLat(-73.972599, 40.764908),
Point.fromLngLat(-73.949446, 40.796584),
Point.fromLngLat(-73.949661, 40.797088),
Point.fromLngLat(-73.957815, 40.800523),
Point.fromLngLat(-73.958383, 40.800279)
)
)
));
//Create and add a polygon extrusion layer to the map below the labels so that they are still readable.
PolygonExtrusionLayer layer = new PolygonExtrusionLayer(source,
fillColor("#fc0303"),
fillOpacity(0.7f),
height(500f)
);
//Create and add a polygon extrusion layer to the map below the labels so that they are still readable.
map.layers.add(layer, "labels");
//Create a data source and add it to the map.
val source = DataSource()
map.sources.add(source)
//Create a polygon.
source.add(
Polygon.fromLngLats(
Arrays.asList(
Arrays.asList(
Point.fromLngLat(-73.958383, 40.800279),
Point.fromLngLat(-73.981547, 40.768459),
Point.fromLngLat(-73.981246, 40.767761),
Point.fromLngLat(-73.973618, 40.764616),
Point.fromLngLat(-73.973060, 40.765128),
Point.fromLngLat(-73.972599, 40.764908),
Point.fromLngLat(-73.949446, 40.796584),
Point.fromLngLat(-73.949661, 40.797088),
Point.fromLngLat(-73.957815, 40.800523),
Point.fromLngLat(-73.958383, 40.800279)
)
)
)
)
//Create and add a polygon extrusion layer to the map below the labels so that they are still readable.
val layer = PolygonExtrusionLayer(
source,
fillColor("#fc0303"),
fillOpacity(0.7f),
height(500f)
)
//Create and add a polygon extrusion layer to the map below the labels so that they are still readable.
map.layers.add(layer, "labels")
Aşağıdaki ekran görüntüsünde, çokgen ekstrüzyon katmanı kullanılarak dikey olarak esnetilmiş bir çokgenin işlendiği yukarıdaki kod gösterilmektedir.
Veri temelli çokgenler ekleme
Koroplet harita, çokgen ekstrüzyon katmanı kullanılarak işlenebilir. height
Ekstrüzyon katmanının ve fillColor
özelliklerini ve MultiPolygon
özellik geometrilerindeki istatistiksel değişkenin ölçümüne Polygon
ayarlayın. Aşağıdaki kod örneği, popülasyon yoğunluğunun eyalete göre ölçümüne göre Birleşik Devletler ekstrüde edilmiş bir koroplet haritasını gösterir.
//Create a data source and add it to the map.
DataSource source = new DataSource();
//Import the geojson data and add it to the data source.
source.importDataFromUrl("https://samples.azuremaps.com/data/geojson/US_States_Population_Density.json");
//Add data source to the map.
map.sources.add(source);
//Create and add a polygon extrusion layer to the map below the labels so that they are still readable.
PolygonExtrusionLayer layer = new PolygonExtrusionLayer(source,
fillOpacity(0.7f),
fillColor(
step(
get("density"),
literal("rgba(0, 255, 128, 1)"),
stop(10, "rgba(9, 224, 118, 1)"),
stop(20, "rgba(11, 191, 103, 1)"),
stop(50, "rgba(247, 227, 5, 1)"),
stop(100, "rgba(247, 199, 7, 1)"),
stop(200, "rgba(247, 130, 5, 1)"),
stop(500, "rgba(247, 94, 5, 1)"),
stop(1000, "rgba(247, 37, 5, 1)")
)
),
height(
interpolate(
linear(),
get("density"),
stop(0, 100),
stop(1200, 960000)
)
)
);
//Create and add a polygon extrusion layer to the map below the labels so that they are still readable.
map.layers.add(layer, "labels");
//Create a data source and add it to the map.
val source = DataSource()
//Import the geojson data and add it to the data source.
source.importDataFromUrl("https://samples.azuremaps.com/data/geojson/US_States_Population_Density.json")
//Add data source to the map.
map.sources.add(source)
//Create and add a polygon extrusion layer to the map below the labels so that they are still readable.
val layer = PolygonExtrusionLayer(
source,
fillOpacity(0.7f),
fillColor(
step(
get("density"),
literal("rgba(0, 255, 128, 1)"),
stop(10, "rgba(9, 224, 118, 1)"),
stop(20, "rgba(11, 191, 103, 1)"),
stop(50, "rgba(247, 227, 5, 1)"),
stop(100, "rgba(247, 199, 7, 1)"),
stop(200, "rgba(247, 130, 5, 1)"),
stop(500, "rgba(247, 94, 5, 1)"),
stop(1000, "rgba(247, 37, 5, 1)")
)
),
height(
interpolate(
linear(),
get("density"),
stop(0, 100),
stop(1200, 960000)
)
)
)
//Create and add a polygon extrusion layer to the map below the labels so that they are still readable.
map.layers.add(layer, "labels")
Aşağıdaki ekran görüntüsünde, popülasyon yoğunluğuna göre ekstrüde edilmiş çokgenler olarak dikey olarak renklendirilmiş ve esnetilmiş ABD eyaletlerinin koroplet haritası gösterilmektedir.
Sonraki adımlar
Haritalarınıza eklenecek daha fazla kod örneği için aşağıdaki makalelere bakın: