Share via


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 PolygonMultiPolygon ö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 heightküçü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.

Çokgen ekstrüzyon katmanı kullanarak dikey olarak esnetilmiş çokgenli harita

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.

Popülasyon yoğunluğuna göre ekstrüde edilmiş poligonlar olarak dikey olarak renklendirilmiş ve esnetilmiş ABD eyaletlerinin koroplet haritası

Sonraki adımlar

Haritalarınıza eklenecek daha fazla kod örneği için aşağıdaki makalelere bakın: