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 Type Description
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.

A screenshot that shows the snap grid on map.A screenshot that shows a detailed description of the snap grid on map sample.

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.

A screenshot that shows a map with a KML ground overlay.

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 Térképek 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>

A screenshot that shows a map created from a CSV file.

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.

A screenshot that shows The Spatial data write options sample that demonstrates most of the write options used with the atlas.io.write function.

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.

A screenshot that shows a map with a panel to the left of the map that enables you to drag and drop one or more KML, KMZ, GeoRSS, GPX, GML, GeoJSON or CSV files onto the map.

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.

A screenshot that shows how to read Well Known Text (WKT) as GeoJSON and render it on a map using a bubble layer.

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 screenshot showing the sample that demonstrates how to read and write Well Known Text (WKT) strings as GeoJSON.

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

More resources

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