Encodeur / décodeur de polyline

Encodez des coordonnées en une chaîne polyline Google ou décodez-en une en lat/lng et GeoJSON, directement dans votre navigateur. Votre parcours reste sur votre appareil.

Les coordonnées et les chaînes polyline que vous collez sont encodées et décodées localement dans votre navigateur et ne sont jamais téléversées ; rien de ce que vous saisissez n’est stocké sur un serveur.

Envie de voir le parcours sur une carte ? Ouvrez la Visionneuse de carte de coordonnées.

À propos de Encodeur de polyline

Cet encodeur et décodeur de polyline gère l’Encoded Polyline Algorithm Format de Google entièrement dans votre navigateur. En mode Encoder, collez une paire « lat, lng » par ligne — ou un LineString GeoJSON — et obtenez la chaîne encodée compacte que les API d’itinéraire renvoient pour un parcours. En mode Décoder, collez une polyline encodée et relisez la liste de coordonnées ainsi qu’un LineString GeoJSON prêt à l’emploi que vous pouvez déposer sur une carte. Un sélecteur de précision bascule entre 5 (la valeur par défaut de Google Maps) et 6 (utilisée par OSRM, Valhalla et Mapbox), qui est la raison habituelle pour laquelle un parcours décodé tombe au mauvais endroit. Les polylines empaquettent tout un chemin dans une courte chaîne ASCII, ce qui est pratique lorsqu’une API vous remet un parcours encodé et que vous avez besoin de coordonnées simples, ou l’inverse. Tout est calculé sur votre appareil et le parcours que vous collez n’est jamais téléversé.

Fonctionnalités

Comment utiliser Encodeur de polyline

  1. Choisissez Encoder pour transformer des coordonnées en polyline, ou Décoder pour en développer une.
  2. Choisissez la précision 5 (Google) ou 6 (OSRM/Valhalla) pour correspondre à votre source de données.
  3. Collez des coordonnées (une paire « lat, lng » par ligne ou un LineString GeoJSON), ou une polyline encodée.
  4. Lisez la chaîne encodée, ou la liste de coordonnées et le LineString GeoJSON, dans les résultats.
  5. Copiez toute sortie pour votre carte, votre requête d’API ou votre fichier de données.

Exemple

Entrée

38.5, -120.2
40.7, -120.95
43.252, -126.453

Sortie

_p~iF~ps|U_ulLnnqC_mqNvxq`@

Le parcours canonique à trois points issu de la doc Google, encodé à la précision 5.

Erreurs courantes et dépannage

Foire aux questions

Qu’est-ce qu’une polyline encodée Google ?
C’est un encodage ASCII compact d’un chemin de points latitude/longitude, défini par l’Encoded Polyline Algorithm Format de Google. Les API Directions et Roads renvoient les parcours de cette manière car la chaîne est bien plus courte qu’une liste complète de coordonnées, et elle se décode exactement vers les points d’origine.
Dois-je utiliser la précision 5 ou 6 pour ma polyline ?
Utilisez 5 pour Google Maps et l’API Google Directions, et 6 pour OSRM, Valhalla, GraphHopper et Mapbox. La précision 6 garde une décimale de plus, si bien qu’une chaîne encodée à 6 mais décodée à 5 tombe environ dix fois plus loin — faites toujours correspondre l’outil qui a créé la polyline.
Comment convertir une polyline encodée en GeoJSON ?
Passez en Décoder, collez la polyline, et l’outil produit un Feature LineString GeoJSON à côté de la simple liste de coordonnées. Le GeoJSON utilise déjà l’ordre [longitude, latitude], si bien que vous pouvez le coller directement dans geojson.io, Leaflet ou une bibliothèque cartographique.
Puis-je encoder un LineString GeoJSON en polyline ?
Oui. En mode Encoder, vous pouvez coller un LineString GeoJSON, ou un Feature ou une FeatureCollection qui en enveloppe un, et l’outil lit ses coordonnées et renvoie la chaîne encodée. Vous pouvez aussi coller de simples lignes « lat, lng » si vous n’avez pas de GeoJSON.
Les données de mon parcours sont-elles envoyées quelque part quand je les encode ou les décode ?
Non. L’encodage et le décodage s’exécutent entièrement dans votre navigateur à l’aide de l’algorithme standard, si bien que les coordonnées et les polylines que vous collez sont traitées sur votre appareil et ne sont jamais téléversées vers un serveur.

Outils associés

Tous les outils ArrayKit