Doku / Einrichtung / React / TomTom
TomTom einrichten
Schritte zur Verwendung von TomTom Orbis Maps im Web mit MapConductor. @tomtom-org/maps-sdk (basierend auf maplibre) wird dabei gewrappt.
PACKAGE
react-for-tomtom
API KEY
Erforderlich
CSS
Nicht erforderlich
REACT NATIVE
Keine
Bevor Sie beginnen
Node.js 18 oder höher
Orbis Maps API-Schlüssel vom TomTom Developer Portal
STEP 01
Installieren
@tomtom-org/maps-sdk und maplibre-gl sind im Paket enthalten.
terminalnpm
npm install @mapconductor/js-sdk-core @mapconductor/js-sdk-react \
@mapconductor/react-for-tomtomSTEP 02
API-Schlüssel an State-Hook übergeben
Den Schlüssel an einen State-Hook übergeben, nicht an die props der View-Komponente. Andernfalls würde er in Test-Logs und Snapshots erscheinen.
TomTomMap.tsxTypeScript · React
const state = useTomTomViewState({
apiKey: import.meta.env.VITE_TOMTOM_API_KEY,
mapDesignType: TomTomDesign.Standard,
cameraPosition: createMapCameraPosition({ position: AMSTERDAM, zoom: 11 }),
});ACHTUNG
Den Schlüssel über Umgebungsvariablen zur Build-Zeit übergeben (bei Vite z. B. import.meta.env.VITE_*) und nicht in die Quellcodeverwaltung einchecken. Da der Schlüssel an das Frontend weitergegeben wird, müssen unbedingt Referrer- oder Domain-Einschränkungen gesetzt werden, um Schäden bei einer Veröffentlichung zu vermeiden.
PRÜFEN
Was Sie sehen sollten
Fertig, wenn die TomTom-Karte angezeigt wird.
TomTomMap.tsxTypeScript · React
import { useState } from 'react';
import { createGeoPoint, createMapCameraPosition, createMarkerState } from '@mapconductor/js-sdk-core';
import { Marker } from '@mapconductor/js-sdk-react';
import { TomTomDesign, TomTomMapView2D, useTomTomViewState } from '@mapconductor/react-for-tomtom';
const AMSTERDAM = createGeoPoint({ latitude: 52.3676, longitude: 4.9041 });
export function TomTomMap() {
const state = useTomTomViewState({
apiKey: import.meta.env.VITE_TOMTOM_API_KEY,
mapDesignType: TomTomDesign.Standard,
cameraPosition: createMapCameraPosition({ position: AMSTERDAM, zoom: 11 }),
});
const [markerState] = useState(() => createMarkerState({ id: 'ams', position: AMSTERDAM }));
return (
<TomTomMapView2D state={state} style={{ height: 480 }}>
<Marker state={markerState} />
</TomTomMapView2D>
);
}Kartendesigns
TomTomDesign unterstützt die Stile von Orbis Maps. Es sind Paare für hell und dunkel verfügbar.
TomTomDesign
Notes
Standard / StandardLight / StandardDark
Standard-Stil für die Anzeige
Driving / DrivingLight / DrivingDark
Für die Fahrt
MonoLight / MonoDark
Einfarbig. Als Basis für Daten gedacht.
Satellite
Satellitenbilder
Fehlerbehebung
Karte bleibt komplett weiß
- Überprüfen, ob apiKey kein leerer String ist.
- Überprüfen, ob der Schlüssel für Orbis Maps ausgestellt wurde.
Zoom weicht von anderen Anbietern ab
- Der Zoom bei TomTom hängt vom Breitengrad ab. MapConductor verwendet die Kamera-Breite, um den Zoom in ein Google-äquivalentes Maß umzurechnen.
Nur bei der Entwicklung wird die Karte doppelt initialisiert
- React StrictMode führt Effects doppelt aus. Jeder Anbieter erkennt dies und verwirft eine der Instanzen, sodass StrictMode nicht deaktiviert werden muss.
Weiter
TomTomMapView ist 3D, TomTomMapView2D ist 2D. Beide teilen sich dasselbe Zustandsobjekt.