Aracılığıyla paylaş


Basit bir veri katmanı ekleme

Azure Haritalar Web SDK'sı, sınıf içeren SimpleDataLayer bir Uzamsal GÇ modülü sağlar. Bu sınıf, stilli özelliklerin haritada işlenmesini kolaylaştırır. Karma geometri türleri içeren stil özelliklerine ve veri kümelerine sahip veri kümelerini bile işleyebilir.

Basit veri katmanı, birden çok işleme katmanını sarmalayarak ve stil ifadelerini kullanarak bu işlevi elde eder. Stil ifadeleri, ortak stil özellikleri için sarmalanmış katmanları arar. atlas.io.read ve atlas.io.write işlevleri, stilleri desteklenen bir dosya biçiminde okumak ve yazmak için bu özellikleri kullanır. Desteklenen bir dosya biçimine özellikler eklediğinizde, dosyayı harita üzerinde stil özellikleri görüntüleme gibi amaçlar için kullanabilirsiniz.

sınıfı SimpleDataLayer , açılır şablonla birlikte yerleşik bir açılır pencere özelliği de sağlar. Bir özellik seçildiğinde açılır pencere görüntülenir. Bu katman, kümelenmiş verileri de destekler. Bir küme seçildiğinde, harita kümeyi yakınlaştırır ve tek tek noktalara ve alt kümelere genişletir. İhtiyacınız yoksa açılır menü özelliğini devre dışı bırakabilirsiniz.

SimpleDataLayer sınıfı, birçok uygulanan geometri türüne ve stiline sahip özellikler içeren büyük veri kümelerinde kullanılmak üzere tasarlanmıştır. Bu sınıfı kullandığınızda, stil ifadeleri içeren altı katmana ek yük ekler. Bir özellikte yalnızca birkaç geometri türünü ve stilini işlemeniz gerekiyorsa, çekirdek işleme katmanını kullanmak daha verimli olabilir. Daha fazla bilgi için bkz. Haritaya kabarcık katmanı ekleme, Haritaya çizgi katmanı ekleme ve Haritaya çokgen katmanı ekleme.

Basit bir veri katmanı kullanma

Sınıfını SimpleDataLayer diğer işleme katmanları gibi kullanabilirsiniz. Aşağıdaki kod, haritada basit bir veri katmanının nasıl kullanılacağını gösterir:

//Create a data source and add it to the map.
var datasource = new atlas.source.DataSource();
map.sources.add(datasource);

//Add a simple data layer for rendering data.
var layer = new atlas.layer.SimpleDataLayer(datasource);
map.layers.add(layer);

Aşağıdaki kod parçacığı, çevrimiçi bir kaynaktan alınan verilere başvuran basit bir veri katmanının nasıl kullanılacağını gösterir:

<script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.min.js"></script>

<script>
    function InitMap() {
        var map = new atlas.Map("myMap", {
            center: [-73.967605, 40.780452],
            zoom: 12,
            view: "Auto",

            //Add authentication details to connect to Azure Maps.
            authOptions: {
                // Get an Azure Maps key at https://azuremaps.com/.
                authType: "subscriptionKey",
                subscriptionKey: '{Your-Azure-Maps-Subscription-key}'
            }
        });

        //Wait until the map resources are ready.
        map.events.add("ready", function () {
            //Create a data source and add it to the map.
            var datasource = new atlas.source.DataSource();
            map.sources.add(datasource);

            //Add a simple data layer for rendering data.
            var layer = new atlas.layer.SimpleDataLayer(datasource);
            map.layers.add(layer);

            //Load an initial data set.
            const dataSet = {
                type: "FeatureCollection",
                bbox: [0, 0, 0, 0],
                features: [
                    {
                        type: "Feature",
                        geometry: {
                            type: "Point",
                            coordinates: [0, 0]
                        },
                        properties: {
                            color: "red"
                        }
                    }
                ]
            };

            loadDataSet(dataSet);

            function loadDataSet(r) {
                //Update the features in the data source.
                datasource.setShapes(r);

                //If bounding box information is known for data, set the map view to it.
                if (r.bbox) {
                    map.setCamera({
                        bounds: r.bbox,
                        padding: 50
                    });
                }
            }
        });
    }
</script>

Veri kaynağına özellik eklediğinizde, basit veri katmanı bunları en uygun şekilde işler. Stilleri her bir özellik için özellik olarak ayarlayabilirsiniz.

Yukarıdaki örnek kod, özelliği olarak ayarlanmış redbir Coğrafi JavaScript Nesne Gösterimi (GeoJSON) noktası özelliğini color gösterir.

Örnek kod, basit veri katmanını kullanarak nokta özelliğini işler ve sonuç aşağıdaki gibi görünür.

Mavi su üzerinde kırmızı bir nokta gösteren 0, 0 koordinatlarına sahip bir haritanın ekran görüntüsü; sembol katmanı kullanılarak kırmızı nokta eklenmiştir.

Not

Veri kaynağındaki "coordinates": [0, 0] değer, eşleme başlatıldığında ayarladığınız koordinatları center: [-73.967605, 40.780452] geçersiz kılar.

Basit veri katmanı, aşağıdaki senaryolarda güçlü bir araçtır:

  • Veri kaynağı birkaç özellik türü içerir.
  • Veri kümesindeki özellikler, ayrı ayrı ayarlanmış çeşitli stil özelliklerine sahiptir.
  • Veri kümesinin ne içerdiğinden emin değilsiniz.

Örneğin, XML veri akışlarını ayrıştırırken özelliklerin stilini ve geometri türlerini bilmiyor olabilirsiniz. Basit veri katmanı seçenekleri örneği, basit veri katmanının anahtar deliği biçimlendirme dili (KML) dosyasının özelliklerini nasıl işledini gösterir. Sınıftaki SimpleDataLayer seçenekleri de görebilirsiniz. Bu örneğin kaynak kodu için GitHub'daki Azure Haritalar kod örneklerinde Basit veri katmanı options.html bölümüne bakın.

Sol tarafta basit veri katmanı seçeneklerini gösteren bir panel bulunan haritanın ekran görüntüsü.

Not

Bu basit veri katmanı, KML balonlarını veya özellik özelliklerini tablo olarak görüntülemek için açılır şablon sınıfını kullanır. Varsayılan olarak, açılan pencerede işlenen tüm içerik bir iFrame içinde güvenlik özelliği olarak korumalı olarak bulunur. Ancak, sınırlamalar vardır:

  • Tüm işaretçi kilidi işlevleri, en üst gezinti işlevleri, betikler ve formlar devre dışı bırakılır. Bağlantılar seçildiğinde yeni bir sekmede açılabilir.
  • iFrame'lerde parametresini srcdoc desteklemeyen eski tarayıcılar yalnızca az miktarda içerik işleyebilir.

Açılan pencerelere yüklenen verilere güveniyorsanız ve açılan betiklerin uygulamanıza erişebilmesini istiyorsanız, bu özelliği devre dışı bırakabilirsiniz. Açılan şablondaki seçeneğini olarak ayarlamanız sandboxContent gerekir false.

Varsayılan desteklenen stil özellikleri

Basit veri katmanı çekirdek işleme katmanlarından birkaçını sarmalar: kabarcık, sembol, çizgi, çokgen ve ekstrüze edilmiş çokgen. Tek tek özelliklerde geçerli stil özelliklerini aramak için ifadeleri kullanır.

Desteklenen iki ana özellik adı kümesi Azure Haritalar ve GitHub'dır. Azure Haritalar katmanı seçeneklerinin çoğu özellik adı, özelliklerin stil özellikleri olarak basit veri katmanında desteklenir. Bazı katman seçenekleri, GitHub'ın yaygın olarak kullandığı stil özellik adlarını destekleyen ifadeler içerir.

GitHub'ın GeoJSON eşleme desteği , platformda depolanan ve işlenen GeoJSON dosyalarına stil eklemek için kullanılan bu özellik adlarını tanımlar. Stil özellikleri dışında GitHub'ın stil özelliklerinin çoğu basit veri katmanında marker-symbol desteklenir.

Okuyucu daha az yaygın bir stil özelliğiyle karşılaşırsa, bunu en benzer Azure Haritalar stil özelliğine dönüştürür. Ayrıca, basit veri katmanının işlevini kullanarak getLayers ve katmanlardan herhangi birinde seçenekleri güncelleştirerek varsayılan stil ifadelerini geçersiz kılabilirsiniz.

Aşağıdaki bölümlerde, basit veri katmanının desteklediği varsayılan stil özellikleriyle ilgili ayrıntılar sağlanır. Desteklenen özellik adlarının sırası da önceliktir. Aynı katman seçeneği için iki stil özelliği tanımlanmışsa, listedeki ilk özellik önceliklidir. Renkler herhangi bir CSS3 renk değeri (HEX, RGB, RGBA, HSL, HSLA) veya adlandırılmış renk değeri olabilir.

Kabarcık katmanı stili özellikleri

Bir özellik Point veya MultiPointise ve noktayı simge olarak işlemek için özel simge olarak kullanılacak bir görüntü özelliğine sahip değilse, ile işlenir BubbleLayer.

Katman seçeneği Desteklenen özellik adları Default value
color color, marker-color '#1A73AA'
radius size 1, marker-size2, scale1 8
strokeColor strokeColor, stroke '#FFFFFF'

1 Boyut ve ölçek değerleri skaler değerler olarak kabul edilir ve 8 ile çarpılır.

2 GitHub marker-size seçeneği belirtilirse radius aşağıdaki değerleri kullanır:

İşaretçi boyutu Radius
small 6
medium 8
large 12

Kümeler kabarcık katmanında da işlenir. Varsayılan olarak, bir kümenin yarıçapı 16 olarak ayarlanır. Kümenin rengi, aşağıdaki tabloda tanımlandığı gibi kümedeki nokta sayısına bağlı olarak değişir:

Puan sayısı Color
>= 100 red
>= 10 yellow
< 10 green

Sembol stili özellikleri

Bir özellik veya MultiPointisePoint, noktayı simge olarak işlemek için özel simge olarak kullanılan bir görüntü özelliğine sahipse, ile SymbolLayerişlenir.

Katman seçeneği Desteklenen özellik adları Default value
image image none
size size, marker-size1 1
rotation rotation 0
offset offset [0, 0]
anchor anchor 'bottom'

1 GitHub marker-size seçeneği belirtilirse simge boyutu seçeneği için aşağıdaki değerler kullanılır:

İşaretçi boyutu Simge boyutu
small 0.5
medium 1
large 2

Nokta özelliği bir kümeyse, point_count_abbreviated özellik metin etiketi olarak işlenir. Görüntü işlenmez.

Çizgi stili özellikleri

Özellik bir LineString, MultiLineString, Polygonveya MultiPolygonise, ile LineLayerişlenir.

Katman seçeneği Desteklenen özellik adları Default value
strokeColor strokeColor, stroke '#1E90FF'
strokeWidth strokeWidth, stroke-width, stroke-thickness 3
strokeOpacity strokeOpacity, stroke-opacity 1

Çokgen stil özellikleri

Özellik bir Polygon veya MultiPolygonise ve height özelliği yoksa veya height özelliği sıfırsa, ile PolygonLayerişlenir.

Katman seçeneği Desteklenen özellik adları Default value
fillColor fillColor, fill '#1E90FF'
fillOpacity fillOpacity, 'fill-opacity 0.5

Ekstrüde edilmiş çokgen stil özellikleri

Özellik bir Polygon veya MultiPolygonise ve sıfırdan büyük bir değere sahip height özelliğine sahipse, ile PolygonExtrusionLayerişlenir.

Katman seçeneği Desteklenen özellik adları Default value
base base 0
fillColor fillColor, fill '#1E90FF'
height height 0

Bu makalede sınıflar ve yöntemler hakkında daha fazla bilgi edinin:

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