Roads API는 지정된 도로 구간의 규정 속도 제한을 반환합니다. 다양한 속도 제한이 있는 도로 구간의 경우 구간의 기본 속도 제한이 반환됩니다.
Roads API에서 반환하는 속도 제한 데이터의 정확성은 보장할 수 없습니다. 제공되는 속도 제한 데이터는 실시간이 아니며, 부정확하거나 불완전하거나 오래된 추정치일 수 있습니다. 속도 제한 데이터를 사용할 수 있는 리전은 범위 세부정보를 참고하세요.
요청
속도 제한 요청은 다음 형식을 사용하여 HTTPS를 통해 전송해야 합니다.
https://roads.googleapis.com/v1/speedLimits?parameters&key=YOUR_API_KEY
매개변수 사용
필수 매개변수
path
또는placeId
매개변수입니다.path
- 경로를 나타내는 최대 100개의 위도/경도 쌍 목록입니다. 위도와 경도 값은 쉼표로 구분해야 합니다. 위도/경도 쌍은 파이프 문자 '|'로 구분해야 합니다.path
매개변수를 지정하면 API가 먼저 차량이 이동할 가능성이 가장 높은 도로로 경로를 스냅 (snapToRoads
요청에서와 마찬가지로)한 후 관련 도로 구간의 속도 제한을 결정합니다. API가 경로를 맞추지 않도록 하려면 아래에 설명된 대로placeId
매개변수를 전달해야 합니다. 다음 예는 세 개의 위도/경도 쌍(path=60.170880,24.942795|60.170879,24.942796|60.170877,24.942796
)이 있는path
매개변수를 보여줍니다.placeId
: 하나 이상의 도로 구간을 나타내는 장소 ID입니다. 각 장소 ID는 다른 유형의 장소가 아닌 도로 구간을 나타내야 합니다. 각 요청에 최대 100개의 장소 ID를 전달할 수 있습니다. API는 제공된 장소 ID에 대해 도로 맞추기를 수행하지 않습니다. 응답에는 요청의 각 장소 ID에 대한 속도 제한이 포함됩니다.snapToRoads
또는nearestRoads
요청을 전송하여 관련 장소 ID를 찾은 다음 이를speedLimits
요청에 입력으로 제공할 수 있습니다. 다음 예는 장소 ID가 두 개 있는placeId
매개변수를 보여줍니다.placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU
key
- 애플리케이션의 API 키입니다. 애플리케이션은 각 요청에 API 키를 포함하여 Roads API에 요청을 전송할 때마다 자신을 식별해야 합니다. 키를 가져오는 방법을 알아보세요.
선택적 매개변수
units
- 속도 제한을 시속 킬로미터 또는 마일 단위로 반환할지 여부입니다.KPH
또는MPH
로 설정할 수 있습니다. 기본값은KPH
입니다.
응답
speedLimits
응답에 다음 요소가 있을 수 있습니다.
speedLimits
- 도로 메타데이터의 배열입니다. 각 요소는 다음 필드로 구성됩니다.placeId
- 장소의 고유 식별자입니다. Roads API에서 반환하는 모든 장소 ID는 도로 구간에 해당합니다.speedLimit
- 해당 도로 구간의 제한 속도입니다.units
-KPH
또는MPH
를 반환합니다.
snappedPoints
- 스냅된 지점의 배열입니다. 이 배열은 요청에path
매개변수가 포함된 경우에만 존재합니다. 각 지점은 다음 필드로 구성됩니다.location
-latitude
및longitude
값을 포함합니다.originalIndex
- 원래 요청의 해당 값을 나타내는 정수입니다. 요청의 각 값은 응답의 맞추기된 값에 매핑되어야 합니다. 이러한 값은0
에서 색인화되므로originalIndex
가4
인 지점은path
매개변수에 전달된 5번째 위도/경도의 맞추기된 값입니다.placeId
- 장소의 고유 식별자입니다. Roads API에서 반환하는 모든 장소 ID는 도로 구간에 해당합니다. 속도 제한 요청에placeId
을 전달하여 도로 구간을 따라 속도 제한을 결정할 수 있습니다.
warning_message
- 사용자에게 표시되는 경고가 포함된 문자열입니다.
경로를 사용하는 요청 예
이 요청은 포르투갈 리스본의 바스코 다 가마 다리를 건너는 경로에서 지정된 위도/경도 쌍에 가장 가까운 각 도로 구간의 속도 제한을 가져옵니다.
요청
https://roads.googleapis.com/v1/speedLimits?path=38.75807927603043,-9.03741754643809|38.6896537,-9.1770515|41.1399289,-8.6094075&key=YOUR_API_KEY
응답
{ 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." }
위의 응답에서 포인트 희소성에 대한 경고 메시지가 표시됩니다. 임의의 지점에서 가장 가까운 도로 구간의 속도 제한을 요청하는 경우 nearestRoads
엔드포인트에서 가져온 장소 ID로 speedLimits
를 대신 호출해야 합니다.
장소 ID를 사용하는 요청 예
위도/경도 쌍을 사용하는 대신 도로 구간의 장소 ID를 전달할 수 있습니다. snapToRoads
또는 nearestRoads
요청을 사용하여 도로 구간의 장소 ID를 가져오는 것이 좋습니다. 장소 ID를 전달하면 API는 각 장소 ID로 표시되는 도로 구간의 속도 제한을 반환합니다. API는 제공된 장소 ID에 도로 맞추기를 적용하지 않습니다.
다음 예에서는 포르투갈 리스본의 바스코 다 가마 다리를 건너는 일부 도로 구간에 대해 속도 제한을 요청합니다.
요청
https://roads.googleapis.com/v1/speedLimits?placeId=ChIJX12duJAwGQ0Ra0d4Oi4jOGE&placeId=ChIJLQcticc0GQ0RoiNZJVa5GxU&placeId=ChIJJ4vQRudkJA0RpednU70A-5M&key=YOUR_API_KEY
응답
{ "speedLimits": [ { placeId: "ChIJX12duJAwGQ0Ra0d4Oi4jOGE", speedLimit: 105, units: "KPH" }, { placeId: "ChIJLQcticc0GQ0RoiNZJVa5GxU", speedLimit: 70, units: "KPH" }, { placeId: "ChIJJ4vQRudkJA0RpednU70A-5M", speedLimit: 55, units: "KPH" } ] }
사용 권장사항
속도 제한 서비스에 대한 호출 수를 최소화하려면 애셋의 위치를 5~15분 간격으로 샘플링하는 것이 좋습니다 (정확한 값은 애셋의 이동 속도에 따라 다름). 애셋이 고정 상태인 경우 단일 위치 샘플로 충분하며, 여러 번 호출할 필요가 없습니다.
전체 지연 시간을 최소화하려면 모바일 애셋의 위치가 수신될 때마다 API를 호출하는 대신 일부 데이터가 누적되면 속도 제한 서비스를 호출하는 것이 좋습니다.
일부/전부 속도 제한이 누락된 이유는 무엇인가요?
speedLimits
가 누락되는 가장 일반적인 원인은 도로 구간이 아닌 장소의 속도 제한을 요청하는 것입니다.
위의 예에서는 바스코 다 가마 다리를 사용하여 개념을 보여줍니다. 다리는 리오 테호를 가로지르는 E90 도로를 지지합니다. 브리지 자체의 장소 ID는 ChIJUzt97ZEwGQ0RM1JzQfqoDtU입니다. 위 응답의 첫 번째 도로 구간은 E90 도로의 일부이며 장소 ID가 ChIJX12duJAwGQ0Ra0d4Oi4jOGE입니다. 요청 예에서 도로 장소 ID를 다리의 장소 ID로 바꾸면 다리의 장소 ID가 개별 도로 구간을 참조하지 않으므로 응답의 speedLimits
배열에는 속도 제한이 두 개만 표시됩니다. 또한 도로 구간용 장소 ID가 없는 경우 응답에 속도 제한이 포함되지 않습니다.
장소 ID를 사용하여 속도 제한을 요청할 때는 각 장소 ID가 다른 유형의 장소가 아닌 도로 구간을 참조해야 합니다. 개별 도로 구간의 장소 ID는 snapToRoads
또는 nearestRoads
요청을 사용하여 가장 잘 가져오게 됩니다. 이러한 요청은 한 번의 호출로 여러 장소 ID를 반환할 수 있습니다.