Roads API pobiera do 100 punktów GPS zebranych na trasie i zwraca podobny zestaw danych, w którym punkty są przyciągane do najbardziej prawdopodobnych dróg, po których poruszał się pojazd. Opcjonalnie możesz poprosić o interpolację punktów, co pozwoli uzyskać ścieżkę, która płynnie podąża za geometrią drogi.
Żądania
Żądania przyciągania do drogi należy wysyłać za pomocą protokołu HTTPS w następującej postaci:
https://roads.googleapis.com/v1/snapToRoads?parameters&key=YOUR_API_KEYWymagane parametry
ścieżka
Ścieżka, która ma zostać przyciągnięta. Parametr ścieżki może zawierać listę par szerokości i długości geograficznej. Wartości szerokości i długości geograficznej powinny być rozdzielone przecinkami. Współrzędne powinny być rozdzielone pionową kreską: „|”. Na przykład: path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796.
Parametry opcjonalne
interpolacja
Określa, czy interpolować ścieżkę, aby uwzględnić wszystkie punkty tworzące pełną geometrię drogi. Jeśli ma wartość „true”, zwracane są też dodatkowe punkty interpolowane, co pozwala uzyskać ścieżkę, która płynnie podąża za geometrią drogi, nawet na zakrętach i w tunelach. Ścieżki interpolowane będą najprawdopodobniej zawierać więcej punktów niż ścieżka pierwotna. Domyślna wartość to false.
Przykłady
To żądanie przyciąga określone punkty do geometrii drogi. Ten konkretny zbiór danych dotyczy okrężnej drogi. Ustawienie interpolate=true sprawia, że zwrócona geometria odpowiada krzywiźnie drogi. W przypadku interpolate=false przyciągnięta ścieżka nadal biegnie wzdłuż drogi, ale wynikowa łamana nie jest tak gładka.
URL
https://roads.googleapis.com/v1/snapToRoads ?interpolate=true &path=-35.27801%2C149.12958%7C-35.28032%2C149.12907%7C-35.28099%2C149.12929%7C-35.28144%2C149.12984%7C-35.28194%2C149.13003%7C-35.28282%2C149.12956%7C-35.28302%2C149.12881%7C-35.28473%2C149.12836 &key=YOUR_API_KEY
cURL
curl -L -X GET 'https://roads.googleapis.com/v1/snapToRoads?path=-35.27801%2C149.12958%7C-35.28032%2C149.12907%7C-35.28099%2C149.12929%7C-35.28144%2C149.12984%7C-35.28194%2C149.13003%7C-35.28282%2C149.12956%7C-35.28302%2C149.12881%7C-35.28473%2C149.12836&interpolate=true&key=YOUR_API_KEY'
Odpowiedzi
W przypadku każdego prawidłowego żądania Roads API zwraca odpowiedź w formacie wskazanym w adresie URL żądania, np. taką odpowiedź JSON:
{ "snappedPoints": [ { "location": { "latitude": -35.27800489993019, "longitude": 149.129531998742 }, "originalIndex": 0, "placeId": "ChIJr_xl0GdNFmsRsUtUbW7qABM", }, { "location": { "latitude": -35.2784195, "longitude": 149.12946589999999 }, "placeId": "ChIJr_xl0GdNFmsRsUtUbW7qABM", }, { "location": { "latitude": -35.2784195, "longitude": 149.12946589999999 }, "placeId": "ChIJ6aXGemhNFmsRZE_zHqhmrG4", }, { "location": { "latitude": -35.2792731, "longitude": 149.12933809999998 }, "placeId": "ChIJ6aXGemhNFmsRZE_zHqhmrG4", }, { "location": { "latitude": -35.2792731, "longitude": 149.12933809999998 }, "placeId": "ChIJTcTdZ2hNFmsRXokM4mWCWfk", }, { "location": { "latitude": -35.279557, "longitude": 149.1292973 }, "placeId": "ChIJTcTdZ2hNFmsRXokM4mWCWfk", }, { "location": { "latitude": -35.279557, "longitude": 149.1292973 }, "placeId": "ChIJiUfNQmhNFmsRSsAI-1m6y1g", }, { "location": { "latitude": -35.279610999999996, "longitude": 149.1292889 }, "placeId": "ChIJiUfNQmhNFmsRSsAI-1m6y1g", }, { "location": { "latitude": -35.2796484, "longitude": 149.1292791 }, "placeId": "ChIJiUfNQmhNFmsRSsAI-1m6y1g", }, { "location": { "latitude": -35.2796484, "longitude": 149.1292791 }, "placeId": "ChIJ_RyFQ2hNFmsRoHJAbW7qABM", }, { "location": { "latitude": -35.279947299999996, "longitude": 149.1291894 }, "placeId": "ChIJ_RyFQ2hNFmsRoHJAbW7qABM", }, { "location": { "latitude": -35.279947299999996, "longitude": 149.1291894 }, "placeId": "ChIJOyypT2hNFmsRZBtscGL0htw", }, { "location": { "latitude": -35.280323564795005, "longitude": 149.1290903128365 }, "originalIndex": 1, "placeId": "ChIJOyypT2hNFmsRZBtscGL0htw", }, { "location": { "latitude": -35.2803426, "longitude": 149.12908529999999 }, "placeId": "ChIJOyypT2hNFmsRZBtscGL0htw", }, { "location": { "latitude": -35.2803426, "longitude": 149.12908529999999 }, "placeId": "ChIJr8xRTGhNFmsRzMb-rxgjspc", }, { "location": { "latitude": -35.280409899999995, "longitude": 149.1290699 }, "placeId": "ChIJr8xRTGhNFmsRzMb-rxgjspc", }, { "location": { "latitude": -35.28048179999999, "longitude": 149.129062 }, "placeId": "ChIJr8xRTGhNFmsRzMb-rxgjspc", }, { "location": { "latitude": -35.2805541, "longitude": 149.1290623 }, "placeId": "ChIJr8xRTGhNFmsRzMb-rxgjspc", }, { "location": { "latitude": -35.280626, "longitude": 149.1290712 }, "placeId": "ChIJr8xRTGhNFmsRzMb-rxgjspc", }, { "location": { "latitude": -35.280626, "longitude": 149.1290712 }, "placeId": "ChIJv5r0smlNFmsR5nunau79Fv4", }, { "location": { "latitude": -35.280695099999996, "longitude": 149.12908489999998 }, "placeId": "ChIJv5r0smlNFmsR5nunau79Fv4", }, { "location": { "latitude": -35.2807629, "longitude": 149.1291046 }, "placeId": "ChIJv5r0smlNFmsR5nunau79Fv4", }, { "location": { "latitude": -35.2808294, "longitude": 149.1291306 }, "placeId": "ChIJv5r0smlNFmsR5nunau79Fv4", }, { "location": { "latitude": -35.2809064, "longitude": 149.1291693 }, "placeId": "ChIJv5r0smlNFmsR5nunau79Fv4", }, { "location": { "latitude": -35.280968200000004, "longitude": 149.129208 }, "placeId": "ChIJv5r0smlNFmsR5nunau79Fv4", }, { "location": { "latitude": -35.28101395754623, "longitude": 149.1292430025548 }, "originalIndex": 2, "placeId": "ChIJv5r0smlNFmsR5nunau79Fv4", }, { "location": { "latitude": -35.28103840000001, "longitude": 149.1292617 }, "placeId": "ChIJv5r0smlNFmsR5nunau79Fv4", }, { "location": { "latitude": -35.2810936, "longitude": 149.1293121 }, "placeId": "ChIJv5r0smlNFmsR5nunau79Fv4", }, { "location": { "latitude": -35.2810979, "longitude": 149.1293176 }, "placeId": "ChIJv5r0smlNFmsR5nunau79Fv4", }, { "location": { "latitude": -35.2810979, "longitude": 149.1293176 }, "placeId": "ChIJpYMSrmlNFmsRXkCoIkZxgBg", }, { "location": { "latitude": -35.281152399999996, "longitude": 149.1294256 }, "placeId": "ChIJpYMSrmlNFmsRXkCoIkZxgBg", }, { "location": { "latitude": -35.281152399999996, "longitude": 149.1294256 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.2811784, "longitude": 149.1294706 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.2812258, "longitude": 149.1295413 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.2812771, "longitude": 149.12960759999999 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.281332, "longitude": 149.1296695 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.2813904, "longitude": 149.12972670000002 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.281451700000005, "longitude": 149.1297788 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.28146506991143, "longitude": 149.12978858234607 }, "originalIndex": 3, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.28151580000001, "longitude": 149.1298257 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.28158259999999, "longitude": 149.129867 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.281666099999995, "longitude": 149.1299091 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.2817377, "longitude": 149.1299379 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.281810899999996, "longitude": 149.1299602 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.281884999999996, "longitude": 149.1299765 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.28194399606459, "longitude": 149.1299842294294 }, "originalIndex": 4, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.281959799999996, "longitude": 149.12998629999998 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.282035199999996, "longitude": 149.1299895 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.2821254, "longitude": 149.1299851 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.282199999999996, "longitude": 149.1299743 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.2822739, "longitude": 149.1299573 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.2823468, "longitude": 149.129934 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.2824178, "longitude": 149.1299043 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.2824379, "longitude": 149.1298945 }, "placeId": "ChIJ601MoWlNFmsR5mvkfPp2ovA", }, { "location": { "latitude": -35.2824379, "longitude": 149.1298945 }, "placeId": "ChIJe9LPnWlNFmsR7mJw8mYHwG0", }, { "location": { "latitude": -35.282472999999996, "longitude": 149.1298835 }, "placeId": "ChIJe9LPnWlNFmsR7mJw8mYHwG0", }, { "location": { "latitude": -35.2825375, "longitude": 149.1298525 }, "placeId": "ChIJe9LPnWlNFmsR7mJw8mYHwG0", }, { "location": { "latitude": -35.28257309999999, "longitude": 149.1298319 }, "placeId": "ChIJe9LPnWlNFmsR7mJw8mYHwG0", }, { "location": { "latitude": -35.28257309999999, "longitude": 149.1298319 }, "placeId": "ChIJaUpThGlNFmsRMHWxoH7EOsc", }, { "location": { "latitude": -35.282665400000006, "longitude": 149.12974459999998 }, "placeId": "ChIJaUpThGlNFmsRMHWxoH7EOsc", }, { "location": { "latitude": -35.28274030000001, "longitude": 149.1296645 }, "placeId": "ChIJaUpThGlNFmsRMHWxoH7EOsc", }, { "location": { "latitude": -35.282809799999995, "longitude": 149.12957799999998 }, "placeId": "ChIJaUpThGlNFmsRMHWxoH7EOsc", }, { "location": { "latitude": -35.28282136229385, "longitude": 149.12956142620385 }, "originalIndex": 5, "placeId": "ChIJaUpThGlNFmsRMHWxoH7EOsc", }, { "location": { "latitude": -35.2828744, "longitude": 149.1294854 }, "placeId": "ChIJaUpThGlNFmsRMHWxoH7EOsc", }, { "location": { "latitude": -35.282922299999996, "longitude": 149.1294044 }, "placeId": "ChIJaUpThGlNFmsRMHWxoH7EOsc", }, { "location": { "latitude": -35.282931500000004, "longitude": 149.1293876 }, "placeId": "ChIJaUpThGlNFmsRMHWxoH7EOsc", }, { "location": { "latitude": -35.2830263, "longitude": 149.1291788 }, "placeId": "ChIJaUpThGlNFmsRMHWxoH7EOsc", }, { "location": { "latitude": -35.2830263, "longitude": 149.1291788 }, "placeId": "ChIJyd3JiWlNFmsR9RUq2ySTTZQ", }, { "location": { "latitude": -35.283054, "longitude": 149.1290996 }, "placeId": "ChIJyd3JiWlNFmsR9RUq2ySTTZQ", }, { "location": { "latitude": -35.2830794, "longitude": 149.1290094 }, "placeId": "ChIJyd3JiWlNFmsR9RUq2ySTTZQ", }, { "location": { "latitude": -35.2830794, "longitude": 149.1290094 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.28313383700836, "longitude": 149.12893500604946 }, "originalIndex": 6, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.283134499999996, "longitude": 149.12893409999998 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.283190399999995, "longitude": 149.1288668 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.2832503, "longitude": 149.1288041 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.2833133, "longitude": 149.1287463 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.2833794, "longitude": 149.128694 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.283448299999996, "longitude": 149.128647 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.2835199, "longitude": 149.1286054 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.2835934, "longitude": 149.1285699 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.283668899999995, "longitude": 149.12854059999998 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.28372649999999, "longitude": 149.1285237 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.28386179999999, "longitude": 149.12849319999998 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.2839978, "longitude": 149.1284682 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.2840205, "longitude": 149.12846779999998 }, "placeId": "ChIJWSb8ImpNFmsRp_4JAxJFE1A", }, { "location": { "latitude": -35.2840205, "longitude": 149.12846779999998 }, "placeId": "ChIJZe8tFWpNFmsR4brZ1vldk2E", }, { "location": { "latitude": -35.2840524, "longitude": 149.12845969999998 }, "placeId": "ChIJZe8tFWpNFmsR4brZ1vldk2E", }, { "location": { "latitude": -35.284341500000004, "longitude": 149.1284124 }, "placeId": "ChIJZe8tFWpNFmsR4brZ1vldk2E", }, { "location": { "latitude": -35.2843875, "longitude": 149.1284034 }, "placeId": "ChIJZe8tFWpNFmsR4brZ1vldk2E", }, { "location": { "latitude": -35.2843875, "longitude": 149.1284034 }, "placeId": "ChIJVx7Ta2pNFmsRx9OI9CnN5tI", }, { "location": { "latitude": -35.2845916, "longitude": 149.1283726 }, "placeId": "ChIJVx7Ta2pNFmsRx9OI9CnN5tI", }, { "location": { "latitude": -35.2845916, "longitude": 149.1283726 }, "placeId": "ChIJtWxAZmpNFmsRlbUCkc6VtnA", }, { "location": { "latitude": -35.28459730000001, "longitude": 149.1283703 }, "placeId": "ChIJtWxAZmpNFmsRlbUCkc6VtnA", }, { "location": { "latitude": -35.284728747199374, "longitude": 149.12834860726772 }, "originalIndex": 7, "placeId": "ChIJtWxAZmpNFmsRlbUCkc6VtnA", }, ], }
Odpowiedź używa tego schematu.
SnapToRoadsResponse
| Pole | Wymagane | Typ | Opis |
|---|---|---|---|
|
opcjonalnie | Array<SnappedPoint> |
Tablica punktów przyciągniętych. Więcej informacji znajdziesz w artykule SnappedPoint. |
|
opcjonalnie | tekst |
Ciąg tekstowy zawierający ostrzeżenie widoczne dla użytkownika. |
SnappedPoint
| Pole | Wymagane | Typ | Opis |
|---|---|---|---|
|
wymagane | LatitudeLongitudeLiteral | Więcej informacji znajdziesz w sekcji LatitudeLongitudeLiteral. |
|
wymagane | tekst |
Unikalny identyfikator miejsca. Wszystkie identyfikatory miejsc zwracane przez interfejs Roads API odpowiadają odcinkom dróg. |
|
opcjonalnie | liczba |
Liczba całkowita, która wskazuje odpowiednią wartość w pierwotnym żądaniu. Każda wartość w żądaniu powinna być mapowana na wartość przyciągniętą w odpowiedzi. Jeśli jednak ustawisz interpolate=true lub używasz najbliższych dróg, odpowiedź może zawierać więcej współrzędnych niż żądanie. Wartości interpolowane nie będą miały właściwości |
LatitudeLongitudeLiteral
Obiekt opisujący konkretną lokalizację z szerokością i długością geograficzną w stopniach dziesiętnych.
| Pole | Wymagane | Typ | Opis |
|---|---|---|---|
|
wymagane | liczba |
Szerokość geograficzna w stopniach dziesiętnych |
|
wymagane | liczba |
Długość geograficzna w stopniach dziesiętnych |