Aller au contenu
Floweet
Accès pro

Géocodage et itinéraires

Trouver les coordonnées d'une adresse (Base Adresse Nationale, puis OpenStreetMap) et calculer un itinéraire routier de 2 à 25 points, distance et durée.

api.floweet.com/v1 · Contrat 1.0.0-beta.1 · Bêta

Sections · Géocodage et itinéraires

Deux outils pour placer vos clients sur la carte : le géocodage, qui trouve les coordonnées d'une adresse, et l'itinéraire routier, qui donne la distance, la durée et le tracé d'un trajet passant par 2 à 25 points.

À savoir

  • Géocodage : la Base Adresse Nationale pour la France, puis OpenStreetMap pour les autres marchés ; sans country, la France d'abord. Cinq résultats au plus, du plus probable au moins probable.
  • Itinéraire : profil voiture. geometry est le tracé complet, point par point : comptez plusieurs centaines de Ko pour un long trajet. Ne demandez le tracé que si vous l'affichez.
  • Ces services sont partagés : 30 appels par minute et par organisation, en plus de la limite générale (voir limites de débit). Mettez en cache les adresses déjà géocodées.
  • Une indisponibilité du service amont répond 502 geocode_unavailable ou 502 route_unavailable : réessayez avec un délai croissant.

Source et reprise

Adresses : Base Adresse Nationale (Licence Ouverte 2.0) ; ailleurs, et pour les itinéraires : © les contributeurs d'OpenStreetMap (ODbL), à créditer.

L'objet Geocode

ChampTypeDescription
resultstoujours présentobject[]5 au plus.
results[].labeltoujours présentstring
results[].lattoujours présentnumber
results[].lngtoujours présentnumber
Geocode
{
  "results": [
    {
      "label": "12 Rue de la République 69002 Lyon",
      "lng": 4.835769,
      "lat": 45.76511
    },
    {
      "label": "Rue de la République 69001 Lyon",
      "lng": 4.836016,
      "lat": 45.76637
    },
    {
      "label": "Place de la République 69002 Lyon",
      "lng": 4.835689,
      "lat": 45.760722
    }
  ]
}

L'objet Route

ChampTypeDescription
distanceKmtoujours présentnumber
durationMintoujours présentnumber
legstoujours présentobject[]
legs[].distanceKmtoujours présentnumber
legs[].durationMintoujours présentnumber
geometrytoujours présentobject[]
geometry[].lattoujours présentnumber
geometry[].lngtoujours présentnumber
Route
{
  "distanceKm": 465.9,
  "durationMin": 298,
  "legs": [
    {
      "distanceKm": 465.9,
      "durationMin": 298
    }
  ],
  "geometry": [
    {
      "lat": 48.857243,
      "lng": 2.352316
    },
    {
      "lat": 48.857254,
      "lng": 2.352327
    },
    {
      "lat": 48.857283,
      "lng": 2.352354
    },
    {
      "lat": 45.763837,
      "lng": 4.835663
    }
  ]
}

Géocoder une adresse (France : Base Adresse Nationale ; autres marchés : OpenStreetMap)

GET/v1/geocodeScope geo:read

Paramètres

ChampOùTypeDescription
qobligatoirerequêtestring1 à 200 caractères
countryfacultatifrequête"fr" | "de" | "es" | "it" | "pt"Absent : France (BAN) puis tous les marchés.

Réponse 200

Succès — Un objet Geocode

Erreurs

HTTPSignification
400Requête invalide
401Clé d'API absente, invalide ou révoquée
403Accès refusé (scope, plan ou statut du compte)
404Ressource introuvable
429Trop de requêtes
500Erreur interne
502Service partenaire en erreur
Requête
curl "https://api.floweet.com/v1/geocode?q=12%20rue%20de%20la%20R%C3%A9publique%2C%20Lyon" \
  -H "Authorization: Bearer $FLOWEET_API_KEY"
Réponse 200
{
  "results": [
    {
      "label": "12 Rue de la République 69002 Lyon",
      "lng": 4.835769,
      "lat": 45.76511
    },
    {
      "label": "Rue de la République 69001 Lyon",
      "lng": 4.836016,
      "lat": 45.76637
    },
    {
      "label": "Place de la République 69002 Lyon",
      "lng": 4.835689,
      "lat": 45.760722
    }
  ]
}

Itinéraire routier (voiture) passant par 2 à 25 points

POST/v1/routesScope geo:read

Paramètres

ChampOùTypeDescription
Idempotency-Keyfacultatifen-têtestringau plus 255 caractèresClé unique de cette requête (un UUID v4 neuf, gardé pour ses nouvelles tentatives) : la première réponse est rejouée pendant 24 heures.

Corps de la requête RouteInput

ChampTypeDescription
pointsobligatoireobject[]2 à 25 éléments
points[].latobligatoirenumberde -90 à 90
points[].lngobligatoirenumberde -180 à 180

Réponse 200

Succès — Un objet Route

Erreurs

HTTPSignification
400Requête invalide
401Clé d'API absente, invalide ou révoquée
403Accès refusé (scope, plan ou statut du compte)
404Ressource introuvable
429Trop de requêtes
500Erreur interne
502Service partenaire en erreur
Requête
curl -X POST "https://api.floweet.com/v1/routes" \
  -H "Authorization: Bearer $FLOWEET_API_KEY" \
  -H "Idempotency-Key: 6f1c2b0e-8d4a-4f7e-9a51-3c2d1e0f9b87" \
  -H "Content-Type: application/json" \
  -d '{
  "points": [
    {
      "lat": 48.8566,
      "lng": 2.3522
    },
    {
      "lat": 45.764,
      "lng": 4.8357
    }
  ]
}'
Réponse 200
{
  "distanceKm": 465.9,
  "durationMin": 298,
  "legs": [
    {
      "distanceKm": 465.9,
      "durationMin": 298
    }
  ],
  "geometry": [
    {
      "lat": 48.857243,
      "lng": 2.352316
    },
    {
      "lat": 48.857254,
      "lng": 2.352327
    },
    {
      "lat": 48.857283,
      "lng": 2.352354
    },
    {
      "lat": 45.763837,
      "lng": 4.835663
    }
  ]
}