제한 속도

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 - latitudelongitude 값을 포함합니다.
    • originalIndex - 원래 요청의 해당 값을 나타내는 정수입니다. 요청의 각 값은 응답의 맞추기된 값에 매핑되어야 합니다. 이러한 값은 0에서 색인화되므로 originalIndex4인 지점은 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를 반환할 수 있습니다.