Convertisseur de code
Collez le code cartographique que vous avez aujourd'hui. Le convertisseur le réécrit pour @unmap/sdk et liste chaque modification apportée, tout ce qu'il vous reste à terminer à la main et ce qui n'a pas d'équivalent chez unmap. Il s'exécute dans votre navigateur : votre code n'est jamais envoyé nulle part.
import { Unmap, maplibregl } from "@unmap/sdk";
import "maplibre-gl/dist/maplibre-gl.css";
const unmap = new Unmap({
key: "um_live_...",
container: "map",
style: "base",
center: [-114.0719, 51.0447],
zoom: 11,
controls: false,
});
const map = unmap.map;
map.setPitch(30);
map.addControl(new maplibregl.NavigationControl());
new maplibregl.Marker()
.setLngLat([-114.0719, 51.0447])
.setPopup(new maplibregl.Popup().setHTML("<p>Calgary Tower</p>"))
.addTo(map);
// unmap: const results = await unmap.geocoder.search("Calgary Tower");
const url = new URL("https://api.mapbox.com/search/geocode/v6/forward");
url.searchParams.set("q", "Calgary Tower");
url.searchParams.set("access_token", mapboxgl.accessToken);
const data = await (await fetch(url)).json();
const origin = [-114.0719, 51.0447];
const dest = [-113.9871, 51.0899];
// unmap: const route = await unmap.router.route(origin, dest, { mode: "auto" });
const directions = new URL(`https://api.mapbox.com/directions/v5/mapbox/driving/${origin.join(",")};${dest.join(",")}`);
Modifié10
- L'import du paquet est @unmap/sdk.
mapbox-gl@unmap/sdk - La feuille de style est celle de MapLibre.
mapbox-gl.cssmaplibre-gl.css - Le jeton d'accès est une clé unmap.
mapboxgl.accessTokenkey - Votre NavigationControl est conservé, donc les boutons de zoom d'unmap sont désactivés.
- Le style est un nom de style unmap.
mapbox://styles/mapbox/streets-v12style: "base" - Pas une option du constructeur dans unmap : définie sur la carte une fois créée.
pitch: 30map.setPitch(30) - La carte est créée par new Unmap, et la carte MapLibre est unmap.map.
new Unmap({ key }) - La même classe, depuis MapLibre. ×3
mapboxgl.NavigationControlmaplibregl.NavigationControlmapboxgl.Markermaplibregl.Markermapboxgl.Popupmaplibregl.Popup
À vérifier3
- Recherche : remplacez cette requête par unmap.geocoder. Les résultats sont un tableau de { id, name, layer, lng, lat }, pas une FeatureCollection.
Mapbox Geocodingconst results = await unmap.geocoder.search("Calgary Tower"); - Itinéraire : remplacez cette requête par unmap.router.route. route.geometry est une LineString GeoJSON.
mapbox/drivingautoconst route = await unmap.router.route(origin, dest, { mode: "auto" }); - En TypeScript, écrivez unmap.map! là où la carte est utilisée : elle n'est indéfinie que si aucun conteneur n'est passé.
S'exécute dans votre navigateur. Votre code n'est jamais envoyé nulle part.
Guide Mapbox completCe qu'il réécrit
Les règles sont les correspondances documentées par les guides Mapbox et Google Maps, et les exemples de ces guides lui servent de tests.
- La carte.
new mapboxgl.Mapetnew google.maps.Mapdeviennentnew Unmap({ key, … }), et votre variable de carte devientunmap.map, donc le code qui suit continue de fonctionner. Les options qu'Unmap ne prend pas, commepitchoutilt, deviennent des setters sur la carte. - La clé et le style. Un jeton Mapbox ou une clé Google devient
um_live_.... Une variable d'environnement garde sa place sous un nouveau nom :NEXT_PUBLIC_MAPBOX_TOKENdevientNEXT_PUBLIC_UNMAP_KEY.streetsetroadmapdeviennentbase,outdoorsetterraindeviennentoutdoor, etlightetdarkdeviennent unmode. - Les coordonnées. Les
{ lat, lng }de Google etnew google.maps.LatLng(lat, lng)sont inversés en[lng, lat], etlatLng.lat()devientlngLat.lat. - Repères, infobulles et événements.
Marker,Popupet les contrôles viennent demaplibregl. UneInfoWindowGoogle ouverte au clic devientmarker.setPopup(popup), etaddListenerdevientonavec les noms d'événements de MapLibre.
Ce qu'il vous laisse
Une requête à un service web (géocodage, itinéraire, recherche à proximité) tient sur plusieurs lignes : une URL construite, appelée, puis décortiquée. La réécrire sans risque demande plus que des règles, donc le convertisseur la laisse en place et écrit l'appel unmap au-dessus, en commentaire, avec votre requête et vos coordonnées. Mettez-le à la place et supprimez la requête.
Le résultat est un point de départ, pas une version prête à compiler. Lisez la liste sous le code : ce que le convertisseur n'a pas reconnu y est signalé et laissé tel quel, jamais supprimé. Les guides Mapbox et Google Maps expliquent chaque modification en détail.