Udostępnij za pośrednictwem


Korzystanie z modułu We/Wy usługi Azure Maps Spatial

Moduł We/Wy usługi Azure Maps spatial integruje dane przestrzenne z zestawem Web SDK usługi Azure Maps przy użyciu języka JavaScript lub TypeScript. W tym przewodniku przedstawiono sposób integrowania i używania modułu We/Wy przestrzennego w aplikacji internetowej.

Korzystając z niezawodnych funkcji w tym module, możesz wykonywać następujące czynności:

  • Odczytywanie i zapisywanie danych przestrzennych. Możesz użyć formatów plików, które obejmują:
    • Keyhole Markup Language (KML).
    • Skompresowany klucz KML (KMZ).
    • GPS Exchange Format (GPX).
    • Geograficzne naprawdę proste syndykacja (GeoRSS).
    • Geography Markup Language (GML).
    • Geograficzna notacja obiektów JavaScript (GeoJSON).
    • Dobrze znany tekst (WKT).
    • Wartości rozdzielone przecinkami (CSV), gdy kolumny zawierają informacje przestrzenne.
  • Połącz się z usługami Open Geospatial Consortium (OGC) i zintegruj się z zestawem SDK sieci Web usługi Azure Maps. Możesz również nakładać usługi Web Map Services (WMS) i Web Map Tile Services (WMTS) jako warstwy na mapie. Aby uzyskać więcej informacji, zobacz Dodawanie warstwy mapy z Open Geospatial Consortium (OGC).
  • Wykonywanie zapytań dotyczących danych w usłudze funkcji sieci Web (WFS). Aby uzyskać więcej informacji, zobacz Nawiązywanie połączenia z usługą WFS.
  • Nakładanie złożonych zestawów danych zawierających informacje o stylu, które mogą być renderowane automatycznie. Aby uzyskać więcej informacji, zobacz Dodawanie prostej warstwy danych.
  • Używaj szybkich klas xml i rozdzielonych plików oraz modułów zapisywania. Aby uzyskać więcej informacji, zobacz Podstawowe operacje we/wy.

Poniższy film wideo zawiera omówienie modułu Spatial IO w zestawie SDK internetowym usługi Azure Maps.


Ostrzeżenie

Używaj danych i usług tylko z zaufanego źródła, zwłaszcza jeśli dane są przywołyne z innej domeny. Moduł Spatial IO podejmuje kroki w celu zminimalizowania ryzyka, ale nie należy zezwalać na żadne niebezpieczne dane w aplikacji niezależnie od tego.

Wymagania wstępne

Instalowanie modułu We/Wy przestrzennego

Moduł We/Wy przestrzennej usługi Azure Maps można załadować przy użyciu jednej z następujących dwóch opcji:

  • Pierwszą opcją jest użycie globalnie hostowanej sieci dostarczania zawartości platformy Azure dla modułu We/Wy usługi Azure Maps Spatial. Użyj następującego tagu skryptu w <head> elemencie pliku HTML, aby dodać odwołanie:

    <script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.js"></script>
    
  • Za pomocą drugiej opcji możesz załadować kod źródłowy dla usługi azure-maps-spatial-io lokalnie i hostować go za pomocą aplikacji. Ten pakiet zawiera również definicje języka TypeScript. Użyj następującego polecenia, aby zainstalować pakiet:

    npm install azure-maps-spatial-io
    

    Użyj deklaracji importu, aby dodać moduł do pliku źródłowego:

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

    Aby dowiedzieć się więcej, zobacz How to use the Azure Maps map control npm package (Jak używać pakietu npm kontrolki mapy usługi Azure Maps).

Implementowanie modułu We/Wy przestrzennego

  1. Utwórz nowy plik HTML.

  2. Załaduj internetowy zestaw SDK usługi Azure Maps i zainicjuj kontrolkę mapy. Aby uzyskać szczegółowe informacje, zobacz Przewodnik sterowania mapami usługi Azure Maps. Plik HTML powinien wyglądać następująco:

    <!DOCTYPE html>
    <html>
    
    <head>
        <title></title>
    
        <meta charset="utf-8">
    
        <!-- Ensure that Internet Explorer and Edge use the latest version and don't emulate an older version. -->
        <meta http-equiv="x-ua-compatible" content="IE=Edge">
    
        <!-- Ensure that 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. Załaduj moduł We/Wy usługi Azure Maps Spatial i użyj sieci dostarczania zawartości dla modułu We/Wy usługi Azure Maps Spatial. Dodaj następujące odwołanie do <head> elementu pliku HTML:

    <script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.js"></script>
    
  4. Zainicjuj źródło danych i dodaj je do mapy.

  5. Zainicjuj prostą warstwę danych i dodaj do niej źródło danych.

  6. Renderuj warstwę danych.

  7. Przed przewinięciem w dół, aby zobaczyć pełny kod w następnym kroku, określ najlepsze miejsca, aby umieścić fragmenty kodu źródła danych i warstwy. Poczekaj, aż zasoby mapy będą gotowe przed programowym manipulowaniem mapą.

    var datasource, layer;
    

    Znajdź najlepsze miejsca do umieszczania fragmentów kodu.

    //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);
    
  8. Kod HTML powinien wyglądać podobnie do poniższego. Przykładowy kod przedstawia sposób wyświetlania danych funkcji pliku XML na mapie.

    Uwaga

    W tym przykładzie użyto Route66Attractions.xml.

    <!DOCTYPE html>
    <html>
    <head>
        <title>Spatial IO Module Example</title>
    
        <meta charset="utf-8">
    
        <!-- Ensure that Internet Explorer and Edge use the latest version and don't emulate an older version. -->
        <meta http-equiv="x-ua-compatible" content="IE=Edge">
    
        <!-- Ensure that 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>
    
  9. Pamiętaj, aby zastąpić <Your Azure Maps Key> kluczem subskrypcji. Plik HTML powinien zawierać obraz, który wygląda następująco:

    Zrzut ekranu przedstawiający przykład danych przestrzennych na mapie.

W tym artykule opisano tylko jedną z wielu funkcji dostępnych w module We/Wy przestrzenne. Aby dowiedzieć się więcej o innych, przeczytaj następujące przewodniki: