Megosztás a következőn keresztül:


Fürtözési pont adatai a Webes SDK-ban

Ha sok adatpont található a térképen, előfordulhat, hogy egyes pontok átfedésben vannak egymással. Az átfedés miatt a térkép olvashatatlanná és nehezen használhatóvá válhat. A fürtözési pont adatai az egymáshoz közeli pontadatok kombinálásának és a térképen egyetlen fürtözött adatpontként való ábrázolásának folyamata. Ahogy a felhasználó nagyítja a térképet, a fürtök szétesnek az egyes adatpontjaikra. Ha sok adatponttal dolgozik, a fürtözési folyamatok javíthatják a felhasználói élményt.


Fürtözés engedélyezése adatforráson

Engedélyezze a fürtözést az DataSource osztályban a cluster beállítás beállításával true. Válassza clusterRadius ki a közeli pontokat, és egyesítse őket egy fürtben. Az érték clusterRadius képpontban van. Egy clusterMaxZoom nagyítási szint megadásával letilthatja a fürtözési logikát. Íme egy példa arra, hogyan engedélyezheti a fürtözést egy adatforrásban.

//Create a data source and enable clustering.
var datasource = new atlas.source.DataSource(null, {
    //Tell the data source to cluster point data.
    cluster: true,
    
    //The radius in pixels to cluster points together.
    clusterRadius: 45,
    
    //The maximum zoom level in which clustering occurs.
    //If you zoom in more than this, all points are rendered as symbols.
    clusterMaxZoom: 15
});

Tipp.

Ha két adatpont közel van egymáshoz a földön, lehetséges, hogy a fürt soha nem fog széttörni, függetlenül attól, hogy milyen közel van a felhasználó. Ennek megoldásához beállíthatja, clusterMaxZoom hogy letiltsa a fürtözési logikát, és egyszerűen megjelenítsen mindent.

Az DataSource osztály a fürtözéssel kapcsolatos alábbi módszereket is tartalmazza.

Metódus Visszatérési típus Leírás
getClusterChildren(clusterId: number) Ígérettömb<<funkciógeometriája<, bármely> | Alak>> Lekéri az adott fürt gyermekeit a következő nagyítási szinten. Ezek a gyerekek lehetnek alakzatok és alclusterek kombinációja. Az alclusterek a ClusteredPropertiesnek megfelelő tulajdonságokkal rendelkező funkciók.
getClusterExpansionZoom(clusterId: number) Ígéret<száma> Kiszámítja azt a nagyítási szintet, amelyen a fürt elkezd kibontani vagy szétszakadni.
getClusterLeaves(clusterId: number, limit: number, offset: number) Ígérettömb<<funkciógeometriája<, bármely> | Alak>> Lekéri a fürtön lévő pontokat. Alapértelmezés szerint az első 10 pont lesz visszaadva. A pontok lapozásához adja limit meg a visszaadandó pontok számát, és offset lépkedjen végig a pontindexen. Az összes pont visszaadásához állítsa be limit az Infinity értéket, és ne állítsa be offset.

Fürtök megjelenítése buborékréteggel

A buborékréteg nagyszerű módja a fürtözött pontok megjelenítésének. Kifejezések használatával skálázhatja a sugarat, és módosíthatja a színt a fürt pontjainak száma alapján. Ha buborékréteggel jeleníti meg a fürtöket, akkor egy külön réteget kell használnia a nem rendezett adatpontok megjelenítéséhez.

Ha a fürt méretét szeretné megjeleníteni a buborék tetején, használjon egy szimbólumréteget szöveggel, és ne használjon ikont.

A fürtök buborékréteggel történő implementálásának teljes munkamintáját az Azure Maps-minták buborékrétegében található pontfürtök című témakörben találhatja meg. A minta forráskódját lásd : Pontfürtök a Buborékréteg forráskódjában.

A fürtöket buborékréteggel megjelenítő térkép képernyőképe.

Fürtök megjelenítése szimbólumréteg használatával

Az adatpontok vizualizációjakor a szimbólumréteg automatikusan elrejti az egymást átfedő szimbólumokat a tisztább felhasználói felület biztosítása érdekében. Ez az alapértelmezett viselkedés nemkívánatos lehet, ha meg szeretné jeleníteni az adatpontok sűrűségét a térképen. Ezek a beállítások azonban módosíthatók. Az összes szimbólum megjelenítéséhez állítsa a allowOverlap Szimbólumrétegek iconOptions tulajdonság beállítását a következőre true: .

A fürtözés használatával megjelenítheti az adatpontok sűrűségét, miközben tiszta felhasználói felületet biztosít. Az alábbi minta bemutatja, hogyan adhat hozzá egyéni szimbólumokat, és hogyan jelenítheti meg a fürtöket és az egyes adatpontokat a szimbólumréteg használatával.

A fürtök szimbólumréteggel való megjelenítésének implementálásáról az Azure Maps-mintákban található szimbólumréteggel rendelkező fürtök megjelenítése című témakörben talál teljes munkamintát. A minta forráskódját a Szimbólumréteg forráskóddal rendelkező fürtök megjelenítése című témakörben talál.

Képernyőkép a fürtöket szimbólumréteggel megjelenítő térképről.

A fürtözés és a hőtérképek rétege

A hőtérképek nagyszerű módot biztosítanak az adatok sűrűségének megjelenítésére a térképen. Ez a vizualizációs módszer önmagában nagy számú adatpontot képes kezelni. Ha az adatpontok fürtözve vannak, és a fürt méretét használják a hőtérkép súlyaként, akkor a hőtérkép még több adatot képes kezelni. A beállítás eléréséhez állítsa a weight hőtérkép rétegének beállítását a következőre ['get', 'point_count']: . Ha a fürt sugara kicsi, a hőtérkép szinte teljesen megegyezik egy hőtérképpel a nem rendezett adatpontok használatával, de jobban teljesít. Minél kisebb a fürt sugara, annál pontosabb a hőtérkép, de kevesebb teljesítménybeli előnnyel jár.

Az adatforráson fürtözést használó hőtérkép létrehozását bemutató teljes munkamintát az Azure Maps-minták fürt súlyozott hőtérképe című témakörben talál. A minta forráskódját lásd a fürt súlyozott hőtérképének forráskódját.

Képernyőkép egy hőtérképről, amely fürtözést használ az adatforráson.

Egéresemények fürtözött adatpontokon

Ha az egéresemények fürtözött adatpontokat tartalmazó rétegen történnek, a fürtözött adatpont GeoJSON-pont funkcióobjektumként tér vissza az eseményhez. Ez a pont funkció a következő tulajdonságokkal rendelkezik:

Tulajdonság neve Típus Leírás
cluster Logikai Azt jelzi, hogy a funkció egy fürtöt jelöl-e.
cluster_id húr A fürt egyedi azonosítója, amely az Adatforrás getClusterExpansionZoomés getClusterChildrengetClusterLeaves a metódusok használatával használható.
point_count szám A fürt által tartalmazott pontok száma.
point_count_abbreviated húr Egy sztring, amely rövidítve adja meg az point_count értéket, ha hosszú. (például 4000 lesz 4K)

A Buborékréteg példa pontfürtjei egy buborékréteget használnak, amely megjeleníti a fürtpontokat, és hozzáad egy kattintásos eseményt. Amikor a kattintási esemény aktiválódik, a kód kiszámítja és nagyítja a térképet a következő nagyítási szintre, amelyen a fürt szétesik. Ez a funkció az getClusterExpansionZoom osztály metódusával DataSource és a cluster_id kattintott fürtözött adatpont tulajdonságával valósul meg.

Az alábbi kódrészlet a Buborékréteg példa pontfürtjeiben található kódot mutatja be, amely hozzáadja a kattintási esemény funkciót a fürtözött adatpontokhoz:

//Add a click event to the layer so we can zoom in when a user clicks a cluster.
map.events.add('click', clusterBubbleLayer, clusterClicked);

//Add mouse events to change the mouse cursor when hovering over a cluster.
map.events.add('mouseenter', clusterBubbleLayer, function () {
    map.getCanvasContainer().style.cursor = 'pointer';
});

map.events.add('mouseleave', clusterBubbleLayer, function () {
    map.getCanvasContainer().style.cursor = 'grab';
});

function clusterClicked(e) {
    if (e && e.shapes && e.shapes.length > 0 && e.shapes[0].properties.cluster) {
        //Get the clustered point from the event.
        var cluster = e.shapes[0];

        //Get the cluster expansion zoom level. This is the zoom level at which the cluster starts to break apart.
        datasource.getClusterExpansionZoom(cluster.properties.cluster_id).then(function (zoom) {

            //Update the map camera to be centered over the cluster. 
            map.setCamera({
                center: cluster.geometry.coordinates,
                zoom: zoom,
                type: 'ease',
                duration: 200
            });
        });
    }
}

A fürtöket buborékréteggel megjelenítő térkép képernyőképe.

Fürtterület megjelenítése

A fürt által képviselt pontadatok egy területen oszlanak el. Ebben a mintában, amikor az egér egy fürtre mutat, két fő viselkedés fordul elő. Először is a fürtben található egyes adatpontok egy domború hajótest kiszámítására szolgálnak. Ezután a domború hajótest megjelenik a térképen egy terület megjelenítéséhez. A domború hajótest olyan sokszög, amely egy rugalmas sávhoz hasonló pontok halmazát burkolja, és a atlas.math.getConvexHull módszerrel kiszámítható. A fürtben található összes pont lekérhető az adatforrásból a getClusterLeaves módszerrel.

A teljes munkamintát, amely bemutatja, hogyan teheti ezt meg, tekintse meg a fürtterület megjelenítése a Convex Hulltal az Azure Maps-mintákban című témakört. A minta forráskódját lásd : Fürtterület megjelenítése Convex Hull-forráskóddal.

Képernyőkép egy olyan térképről, amely a fürtök olyan területeit jeleníti meg, amelyeket a domború hulla jelöl a fürtterület kijelölésekor.

Adatok összesítése fürtökben

A fürtök gyakran szimbólummal jelennek meg a fürtön belüli pontok számával. Néha azonban célszerű több metrikával testre szabni a fürtök stílusát. A fürtösszesítésekkel egyéni tulajdonságok hozhatók létre és tölthetők fel összesítőkifejezés-számítással. A fürtösszesítések a clusterProperties DataSource.

A fürtösszesítési minta egy összesítő kifejezést használ. A kód a fürt egyes adatpontjai entitástípus-tulajdonsága alapján számítja ki a darabszámot. Amikor egy felhasználó kiválaszt egy fürtöt, megjelenik egy előugró ablak, amely további információkat tartalmaz a fürtről. A minta forráskódját a Fürt a forráskód összesítése című témakörben tekinti meg.

Képernyőkép egy adatvezérelt stíluskifejezés-számítással definiált fürtözést használó térképről. Ezek a számítások a fürtben található összes pont értékeit összesítik.

Következő lépések

További információ a cikkben használt osztályokról és módszerekről:

A funkciók alkalmazáshoz való hozzáadásához tekintse meg a kód példákat: