Documentación / Configuración / React / Azure Maps

Configurar Azure Maps

Pasos para usar Azure Maps en la web desde MapConductor. Se autentica con una clave de suscripción de Azure.

PACKAGE
react-for-azuremaps
API KEY
Clave de suscripción
CSS
Obligatorio
REACT NATIVE
Ninguno

Antes de empezar

Node.js 18 o superior
Cuenta de Azure Maps y clave de suscripción
STEP 01

Instalar

azure-maps-control está incluido en el paquete.

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

Cargar hoja de estilos

Se carga una sola vez en el punto de entrada de la aplicación. Si olvida hacerlo, la posición del mapa y la apariencia de los controles se romperán.

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

Pasar la clave de suscripción

La clave se pasa a subscriptionKey del enlace de estado. Si se deja vacía, el mapa no se inicializará.

AzureMap.tsxTypeScript · React
const state = useAzureMapsViewState({
  subscriptionKey: import.meta.env.VITE_AZURE_MAPS_SUBSCRIPTION_KEY ?? '',
  mapDesignType: AzureMapsDesign.Road,
  cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
});
PRECAUCIÓN
La clave se pasa desde variables de entorno en tiempo de compilación (en Vite, import.meta.env.VITE_*) y no debe colocarse en el control de código fuente. Dado que pasa al frontend, asegúrese de establecer restricciones de referer o dominio para minimizar el daño si se hace pública.

VERIFICAR

Lo que deberías ver

Si aparece el mapa de Azure Maps, ha terminado.

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>
  );
}

Diseños de mapa

AzureMapsDesign es compatible con los estilos de Azure Maps.

AzureMapsDesign
Notes
Road / RoadShadedRelief
Mapa de carreteras estándar con sombreado de relieve
Satellite / SatelliteRoadLabels
Imagen satelital con etiquetas
GrayscaleLight / GrayscaleDark
Para mapas base sobre los que cargar datos
Night
Estilo nocturno
HighContrastLight / HighContrastDark
Alto contraste
Blank / BlankAccessible
Sin mapa base

Solución de problemas

El mapa no aparece

  • Compruebe que subscriptionKey no sea una cadena vacía.
  • Verifique en el portal de Azure que la clave sea válida.

El mapa se inicializa doble durante el desarrollo

  • React StrictMode ejecuta el efecto dos veces. Cada proveedor detecta esto y descarta una de las instancias, por lo que no es necesario desactivar StrictMode.

Siguiente

La clave de suscripción se pasa al navegador. En producción, limite el alcance de uso o considere los métodos de autenticación de Azure.