Documentation

Démarrez en quelques minutes

Utilisez une clé publique limitée à vos domaines dans le navigateur, ou une clé secrète côté serveur. Cartes, recherche d'adresses et itinéraires utilisent les mêmes clés.

1

Créez une clé

La clé publique sert les cartes et l'autocomplétion dans le navigateur. La clé secrète reste sur votre serveur.

2

Autorisez vos domaines

Ajoutez les hôtes qui peuvent utiliser la clé publique. Le CDN refuse les autres origines.

3

Choisissez un style

Chargez le style Waypio voulu dans MapLibre. Les URL des tuiles et des glyphes ciblent automatiquement votre zone CDN.

Afficher une carte

MapLibre et le CDN Waypio

Le document de style contient la configuration du CDN et des sources PMTiles. La clé publique reste visible, mais elle ne fonctionne que sur les domaines autorisés.

const protocol = new pmtiles.Protocol();
maplibregl.addProtocol("pmtiles", protocol.tile);

const map = new maplibregl.Map({
  container: "map",
  style: "https://www.waypio.com/p/styles/standard?k=VOTRE_CLE_PUBLIQUE",
  center: [2.35, 48.85],
  zoom: 11
});

// Le style reçu pointe vers cdn-fr, cdn-eu ou cdn.waypio.com.
Recherche d'adresses

Géocodage et autocomplétion

L'autocomplétion accepte une clé publique depuis le navigateur. Le géocodage serveur utilise l'en-tête Authorization avec la clé secrète.

const response = await fetch(
  "https://www.waypio.com/p/autocomplete?q=10+rue+de+Rivoli&limit=5&k=VOTRE_CLE_PUBLIQUE"
);
if (!response.ok) throw new Error(`Waypio ${response.status}`);
const { features } = await response.json();

const [longitude, latitude] = features[0].geometry.coordinates;
Carte interactive

Clic sur la carte et itinéraire

Le reverse géocodage peut utiliser la clé publique limitée au domaine. Le calcul d'itinéraire utilise la clé secrète côté serveur.

map.on("click", async ({ lngLat }) => {
  const url = new URL("https://www.waypio.com/p/reverse");
  url.search = new URLSearchParams({
    lat: lngLat.lat, lon: lngLat.lng, limit: "1",
    k: "VOTRE_CLE_PUBLIQUE"
  });
  const response = await fetch(url);
  if (!response.ok) throw new Error(`Waypio ${response.status}`);
  const result = await response.json();
  console.log(result.features[0]?.place_name);
});
Référence API

Endpoints disponibles

Ouvrez un endpoint pour consulter son authentification, ses paramètres et le format de réponse.

GET/p/styles/{style}Style MapLibre pour le navigateur

Authentification. Paramètre k=wp_pub_... et origine autorisée.

Styles généraux. standard, contrast, night, muted. Styles métier. mobility, logistics, poi, tourism, civic, real-estate, topo, hydro, parks, heritage, trails, civic-night, energy, aviation, industry, campus.

Réponse. Document de style MapLibre v8, avec les ressources CDN signées pour votre zone.

GET/p/autocompleteSuggestions pendant la saisie

Authentification. Paramètre k=wp_pub_... et origine autorisée.

Requis. q. Optionnels. limit, bbox, country, countrycodes, language, proximity, type, types.

Réponse. Collection GeoJSON. Chaque feature fournit geometry.coordinates, place_name et ses propriétés d'adresse.

GET/v1/geocodeAdresse vers coordonnées

Authentification. Authorization: Bearer wp_live_....

Requis. q. Optionnels. limit, bbox, country, countrycodes, language, proximity, type, types.

Réponse. Collection GeoJSON classée par pertinence.

GET/v1/reverseCoordonnées vers adresse

Authentification. Authorization: Bearer wp_live_....

Requis. lat et lon. Optionnels. limit et type.

Réponse. Collection GeoJSON, de l'adresse la plus proche aux résultats suivants.

GET/v1/routeItinéraire routier en France

Authentification. Authorization: Bearer wp_live_....

Requis. profile=driving et from=lon,lat avec to=lon,lat. Réponse. Distance, durée et géométrie GeoJSON de l'itinéraire.

HTTPErreursRéponses à traiter côté client

401 : clé secrète absente ou invalide. 402 : solde épuisé. 403 : clé publique ou domaine refusé. 429 : limite temporaire. 502 : moteur cartographique indisponible.

Référence interactive

Consultez le contrat OpenAPI complet et testez les opérations avec votre clé API.