Doku / Einrichtung / React / Azure Maps

Azure Maps einrichten

Schritte zur Verwendung von Azure Maps im Web über MapConductor. Authentifizierung mit einem Azure-Abonnementschlüssel.

PACKAGE
react-for-azuremaps
API KEY
Abonnementschlüssel
CSS
Erforderlich
REACT NATIVE
Keine

Bevor Sie beginnen

Node.js 18 oder höher
Azure Maps-Konto und Abonnementschlüssel
STEP 01

Installieren

azure-maps-control ist im Paket enthalten.

terminalnpm
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
            @mapconductor/react-for-azuremaps
STEP 02

Stylesheet laden

Wird nur einmal im Einstiegspunkt der App geladen. Wenn Sie dies vergessen, gehen die Position der Karte und das Erscheinungsbild der Steuerelemente verloren.

main.tsxTypeScript
import '@mapconductor/react-for-azuremaps/style.css';
STEP 03

Abonnementschlüssel übergeben

Der Schlüssel wird an subscriptionKey des State Hooks übergeben. Wenn er leer bleibt, wird die Karte nicht initialisiert.

AzureMap.tsxTypeScript · React
const state = useAzureMapsViewState({
  subscriptionKey: import.meta.env.VITE_AZURE_MAPS_SUBSCRIPTION_KEY ?? '',
  mapDesignType: AzureMapsDesign.Road,
  cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
});
ACHTUNG
Der Schlüssel wird über Umgebungsvariablen zur Build-Zeit übergeben (bei Vite z. B. import.meta.env.VITE_*) und sollte nicht in die Quellcodeverwaltung eingecheckt werden. Da er an das Frontend übergeben wird, müssen Sie unbedingt Referenzeinschränkungen oder Domainbeschränkungen festlegen, um Schäden zu vermeiden, falls der Schlüssel öffentlich wird.

PRÜFEN

Was Sie sehen sollten

Wenn die Azure Maps-Karte angezeigt wird, sind Sie fertig.

AzureMap.tsxTypeScript · React
import { useState } from 'react';
import { createGeoPoint, createMapCameraPosition, createMarkerState } from '@mapconductor/js-sdk-core';
import { Marker } from '@mapconductor/js-sdk-react';
import { AzureMapsDesign, AzureMapsMapView, useAzureMapsViewState } from '@mapconductor/react-for-azuremaps';
import '@mapconductor/react-for-azuremaps/style.css';

const TOKYO = createGeoPoint({ latitude: 35.6812, longitude: 139.7671 });

export function AzureMap() {
  const state = useAzureMapsViewState({
    subscriptionKey: import.meta.env.VITE_AZURE_MAPS_SUBSCRIPTION_KEY ?? '',
    mapDesignType: AzureMapsDesign.Road,
    cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
  });
  const [markerState] = useState(() => createMarkerState({ id: 'tokyo', position: TOKYO }));

  return (
    <AzureMapsMapView state={state} style={{ height: 480 }}>
      <Marker state={markerState} />
    </AzureMapsMapView>
  );
}

Kartendesigns

AzureMapsDesign unterstützt die Stile von Azure Maps.

AzureMapsDesign
Notes
Road / RoadShadedRelief
Standardstraßenkarte mit Geländeschattierung
Satellite / SatelliteRoadLabels
Satellitenbild mit Beschriftung
GrayscaleLight / GrayscaleDark
Für Basiskarten zur Darstellung von Daten
Night
Nachtstil
HighContrastLight / HighContrastDark
Hoher Kontrast
Blank / BlankAccessible
Keine Basiskarte

Fehlerbehebung

Die Karte wird nicht angezeigt

  • Überprüfen, ob subscriptionKey keine leere Zeichenfolge ist.
  • Überprüfen Sie im Azure-Portal, ob der Schlüssel gültig ist.

Die Karte wird bei der Entwicklung doppelt initialisiert

  • React StrictMode führt den Effekt zweimal aus. Jeder Anbieter erkennt dies und verwirft eine der Instanzen, sodass Sie StrictMode nicht entfernen müssen.

Weiter

Der Abonnementschlüssel wird an den Browser übergeben. In der Produktionsumgebung sollten Sie den Nutzungsbereich einschränken oder Azure-Authentifizierungsmethoden in Betracht ziehen.