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.
Bevor Sie beginnen
Installieren
leaflet ist im Paket enthalten.
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
@mapconductor/react-for-leafletStylesheet laden
Wird einmal im Einstiegspunkt der App geladen. Wenn Sie dies vergessen, werden Positionen der Karte und das Erscheinungsbild der Steuerelemente zerstört.
import '@mapconductor/react-for-leaflet/style.css';
Herkunft der Kacheln bestimmen
Das Standard-LeafletDesign.OpenStreetMap verwendet die öffentlichen Kacheln von OpenStreetMap und enthält die Namensnennung.
PRÜFEN
Was Sie sehen sollten
Wenn die Karte angezeigt wird, sind Sie fertig.
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.
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.