Roads API renvoie la limite de vitesse affichée pour un segment de route donné. Dans le cas de segments de route avec des limites de vitesse variables, la limite de vitesse par défaut du segment est renvoyée.
L'exactitude des données de limite de vitesse renvoyées par Roads API ne peut pas être garantie. Les données de limitation de vitesse fournies ne sont pas en temps réel et peuvent être estimées, inexactes, incomplètes et/ou obsolètes. Consultez les informations sur la couverture pour connaître les régions dans lesquelles les données de limite de vitesse sont disponibles.
Demandes
Une requête de limites de vitesse doit être envoyée via HTTPS et prend la forme suivante :
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY
Utilisation des paramètres
Paramètres obligatoires
- Paramètre
path
ouplaceId
.path
: liste de 100 paires de latitude/longitude au maximum représentant un chemin. Les valeurs de latitude et de longitude doivent être séparées par des virgules. Les paires latitude/longitude doivent être séparées par le caractère barre verticale: "|". Lorsque vous fournissez le paramètrepath
, l'API associe d'abord le parcours à la route la plus probable empruntée par un véhicule (comme pour la requêtesnapToRoads
), puis détermine la limite de vitesse pour le segment routier concerné. Si vous ne souhaitez pas que l'API s'enclenche sur le chemin d'accès, vous devez transmettre un paramètreplaceId
, comme expliqué ci-dessous. L'exemple suivant montre le paramètrepath
avec trois paires latitude/longitude :path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796
.placeId
: identifiant(s) de lieu représentant un ou plusieurs segments de route. Assurez-vous que chaque ID de lieu fait référence à un segment de route et non à un autre type de lieu. Vous pouvez transmettre jusqu'à 100 ID de lieu avec chaque requête. L'API n'effectue pas de mise en correspondance avec les routes pour les ID de lieu fournis. La réponse inclut une limite de vitesse pour chaque ID de lieu de la requête. Vous pouvez envoyer une requêtesnapToRoads
ounearestRoads
pour trouver les ID de lieu pertinents, puis les fournir en entrée à la requêtespeedLimits
. L'exemple suivant présente le paramètreplaceId
avec deux ID de lieu :placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
key
: clé API de votre application. Votre application doit s'identifier chaque fois qu'elle envoie une requête à Roads API en incluant une clé API avec chaque requête. Découvrez comment obtenir une clé.
Paramètres facultatifs
units
: indique si les limites de vitesse doivent être renvoyées en kilomètres ou en miles par heure. Cette valeur peut être définie surKPH
ouMPH
. La valeur par défaut estKPH
.
Réponses
Les éléments suivants peuvent être présents dans une réponse speedLimits
:
speedLimits
: tableau de métadonnées sur les routes. Chaque élément se compose des champs suivants :placeId
: identifiant unique d'un lieu. Tous les ID de lieu renvoyés par Roads API correspondent à des segments de route.speedLimit
: limite de vitesse pour ce segment de route.units
: renvoieKPH
ouMPH
.
snappedPoints
: tableau de points accrochés. Ce tableau n'est présent que si la requête contenait un paramètrepath
. Chaque point se compose des champs suivants :location
: contient une valeurlatitude
etlongitude
.originalIndex
: entier qui indique la valeur correspondante dans la requête d'origine. Chaque valeur de la requête doit correspondre à une valeur arrondie dans la réponse. Ces valeurs sont indexées à partir de0
. Par conséquent, un point avec unoriginalIndex
de4
correspond à la valeur tronquée de la 5e latitude/longitude transmise au paramètrepath
.placeId
: identifiant unique d'un lieu. Tous les ID de lieu renvoyés par Roads API correspondent à des segments de route. LeplaceId
peut être transmis dans une requête de limite de vitesse pour déterminer la limite de vitesse sur ce segment de route.
warning_message
: chaîne contenant un avertissement visible par l'utilisateur.
Exemple de requête utilisant un chemin
Cette requête obtient la limite de vitesse pour chaque segment de route le plus proche des paires de latitude/longitude spécifiées dans un parcours qui traverse le pont Vasco da Gama à Lisbonne, au Portugal.
Requête
https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEY
Response (Réponse)
{ speedLimits: [ { placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE", speedLimit: 105, units: "KPH" }, { placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU", speedLimit: 70, units: "KPH" }, { placeId: "ChIJJ4vQRudkJA0RpednU70A-5M", speedLimit: 55, units: "KPH" } ], snappedPoints: [ { location: { latitude: 38.75807927603043, longitude: -9.037417546438084 }, originalIndex: 0, placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE" }, { location: { latitude: 38.689653701836896, longitude: -9.177051486847693 }, originalIndex: 1, placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU" }, { location: { latitude: 41.13993011767777, longitude: -8.609400794783655 }, originalIndex: 2, placeId: "ChIJJ4vQRudkJA0RpednU70A-5M" } ], warningMessage: "Input path is too sparse. You should provide a path where consecutive points are closer to each other. Refer to the 'path' parameter in Google Roads API documentation." }
Notez le message d'avertissement concernant la rareté des points dans la réponse ci-dessus. Si vous demandez les limites de vitesse des tronçons routiers les plus proches à des points arbitraires, vous devez appeler speedLimits
avec des ID de lieu récupérés à partir du point de terminaison nearestRoads
.
Exemple de requête utilisant des ID de lieu
Au lieu d'utiliser des paires latitude/longitude, vous pouvez transmettre les ID de lieu des segments de route. Nous vous recommandons d'obtenir des ID de lieu pour les segments de route à l'aide de requêtes snapToRoads
ou nearestRoads
. Lorsque vous transmettez des ID de lieu, l'API renvoie la limite de vitesse du segment de route représenté par chaque ID de lieu. L'API n'applique aucun calage sur les routes aux ID de lieu fournis.
L'exemple suivant demande les limites de vitesse de certains des segments de route qui traversent le pont Vasco da Gama à Lisbonne, au Portugal.
Requête
https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEY
Response (Réponse)
{ "speedLimits": [ { placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE", speedLimit: 105, units: "KPH" }, { placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU", speedLimit: 70, units: "KPH" }, { placeId: "ChIJJ4vQRudkJA0RpednU70A-5M", speedLimit: 55, units: "KPH" } ] }
Recommandations d'utilisation
Pour réduire le volume des appels au service Speed Limit, nous vous recommandons d'échantillonner l'emplacement de vos ressources à des intervalles de 5 à 15 minutes (la valeur exacte dépend de la vitesse de déplacement de la ressource). Si un composant est immobile, un seul échantillon d'emplacement suffit (il n'est pas nécessaire d'effectuer plusieurs appels).
Pour minimiser la latence globale, nous vous recommandons d'appeler le service Speed Limit une fois que vous avez collecté des données au lieu d'appeler l'API chaque fois que vous recevez l'emplacement d'une ressource en mouvement.
Pourquoi certaines ou toutes les limites de vitesse ne sont-elles pas affichées ?
La raison la plus courante de l'absence de speedLimits
est la demande de la limite de vitesse d'un lieu qui n'est pas un segment de route.
L'exemple ci-dessus utilise le pont Vasco da Gama pour illustrer les concepts. Le pont soutient la route E90 qui traverse le Rio Tejo. Le pont lui-même a un ID de lieu de ChIJUzt97ZEwGQ0RM1JzQfqoDtU. Le premier segment de route de la réponse ci-dessus fait partie de la route E90 et a pour ID de lieu ChIJX12duJAwGQ0Ra0d4Oi4jOGE. Dans l'exemple de requête, si vous remplacez l'identifiant de lieu de la route par l'identifiant de lieu du pont, la réponse ne contiendra que deux limites de vitesse dans le tableau speedLimits
, car l'identifiant de lieu du pont ne fait pas référence à un segment de route individuel. De plus, si aucun des ID de lieu ne correspond à des segments de route, la réponse ne contient aucune limite de vitesse.
Lorsque vous envoyez des requêtes de limite de vitesse à l'aide d'ID de lieu, assurez-vous que chaque ID de lieu fait référence à un segment de route et non à un autre type d'établissement. Il est préférable de récupérer les ID de lieu pour des segments routiers individuels à l'aide de requêtes snapToRoads
ou nearestRoads
, qui peuvent toutes deux renvoyer plusieurs ID de lieu à partir d'un seul appel.