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


Térbeli adatok beolvasása és írása

Az alábbi táblázat azokat a térbeli fájlformátumokat sorolja fel, amelyek támogatottak a térbeli IO-modullal végzett olvasási és írási műveletekhez.

Adatformátum Olvasás Írás
GeoJSON
GeoRSS
GML
GPX
KML
KMZ
Térbeli CSV
Jól ismert szöveg

Ezek a következő szakaszok a térbeli adatok térbeli IO-modullal történő olvasásának és írásának különböző eszközeit ismertetik.

Térbeli adatok olvasása

A atlas.io.read függvény az olyan gyakori térbeli adatformátumok olvasására használt fő függvény, mint a KML, a GPX, a GeoRSS, a GeoJSON és a térbeli adatokat tartalmazó CSV-fájlok. Ez a függvény a formátumok tömörített verzióit zip-fájlként vagy KMZ-fájlként is képes olvasni. A KMZ fájlformátum a KML tömörített verziója, amely olyan objektumokat is tartalmazhat, mint a képek. Másik lehetőségként az olvasási függvény olyan URL-címet is megadhat, amely egy fájlra mutat ezen formátumok bármelyikében. Az URL-címeket CORS-kompatibilis végponton kell üzemeltetni, vagy proxyszolgáltatást kell biztosítani az olvasási beállítások között. A proxyszolgáltatás olyan tartományok erőforrásainak betöltésére szolgál, amelyek nincsenek engedélyezve a CORS-ben. Az olvasási függvény ígéretet ad arra, hogy hozzáadja a képikonokat a térképhez, és aszinkron módon dolgozza fel az adatokat a felhasználói felületi szálra gyakorolt hatás minimalizálása érdekében.

Tömörített fájl zip-ként vagy KMZ-ként való olvasásakor a kibontott fájl az első érvényes fájlt keresi. Például doc.kml vagy más érvényes kiterjesztésű fájl, például: .kml, .xml, geojson, .json, .csv, .tsv vagy .txt. Ezután a KML- és GeoRSS-fájlokban hivatkozott képek előre betöltődnek, hogy biztosan elérhetők legyenek. A elérhetetlen képadatok betölthetnek egy másik tartalék képet, vagy eltávolíthatók a stílusokból. A KMZ-fájlokból kinyert képek adat-URI-kká alakulnak.

Az olvasási függvény eredménye egy SpatialDataSet objektum. Ez az objektum kibővíti a GeoJSON FeatureCollection osztályt. Könnyen átadható egy DataSource olyan eszköznek, amely a funkcióit térképen jeleníti meg. Ez SpatialDataSet nem csak a szolgáltatásinformációkat tartalmazza, hanem a KML alaprétegeit, a metrikák feldolgozását és egyéb részleteket is, az alábbi táblázatban ismertetett módon.

Tulajdonság neve Típus Leírás
bbox BoundingBox Az adathalmaz összes adatának határolókerete.
features Feature[] GeoJSON-funkciók az adatkészleten belül.
groundOverlays (atlas.layer.ImageLayer | atlas.layers.OgcMapLayer)[] A KML GroundOverlays tömbje.
icons Rekordsztring<, sztring> Ikon URL-címek készlete. Key = icon name, Value = URL.
tulajdonságok bármelyik A térbeli adathalmaz dokumentumszintjén megadott tulajdonságinformációk.
stats SpatialDataSetStats A térbeli adatkészletek tartalmára és feldolgozási idejére vonatkozó statisztikák.
type 'FeatureCollection' Írásvédett GeoJSON-típusérték.

Példák térbeli adatok olvasására

A térbeli adatok betöltése minta bemutatja, hogyan olvasható be egy térbeli adatkészlet, és hogyan jeleníthető meg a térképen az SimpleDataLayer osztály használatával. A kód egy URL-cím által mutatott GPX-fájlt használ. A minta forráskódját a térbeli adatforráskód betöltése című témakörben talál.

Képernyőkép a térkép dokkolási rácsáról.Képernyőkép a térképminta illesztési rácsának részletes leírásáról.

A következő kódbemutató bemutatja, hogyan olvashatja és töltheti be a KML-t vagy a KMZ-t a térképre. A KML tartalmazhat földfelszíneket, amelyek ImageLyaer egy vagy OgcMapLayer. Ezeket az átfedéseket a funkcióktól elkülönítve kell hozzáadni a térképhez. Ezenkívül ha az adatkészlet egyéni ikonokkal rendelkezik, ezeket az ikonokat be kell tölteni a térképek erőforrásaiba a funkciók betöltése előtt.

A KML betöltése térképmintára azt mutatja be, hogyan tölthet be KML- vagy KMZ-fájlokat a térképre. A minta forráskódját lásd : KML betöltése a térkép forráskódjára.

Képernyőkép egy KML földfelszínrel rendelkező térképről.

Igény szerint proxyszolgáltatást is biztosíthat olyan tartományok közötti eszközök eléréséhez, amelyekhez nincs engedélyezve a CORS. Az olvasási függvény először a CORS használatával próbál hozzáférni egy másik tartomány fájljaihoz. Amikor először nem fér hozzá egy másik tartomány erőforrásaihoz a CORS használatával, csak akkor kér több fájlt, ha proxyszolgáltatást biztosít. Az olvasási függvény hozzáfűzi a fájl URL-címét a megadott proxy URL-cím végéhez. Ez a kódrészlet bemutatja, hogyan adhat át proxyszolgáltatást az olvasási függvénynek:

//Read a file from a URL or pass in a raw data as a string.
atlas.io.read('https://nonCorsDomain.example.com/mySuperCoolData.xml', {
    //Provide a proxy service
    proxyService: window.location.origin + '/YourCorsEnabledProxyService.ashx?url='
}).then(async r => {
    if (r) {
        // Some code goes here . . .
    }
});

Az alábbi kódrészlet bemutatja, hogyan olvasható be egy tagolt fájl, és hogyan jeleníthető meg a térképen. Ebben az esetben a kód egy térbeli adatoszlopokat tartalmazó CSV-fájlt használ. Hozzá kell adnia egy hivatkozást az Azure Maps térbeli IO-modulhoz.


<!-- Add reference to the Azure Maps Spatial IO module. -->
<script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.min.js"></script>

<script type="text/javascript">
var map, datasource, layer;

//a URL pointing to the CSV file
var delimitedFileUrl = "https://s3-us-west-2.amazonaws.com/s.cdpn.io/1717245/earthquakes_gt7_alltime.csv";

function InitMap()
{
  map = new atlas.Map('myMap', {
    center: [-73.985708, 40.75773],
    zoom: 12,
    view: "Auto",

    //Add authentication details for connecting 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.
    datasource = new atlas.source.DataSource();
    map.sources.add(datasource);

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

    //Read a CSV file from a URL or pass in a raw string.
    atlas.io.read(delimitedFileUrl).then(r => {
      if (r) {
      //Add the feature data to the data source.
      datasource.add(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>

CSV-fájlból létrehozott térkép képernyőképe.

Térbeli adatok írása

A térbeli IO-modulban két fő írási függvény található. A atlas.io.write függvény létrehoz egy sztringet, míg a atlas.io.writeCompressed függvény tömörített zip-fájlt hoz létre. A tömörített zip-fájl tartalmazna egy szövegalapú fájlt, benne a térbeli adatokkal. Mindkét függvény ígéretet ad az adatok fájlhoz való hozzáadására. A következő adatok bármelyikét megírhatják: SpatialDataSet, DataSource, ImageLayer, , OgcMapLayerfunkciógyűjtemény, funkció, geometria vagy az adattípusok tetszőleges kombinációjának tömbje. Ha bármelyik függvényt használja, megadhatja a kívánt fájlformátumot. Ha a fájlformátum nincs megadva, akkor az adatok KML formátumban lesznek megírva.

A térbeli adatírási lehetőségek mintája egy olyan eszköz, amely bemutatja a függvényhez használható legtöbb írási atlas.io.write lehetőséget. A minta forráskódját lásd : Térbeli adatírási lehetőségek forráskódja.

Képernyőkép a térbeli adatírási lehetőségek mintájáról, amely az atlas.io.write függvényhez használt legtöbb írási lehetőséget mutatja be.

Példa térbeli adatok írására

A térbeli fájlok térképmintára húzásával egy vagy több KML-, KMZ-, GeoRSS-, GPX-, GML-, GeoJSON- vagy CSV-fájlt húzhat a térképre. A minta forráskódját lásd : Térbeli fájlok húzása a térkép forráskódjára.

Képernyőkép a térkép bal oldalán található panellel rendelkező térképről, amely lehetővé teszi egy vagy több KML-, KMZ-, GeoRSS-, GPX-, GML-, GeoJSON- vagy CSV-fájl húzását a térképre.

Igény szerint proxyszolgáltatást is biztosíthat olyan tartományok közötti eszközök eléréséhez, amelyekhez nincs engedélyezve a CORS. Ez a kódrészlet azt mutatja, hogy egy proxyszolgáltatást is beépíthet:

atlas.io.read(data, {
    //Provide a proxy service
    proxyService: window.location.origin + '/YourCorsEnabledProxyService.ashx?url='
}).then(
    //Success
    function(r) {
        //some code goes here ...
    }
);

Jól ismert szöveg olvasása és írása (WKT)

A jól ismert szöveg (WKT) egy nyílt térinformatikai konzorcium (OGC) szabvány a térbeli geometriák szövegként való ábrázolására. Számos térinformatikai rendszer támogatja a WKT-t, például az Azure SQL-t és az Azure PostgreSQL-t a PostGIS beépülő modul használatával. A legtöbb OGC-szabványhoz hasonlóan a koordináták "hosszúsági szélességként" vannak formázva, hogy igazodjanak az "x y" konvencióhoz. Például a -110 hosszúsági és a 45-ös szélességi pont WKT formátumban írható POINT(-110 45) .

A jól ismert szöveg olvasható a atlas.io.ogc.WKT.read függvény használatával, és a atlas.io.ogc.WKT.write függvény használatával írható.

Példák jól ismert szöveg olvasására és írására (WKT)

A Jól ismert szöveg olvasása minta bemutatja, hogyan olvasható be a jól ismert szöveges sztring POINT(-122.34009 47.60995) , és hogyan jelenítheti meg a térképen buborékréteg használatával. A minta forráskódját lásd : Read Well Known Text source code.

Képernyőkép a jól ismert szöveg (WKT) GeoJSON-ként való olvasásáról és a térképen való megjelenítéséről buborékréteg használatával.

A jól ismert szöveg olvasási és írási mintája bemutatja, hogyan olvashatók és írhatóak a Jól ismert szöveg (WKT) sztringek GeoJSON-ként. A minta forráskódját lásd : Jól ismert szöveg forráskódjának olvasása és írása.

A jól ismert szöveges (WKT) sztringek GeoJSON-ként való olvasását és írását bemutató minta képernyőképe.

GML olvasása és írása

A GML egy térbeli XML-fájlspecifikáció, amelyet gyakran más XML-specifikációk kiterjesztéseként használnak. A GeoJSON-adatok a függvény használatával XML-ként írhatók GML-címkékkel atlas.io.core.GmlWriter.write . A GML-t tartalmazó XML a atlas.io.core.GmlReader.read függvény használatával olvasható. Az olvasási függvénynek két lehetősége van:

  • A isAxisOrderLonLat beállítás – A "szélesség, hosszúság" vagy "hosszúság, szélesség" koordináták tengelyének sorrendje adathalmazonként eltérő lehet, és nem mindig jól definiált. A GML-olvasó alapértelmezés szerint "szélesség, hosszúság" néven olvassa be a koordinátaadatokat, de ezt a beállítást true "hosszúság, szélesség" értékre állítja.
  • A propertyTypes beállítás – Ez a beállítás egy kulcsérték-keresési tábla, ahol a kulcs az adathalmaz egyik tulajdonságának neve. Az érték az az objektumtípus, amely az értéket az elemzés során átadhatja. A támogatott típusértékek a következők: string, number, booleanés date. Ha egy tulajdonság nincs a keresési táblában, vagy nincs megadva a típus, a tulajdonság sztringként lesz elemezve.

A atlas.io.read függvény akkor alapértelmezés szerint a atlas.io.core.GmlReader.read függvényhez tartozik, ha azt észleli, hogy a bemeneti adatok XML formátumúak, de az adatok nem a térbeli XML-formátumok egyikét sem támogatják.

Az GmlReader elemzési koordináták az alábbi SRID-k egyikével rendelkeznek:

  • EPSG:4326 (előnyben részesített)
  • EPSG:4269, EPSG:4283, EPSG:4258, EPSG:4308, EPSG:4230, EPSG:4272, EPSG:4271, EPSG:4267, EPSG:4608, EPSG:4674 esetleg kis hibahatárral.
  • EPSG:3857, EPSG:102100, EPSG:3785, EPSG:900913, EPSG:102113, EPSG:41001, EPSG:54004

További erőforrások

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

statikus függvények atlas.io

SpatialDataSet

SpatialDataSetStats

GmlReader

GmlWriter

atlas.io.ogc.WKT függvények

Csatlakozás WFS-szolgáltatáshoz

Alapműveletek kihasználása

Támogatott adatformátum részletei

Következő lépések

További kódmintákat a térképekhez a következő cikkekben talál:

OGC-leképezési réteg hozzáadása