Jak používat modul Azure Mapy Spatial IO

Sada Azure Mapy Web SDK poskytuje modul Spatial IO, který integruje prostorová data s webovou sadou SDK azure Mapy pomocí JavaScriptu nebo TypeScriptu. Robustní funkce v tomto modulu umožňují vývojářům:

  • Čtení a zápis prostorových dat Mezi podporované formáty souborů patří: KML, KMZ, GPX, GeoRSS, GML, GeoJSON a CSV soubory obsahující sloupce s prostorovými informacemi. Podporuje také dobře známý text (WKT).
  • Připojení otevřít služby OGC (Open Geospatial Consortium) a integrovat se sadou Azure Mapy web SDK a překryvnými službami WMS (Web Map Tile Services) a Web Map Tile Services (WMTS) jako vrstvy na mapě. Další informace naleznete v tématu Přidání vrstvy mapy z Open Geospatial Consortium (OGC).
  • Dotazování dat ve službě webových funkcí (WFS) Další informace najdete v tématu Připojení do služby WFS.
  • Překryvné komplexní datové sady, které obsahují informace o stylu, a mají je automaticky vykreslit. Další informace najdete v tématu Přidání jednoduché datové vrstvy.
  • Využijte vysokorychlostní třídy xml a oddělovače souborů a zapisovače. Další informace najdete v tématu Základní vstupně-výstupní operace.

Tato příručka ukazuje, jak integrovat a používat modul Spatial IO ve webové aplikaci.

Toto video obsahuje přehled modulu Spatial IO v sadě Azure Mapy Web SDK.


Upozorňující

Používejte pouze data a služby, které pocházejí ze zdroje, kterému důvěřujete, zejména pokud na něj odkazujete z jiné domény. Modul prostorových vstupně-výstupních operací provádí kroky k minimalizaci rizika, ale nejbezpečnější přístup neumožňuje do vaší aplikace začínat žádnými nebezpečnými daty.

Předpoklady

Instalace modulu Spatial IO

Modul prostorových vstupně-výstupních operací Azure Mapy můžete načíst pomocí jedné ze dvou možností:

  • Globálně hostovaný Azure CDN pro modul Azure Mapy prostorových vstupně-výstupních operací. Pro tuto možnost přidáte odkaz na JavaScript v <head> elementu souboru HTML.

    <script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.js"></script>
    
  • Zdrojový kód pro azure-maps-spatial-io se dá načíst místně a pak hostovat s vaší aplikací. Tento balíček obsahuje také definice TypeScriptu. Pro tuto možnost nainstalujte balíček pomocí následujícího příkazu:

    npm install azure-maps-spatial-io
    

    Pak pomocí deklarace importu přidejte modul do zdrojového souboru:

    import * as spatial from "azure-maps-spatial-io";
    

    Další informace najdete v tématu Použití balíčku npm pro ovládací prvek mapy Azure Mapy.

Použití modulu Prostorové vstupně-výstupní operace

  1. Vytvořte nový soubor HTML.

  2. Načtěte sadu Azure Mapy Web SDK a inicializujete ovládací prvek mapování. Podrobnosti najdete v průvodci ovládacími prvky mapy Azure Mapy. Po dokončení tohoto kroku by soubor HTML měl vypadat takto:

    <!DOCTYPE html>
    <html>
    
    <head>
        <title></title>
    
        <meta charset="utf-8">
    
        <!-- Ensures that IE and Edge uses the latest version and doesn't emulate an older version -->
        <meta http-equiv="x-ua-compatible" content="IE=Edge">
    
        <!-- Ensures the web page looks good on all screen sizes. -->
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Add references to the Azure Maps Map control JavaScript and CSS files. -->
        <link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css" type="text/css" />
        <script src="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.js"></script>
    
        <script type='text/javascript'>
    
            var map;
    
            function GetMap() {
                //Initialize a map instance.
                map = new atlas.Map('myMap', {
                    view: 'Auto',
    
                    //Add your Azure Maps subscription key to the map SDK. Get an Azure Maps key at https://azure.com/maps
                    authOptions: {
                        authType: 'subscriptionKey',
                        subscriptionKey: '<Your Azure Maps Key>'
                    }
                });
    
                //Wait until the map resources are ready.
                map.events.add('ready', function() {
    
                    // Write your code here to make sure it runs once the map resources are ready
    
                });
            }
        </script>
    </head>
    
    <body onload="GetMap()">
        <div id="myMap" style="position:relative;width:100%;min-width:290px;height:600px;"></div>
    </body>
    
    </html>
    
  3. Načtěte modul Azure Mapy prostorových vstupně-výstupních operací. V tomto cvičení použijte CDN pro modul Azure Mapy prostorových vstupně-výstupních operací. Do elementu <head> souboru HTML přidejte následující odkaz:

    <script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.js"></script>
    
  4. Inicializuje a datasourcepřidá zdroj dat do mapy. Inicializuje a layerpřidá zdroj dat do vrstvy mapy. Pak vykreslujte zdroj dat i vrstvu. Než se posunete dolů, abyste viděli celý kód v dalším kroku, zamyslete se nad nejlepším místem pro vložení zdroje dat a fragmentů kódu vrstvy. Vzpomeňte si, že před programovou manipulací s mapou bychom měli počkat, až bude prostředek mapy připravený.

    var datasource, layer;
    

    a

    //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);
    
  5. Váš kód HTML by teď měl vypadat jako následující kód. Tato ukázka ukazuje, jak zobrazit data funkcí souboru XML na mapě.

    Poznámka:

    Tento příklad používá Route66Attractions.xml.

    <!DOCTYPE html>
    <html>
    <head>
        <title>Spatial IO Module Example</title>
    
        <meta charset="utf-8">
    
        <!-- Ensures that IE and Edge uses the latest version and doesn't emulate an older version -->
        <meta http-equiv="x-ua-compatible" content="IE=Edge">
    
        <!-- Ensures the web page looks good on all screen sizes. -->
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    
        <!-- Add references to the Azure Maps Map control JavaScript and CSS files. -->
        <link rel="stylesheet" href="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.min.css" type="text/css" />
        <script src="https://atlas.microsoft.com/sdk/javascript/mapcontrol/3/atlas.js"></script>
    
        <!-- Add reference to the Azure Maps Spatial IO module. -->
        <script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.js"></script>
    
        <script type='text/javascript'>
            var map, datasource, layer;
    
            function GetMap() {
                //Initialize a map instance.
                map = new atlas.Map('myMap', {
                    view: 'Auto',
    
                    //Add your Azure Maps subscription key to the map SDK. Get an Azure Maps key at https://azure.com/maps
                    authOptions: {
                        authType: 'subscriptionKey',
                        subscriptionKey: '<Your Azure Maps 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 an XML file from a URL or pass in a raw XML string.
                    atlas.io.read('Route66Attractions.xml').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>
    </head>
    <body onload='GetMap()'>
        <div id="myMap" style="position:relative;width:100%;min-width:290px;height:600px;"></div>
    </body>
    </html>
    
  6. Nezapomeňte nahradit <Your Azure Maps Key> klíčem předplatného. Ve vašem souboru HTML by se měly zobrazit výsledky podobné následujícímu obrázku:

    Screenshot showing the Spatial Data sample in a map.

Další kroky

Tato funkce, kterou jsme si ukázali, je pouze jednou z mnoha funkcí dostupných v modulu Prostorových vstupně-výstupních operací. V následujících příručkách se dozvíte, jak používat další funkce v modulu Prostorové vstupně-výstupní operace:

Projděte si dokumentaci ke službě Azure Mapy Spatial IO: