Udostępnij za pośrednictwem


Korzystanie z pakietu npm kontrolki azure-maps-control

Pakiet npm kontrolki azure-maps-control to biblioteka po stronie klienta, która umożliwia osadzanie kontrolki mapy usługi Azure Maps w aplikacjach node.js przy użyciu języka JavaScript lub TypeScript. Ta biblioteka ułatwia korzystanie z usług REST usługi Azure Maps i umożliwia dostosowywanie interaktywnych map przy użyciu zawartości i obrazów.

Wymagania wstępne

Aby użyć pakietu npm w aplikacji, musisz mieć następujące wymagania wstępne:

Instalacja

Zainstaluj najnowszy pakiet azure-maps-control .

npm install azure-maps-control

Ten pakiet zawiera minimalną wersję kodu źródłowego, arkusz stylów CSS i definicje Języka TypeScript dla kontrolki mapy usługi Azure Maps.

Należy również osadzić arkusz stylów CSS dla różnych kontrolek, aby wyświetlić je poprawnie. Jeśli używasz pakietu JavaScript do tworzenia pakietów zależności i tworzenia pakietu kodu, zapoznaj się z dokumentacją pakietu pakietów, aby dowiedzieć się, jak to zrobić. W przypadku pakietu webpack często odbywa się to za pomocą kombinacji style-loader elementów i css-loader z dokumentacją dostępną w module ładujący style.

Aby rozpocząć, zainstaluj i style-loadercss-loader:

npm install --save-dev style-loader css-loader

W pliku źródłowym zaimportuj atlas.min.css:

import "azure-maps-control/dist/atlas.min.css";

Następnie dodaj moduły ładujących do części reguł pakietu webpack:

module.exports = {
  module: {
    rules: [
      {
        test: /\.css$/i,
        use: ["style-loader", "css-loader"]
      }
    ]
  }
};

Aby zapoznać się z kompletnym przykładem, zapoznaj się z poniższą sekcją.

Tworzenie mapy w aplikacji node.js

Osadź mapę na stronie internetowej przy użyciu pakietu npm kontrolki mapy.

  1. Tworzenie nowego projektu

    npm init
    

    npm init to polecenie ułatwiające utworzenie pliku package.json dla projektu węzła. Zadaje kilka pytań i generuje plik na podstawie Twoich odpowiedzi. Możesz również użyć -y polecenia lub –yes pominąć pytania i użyć wartości domyślnych. Plik package.json zawiera informacje o projekcie, takie jak jego nazwa, wersja, zależności, skrypty itp.

  2. Zainstaluj najnowszy pakiet azure-maps-control .

    npm install azure-maps-control
    
  3. Zainstaluj pakiet webpack i inne zależności deweloperskie.

    npm install --save-dev webpack webpack-cli style-loader css-loader
    
  4. Zaktualizuj package.json , dodając nowy skrypt dla elementu "build": "webpack". Plik powinien teraz wyglądać podobnie do następującego:

    {
      "name": "azure-maps-npm-demo",
      "version": "1.0.0",
      "description": "",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1",
        "build": "webpack"
      },
      "author": "",
      "license": "ISC",
      "dependencies": {
        "azure-maps-control": "^2.3.1"
      },
      "devDependencies": {
        "css-loader": "^6.8.1",
        "style-loader": "^3.3.3",
        "webpack": "^5.88.1",
        "webpack-cli": "^5.1.4"
      }
    }
    
  5. Utwórz plik konfiguracji pakietu webpack o nazwie webpack.config.js w folderze głównym projektu. Uwzględnij te ustawienia w pliku konfiguracji.

    module.exports = {
      entry: "./src/js/main.js",
      mode: "development",
      output: {
        path: `${__dirname}/dist`,
        filename: "bundle.js"
      },
      module: {
        rules: [
          {
            test: /\.css$/i,
            use: ["style-loader", "css-loader"]
          }
        ]
      }
    };
    
  6. Dodaj nowy plik JavaScript w pliku ./src/js/main.js przy użyciu tego kodu.

    import * as atlas from "azure-maps-control";
    import "azure-maps-control/dist/atlas.min.css";
    
    const onload = () => {
      // Initialize a map instance.
      const map = new atlas.Map("map", {
        view: "Auto",
        // Add authentication details for connecting to Azure Maps.
        authOptions: {
          authType: "subscriptionKey",
          subscriptionKey: "<Your Azure Maps Key>"
        }
      });
    };
    
    document.body.onload = onload;
    
  7. Dodaj nowy plik HTML o nazwie index.html w folderze głównym projektu o następującej zawartości:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8" />
        <title>Azure Maps demo</title>
        <script src="./dist/bundle.js" async></script>
        <style>
          html,
          body,
          #map {
            width: 100%;
            height: 100%;
            padding: 0;
            margin: 0;
          }
        </style>
      </head>
      <body>
        <div id="map"></div>
      </body>
    </html>
    

    Projekt powinien teraz zawierać następujące pliki:

    ├───node_modules
    ├───index.html
    ├───package-lock.json
    ├───package.json
    ├───webpack.config.js
    └───src
        └───js
            └───main.js
    
  8. Uruchom następujące polecenie, aby wygenerować plik JavaScript w pliku ./dist/bundle.js

    npm run build
    
  9. Otwórz plik index.html w przeglądarce internetowej i wyświetl renderowaną mapę. Powinien wyglądać podobnie do poniższej ilustracji:

    Zrzut ekranu przedstawiający mapę świata.

Korzystanie z innych pakietów npm usługi Azure Maps

Usługa Azure Maps oferuje inne moduły jako pakiety npm, które można zintegrować z aplikacją. Te moduły obejmują:

W poniższym przykładzie pokazano, jak zaimportować moduł i użyć go w aplikacji. W tym przykładzie użyto polecenia azure-maps-spatial-io do odczytania POINT(-122.34009 47.60995) ciągu jako pliku GeoJSON i renderowania go na mapie przy użyciu warstwy bąbelkowej.

  1. Zainstaluj pakiet npm.

    npm install azure-maps-spatial-io
    
  2. Następnie użyj deklaracji importu, aby dodać moduł do pliku źródłowego:

    import * as spatial from "azure-maps-spatial-io";
    
  3. Użyj spatial.io.ogc.WKT.read() polecenia , aby przeanalizować tekst.

    import * as atlas from "azure-maps-control";
    import * as spatial from "azure-maps-spatial-io";
    import "azure-maps-control/dist/atlas.min.css";
    
    const onload = () => {
      // Initialize a map instance.
      const map = new atlas.Map("map", {
        center: [-122.34009, 47.60995],
        zoom: 12,
        view: "Auto",
        // Add authentication details for connecting to Azure Maps.
        authOptions: {
          authType: "subscriptionKey",
          subscriptionKey: "<Your Azure Maps Key>"
        }
      });
    
      // Wait until the map resources are ready.
      map.events.add("ready", () => {
        // Create a data source and add it to the map.
        const datasource = new atlas.source.DataSource();
        map.sources.add(datasource);
    
        // Create a layer to render the data
        map.layers.add(new atlas.layer.BubbleLayer(datasource));
    
        // Parse the point string.
        var point = spatial.io.ogc.WKT.read("POINT(-122.34009 47.60995)");
    
        // Add the parsed data to the data source.
        datasource.add(point);
      });
    };
    
    document.body.onload = onload;
    
  4. Pakiet WebPack 5 może zgłaszać błędy dotyczące braku możliwości rozwiązania niektórych node.js podstawowych modułów. Dodaj te ustawienia do pliku konfiguracji pakietu webpack, aby rozwiązać problem.

    module.exports = {
      // ...
      resolve: {
        fallback: { "crypto": false, "worker_threads": false }
      }
    };
    

Ten obraz jest zrzutem ekranu przedstawiający dane wyjściowe przykładu.

Zrzut ekranu przedstawiający mapę Seattle z niebieską kropką.

Następne kroki

Dowiedz się, jak tworzyć mapę i korzystać z niej:

Dowiedz się, jak stylować mapę:

Poznaj najlepsze rozwiązania i zapoznaj się z przykładami: