Hőtérkép-réteg hozzáadása térképhez
A hőtérképek, más néven pontsűrűség-térképek az adatvizualizációk egy típusa. Az adatok sűrűségét színek tartományával jelölik, és a térképen a "gyakori helyek" adatokat jelenítik meg. A hőtérképek kiválóan alkalmasak nagy számú ponttal rendelkező adathalmazok renderelésére.
Ha szimbólumként több tízezer pontot jelenít meg, az a térképterület nagy részét lefedheti. Ez az eset valószínűleg számos szimbólum átfedését eredményezi. Megnehezíti az adatok jobb megértését. Ha azonban ugyanazt az adathalmazt ábrázolja, mint egy hőtérkép, könnyen láthatóvá válik az egyes adatpont sűrűsége és relatív sűrűsége.
A hőtérképek számos különböző forgatókönyvben használhatók, például:
- Hőmérsékleti adatok: Közelítő adatokat biztosít arról, hogy mi a hőmérséklet két adatpont között.
- Zajérzékelők adatai: Nem csak az érzékelő zajának intenzitását jeleníti meg, hanem betekintést is nyújthat a távolságból történő eloszlatásba. Előfordulhat, hogy egy helyen nem magas a zajszint. Ha több érzékelő zajlefedettségi területe átfedésben van, előfordulhat, hogy ez az átfedő terület magasabb zajszintet tapasztal. Így az átfedésben lévő terület látható lenne a hőtérképen.
- GPS-nyomkövetés: A sebességet súlyozott magasságtérképként tartalmazza, ahol az egyes adatpont intenzitása a sebességen alapul. Ez a funkció például lehetővé teszi annak megtekintését, hogy egy jármű hol gyorsult.
Tipp
A hőtérkép-rétegek alapértelmezés szerint az adatforrás összes geometriája koordinátáit renderelik. Ha úgy szeretné korlátozni a réteget, hogy csak pontgeometriai jellemzőket jelenítsen meg, állítsa a filter
réteg tulajdonságát értékre ['==', ['geometry-type'], 'Point']
. Ha MultiPoint-funkciókat is szeretne használni, állítsa a filter
réteg tulajdonságát értékre ['any', ['==', ['geometry-type'], 'Point'], ['==', ['geometry-type'], 'MultiPoint']]
.
Hőtérképréteg hozzáadása
Ha egy pontforrást hőtérképként szeretne megjeleníteni, adja át az adatforrást az HeatMapLayer
osztály egy példányának, és adja hozzá a térképhez.
Az alábbi kódban minden hőpontnak 10 képpontos sugara van minden nagyítási szinten. A jobb felhasználói élmény érdekében a hőtérkép a címkeréteg alatt található. A címkék jól láthatóak maradnak. A mintában szereplő adatok az USGS Földrengésveszély programból származnak. Ez a jelentős földrengések, hogy történt az elmúlt 30 napban.
//Create a data source and add it to the map.
var datasource = new atlas.source.DataSource();
map.sources.add(datasource);
//Load a dataset of points, in this case earthquake data from the USGS.
datasource.importDataFromUrl('https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_week.geojson');
//Create a heat map and add it to the map.
map.layers.add(new atlas.layer.HeatMapLayer(datasource, null, {
radius: 10,
opacity: 0.8
}), 'labels');
A Simple Heat Map Layer minta bemutatja, hogyan hozhat létre egyszerű hőtérképet pontfunkciók adatkészletéből. A minta forráskódját az Egyszerű hőtérkép-réteg forráskódja című témakörben találja.
A hőtérkép-réteg testreszabása
Az előző példa a sugár és az átlátszatlanság beállításával testre szabta a hőtérképet. A hőtérkép-réteg számos testreszabási lehetőséget kínál, többek között a következőket:
radius
: Egy képpont sugarat határoz meg, amelyben az egyes adatpontokat renderelni kell. A sugarat beállíthatja rögzített számként vagy kifejezésként. Egy kifejezés használatával a sugár a nagyítási szint alapján skálázható, és konzisztens térbeli területet jelölhet a térképen (például egy 5 mérföldes sugarat).color
: A hőtérkép színezésének módját adja meg. A színátmenet a hőtérképek gyakori jellemzője. A hatást egyinterpolate
kifejezéssel érheti el. A hőtérkép színezésére egy kifejezést is használhatstep
, amely vizuálisan felbontja a sűrűséget olyan tartományokra, amelyek hasonlítanak egy körvonal- vagy sugárstílus-térképre. Ezek a színpaletták határozzák meg a színeket a minimálistól a maximális sűrűségértékig.A hőleképezésekhez színértékeket adhat meg az
heatmap-density
érték kifejezéseként. Annak a területnek a színe, ahol nincs adat, az "Interpoláció" kifejezés 0. indexében vagy egy "Lépcsőzetes" kifejezés alapértelmezett színében van definiálva. Ezzel az értékkel háttérszínt határozhat meg. Ez az érték gyakran átlátszóra vagy félig átlátszó feketére van állítva.Íme néhány példa színkifejezésekre:
Interpolációs színkifejezés Lépcsőzetes színkifejezés [
"interpolátum",
[lineáris],
.hőtérkép sűrűsége],
0, "átlátszó",
0.01, "lila",
0.5, "#fb00fb",
1, "#00c3ff"
][
"lépés",
.hőtérkép sűrűsége],
"transzparens",
0.01, "haditengerészet",
0.25, "zöld",
0,50, "sárga",
0,75, "piros"
]opacity
: Meghatározza, hogy a hőtérkép rétege mennyire átlátszó vagy átlátszó.intensity
: Szorzót alkalmaz az egyes adatpont súlyára a hőtérkép általános intenzitásának növelése érdekében. Ez különbséget okoz az adatpontok súlyában, így könnyebben megjeleníthetők.weight
: Alapértelmezés szerint minden adatpont súlya 1, és a súlyozásuk egyenlő. A súlyozási beállítás szorzóként működik, és beállíthatja számként vagy kifejezésként. Ha egy szám súlyként van beállítva, az egyenértékű azzal, hogy minden adatpontot kétszer helyez el a térképen. Ha például a súly 2, akkor a sűrűség megduplázódik. A súlyozási beállítás számra állítása a hőtérképet az intenzitási beállításhoz hasonlóan jeleníti meg.Ha azonban kifejezést használ, az egyes adatpont súlyozása az egyes adatpont tulajdonságain alapulhat. Tegyük fel például, hogy minden adatpont egy földrengést jelöl. A nagyságrendi érték fontos metrika volt minden földrengés-adatponthoz. Földrengések történnek minden alkalommal, de a legtöbb alacsony nagyságrendű, és nem veszik észre. Egy kifejezésben a nagyságrendérték használatával rendelje hozzá a súlyt az egyes adatpontokhoz. Azáltal, hogy a nagyságrendi értéket használja a súly hozzárendeléséhez, jobban ábrázolja a földrengések jelentőségét a hőtérképen.
source
éssource-layer
: Lehetővé teszi az adatforrás frissítését.
A Hőtérkép-réteg beállításai minta bemutatja, hogy a hőtérkép-réteg különböző lehetőségei hogyan befolyásolják a renderelést. A minta forráskódját a Heat Map Layer Options forráskódjában találja.
Konzisztens, nagyítható hőtérkép
Alapértelmezés szerint a hőtérkép-rétegben renderelt adatpontok sugara rögzített képpont sugarú az összes nagyítási szinthez. A térkép nagyítása során az adatok összesítve jelennek meg, a hőtérkép rétege pedig másként néz ki.
zoom
Egy kifejezéssel skálázhatja az egyes nagyítási szintek sugarát, hogy minden adatpont a térkép ugyanazon fizikai területét fedje le. Ez a kifejezés statikusabbá és konzisztensebbé teszi a hőtérkép rétegét. A térkép minden nagyítási szintje kétszer annyi képpontot foglal el függőlegesen és vízszintesen, mint az előző nagyítási szint.
Ha úgy méretezi a sugarat, hogy az minden nagyítási szinttel megduplázódjon, egy olyan hőtérképet hoz létre, amely konzisztensen néz ki az összes nagyítási szinten. A skálázás alkalmazásához használjon zoom
egy 2 exponential interpolation
. alapkifejezést, amelyben a képpont sugara a minimális nagyítási szinthez van beállítva, és egy skálázott sugár a maximális nagyítási szinthez 2 * Math.pow(2, minZoom - maxZoom)
az alábbi példában látható módon. A térkép nagyításával megtekintheti, hogy a hőtérkép hogyan skálázható a nagyítási szinttel.
A Konzisztens nagyítható hőtérkép minta bemutatja, hogyan hozhat létre hőtérképet, ahol az egyes adatpont sugarai a föld ugyanazon fizikai területét fedik le, így egységesebb felhasználói élményt hozhat létre a térkép nagyítása során. A minta hőtérképe következetesen skáláz a 10-22. nagyítási szint között. A térkép minden nagyítási szintje kétszer annyi képpontot foglal el függőlegesen és vízszintesen, mint az előző nagyítási szint. A sugár minden nagyítási szinttel való megkettőzése olyan hőtérképet hoz létre, amely minden nagyítási szinten konzisztensnek tűnik. A minta forráskódját a Konzisztens nagyítható hőtérkép forráskódja című témakörben találja.
A zoom
kifejezés csak a és interpolate
a kifejezésben step
használható. A következő kifejezés egy sugár méterben történő közelítésére használható. Ez a kifejezés egy helyőrzőt radiusMeters
használ, amelyet a kívánt sugárra kell cserélnie. Ez a kifejezés kiszámítja az egyenlítő nagyítási szintje hozzávetőleges képpont sugarát a 0 és a 24 nagyítási szinthez, és egy exponential interpolation
kifejezést használ az értékek közötti skálázáshoz ugyanúgy, ahogyan a térképen a tiling rendszer működik.
[
`'interpolate',
['exponential', 2],
['zoom'],
0, ['*', radiusMeters, 0.000012776039596366526],
24, [`'*', radiusMeters, 214.34637593279402]
]
Tipp
Ha engedélyezi a fürtözést az adatforráson, az egymáshoz közeli pontok fürtözött pontként vannak csoportosítva. Az egyes fürtök pontszámát használhatja a hőtérkép súlykifejezéseként. Ez jelentősen csökkentheti a megjelenítendő pontok számát. A fürt pontszámát a pont funkció tulajdonságában point_count
tárolja a rendszer:
var layer = new atlas.layer.HeatMapLayer(datasource, null, {
weight: ['get', 'point_count']
});
Ha a fürtözési sugár csak néhány képpont, akkor a megjelenítésben kis eltérés lenne. A nagyobb sugár több pontot csoportosít az egyes fürtökben, és javítja a hőtérkép teljesítményét.
Következő lépések
További információ a cikkben használt osztályokról és módszerekről:
A térképekhez további kód példákat a következő cikkekben talál:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: