Doku / Einrichtung / React / Leaflet

Leaflet einrichten

So verwenden Sie Leaflet im Web über MapConductor. Es ist kein Schlüssel erforderlich; es eignet sich für die leichte Anzeige von Rasterkacheln.

PACKAGE
react-for-leaflet
API KEY
Nicht erforderlich
CSS
Erforderlich
3D CAMERA
Pseudo

Bevor Sie beginnen

Node.js 18 oder höher
React 18 oder 19
STEP 01

Installieren

leaflet ist im Paket enthalten.

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

Stylesheet laden

Wird einmal im Einstiegspunkt der App geladen. Wenn Sie dies vergessen, werden Positionen der Karte und das Erscheinungsbild der Steuerelemente zerstört.

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

Herkunft der Kacheln bestimmen

Das Standard-LeafletDesign.OpenStreetMap verwendet die öffentlichen Kacheln von OpenStreetMap und enthält die Namensnennung.

ACHTUNG
Für den öffentlichen Kachelserver von OpenStreetMap gibt es Nutzung Richtlinien. Wenn Sie Produktionsverkehr senden, verwenden Sie bitte Ihre eigene Kachelbereitstellung oder einen kommerziellen Dienst.

PRÜFEN

Was Sie sehen sollten

Wenn die Karte angezeigt wird, sind Sie fertig.

LeafletMap.tsxTypeScript · React
import { useState } from 'react';
import { createGeoPoint, createMapCameraPosition, createMarkerState } from '@mapconductor/js-sdk-core';
import { Marker } from '@mapconductor/js-sdk-react';
import { LeafletDesign, LeafletMapView, useLeafletMapViewState } from '@mapconductor/react-for-leaflet';
import '@mapconductor/react-for-leaflet/style.css';

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

export function LeafletMap() {
  const state = useLeafletMapViewState({
    mapDesignType: LeafletDesign.OpenStreetMap,
    cameraPosition: createMapCameraPosition({ position: TOKYO, zoom: 12 }),
  });
  const [markerState] = useState(() => createMarkerState({ id: 'tokyo', position: TOKYO }));

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

Kartendesigns

LeafletDesign ist eine Konstante, die eine Kachel-URL-Vorlage umschließt. Wenn Sie Ihre eigenen Kacheln verwenden, erstellen Sie denselben Typ.

LeafletDesign
Notes
OpenStreetMap
Standardkacheln von OSM. Mit Namensnennung, max. Zoom 19
None
Kein Basisstil. Wenn Sie nur Overlays zeichnen möchten

Fehlerbehebung

Neigung und Drehung funktionieren nicht

  • Leaflet verfügt über keine native 3D-Kamera. MapConductor nähert sich Neigung und Peilung mithilfe von CSS-3D-Transformationen an. Dies ist nur ein visueller Effekt, keine echte 3D-Kamera.

Positionen der Karte werden zerstört

  • Überprüfen Sie, ob style.css geladen ist.

Die Karte wird während der Entwicklung doppelt initialisiert

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

Weiter

Wenn Sie eine 3D-Anzeige benötigen, ziehen Sie MapLibre oder Cesium in Betracht; wenn Sie Projektionen streng behandeln möchten, ziehen Sie OpenLayers in Betracht.