오류
오류의 경우 표준 형식의 오류 응답 본문이 반환되고 HTTP 상태 코드가 오류 상태로 설정됩니다.
응답에는 단일 error
객체가 있는 객체가 다음 키와 함께 포함됩니다.
code
: 응답의 HTTP 상태와 동일합니다.message
: 오류에 관한 간단한 설명입니다.status
: 오류의 특성을 나타내는 상태 코드입니다.
예를 들어 잘못된 placeId
매개변수를 전송하면 다음 오류가 반환됩니다.
{ "error": { "code": 400, "message": "\"placeId\" value is malformed: \"aChIJqaknMTeuEmsRUYCD5Wd9ARM\"", "status": "INVALID_ARGUMENT" } }
가능한 오류는 다음과 같습니다.
코드 | 상태 | 메시지 | 문제 해결 |
---|---|---|---|
400 | INVALID_ARGUMENT |
입력한 키가 잘못되었습니다. | API 키가 잘못되었거나 요청에 포함되지 않았습니다. 전체 키를 포함했고 이 키에 API를 사용 설정했는지 확인하세요. |
400 | INVALID_ARGUMENT |
'\"path\" 매개변수에 잘못된 값 포함: ☃' | 요청에 잘못된 인수가 포함되어 있습니다. 이 오류의 가장 가능성이 높은 원인은 다음과 같습니다.
더 이상 존재하지 않는 도로나 도로가 아닌 장소에 |
403 | PERMISSION_DENIED |
등록되지 않은 요청이 차단되었습니다. Google Developers Console을 사용하여 가입하세요. | 다음 이유 중 하나 이상으로 인해 요청이 거부되었습니다.
Google Maps Platform 제품을 사용하려면 계정에서 결제를 사용 설정해야 하고 모든 요청에 유효한 API 키를 포함해야 합니다. 이 문제를 해결하려면 다음 단계를 따르세요.
|
404 | NOT_FOUND |
이 서비스에는 HTTPS가 필요합니다. | http://roads.googleapis.com/ 가 아닌 https://roads.googleapis.com/ 로 요청을 전송하는지 확인합니다. |
429 | RESOURCE_EXHAUSTED |
프로젝트 요청 한도에 도달하여 요청이 제한되었습니다. | Google Cloud Platform 콘솔에서 구성한 요청 한도를 초과했습니다. 이 한도는 일반적으로 일일 요청 수, 100초당 요청 수, 사용자당 100초당 요청 수로 설정됩니다. 이 한도는 단일 사용자 그룹 또는 소규모 사용자 그룹이 일일 할당량을 소진하지 못하게 하는 동시에 모든 사용자에게 적절한 액세스 권한을 제공하도록 구성되어야 합니다. 이러한 한도를 구성하려면 API 사용량 상한 설정을 참조하세요. |
지수 백오프
요청이 실패하면 지수 백오프로 요청을 재시도해야 합니다. 예를 들어 요청이 한 번 실패하면 1초 후에 재시도하고, 다시 실패하면 2초 후에 재시도하고, 그 다음은 4초 후에 재시도하는 식으로 재시도를 수행합니다. 이렇게 하면 많은 클라이언트가 매우 빠르게 요청을 재시도하므로 잘못된 요청이나 대규모 실패로 인해 Google 서버가 중단되지 않습니다.
문제 해결 FAQ
구현 문제
- 차량 위치를 샘플링해야 하는 빈도는 어떻게 되나요?
- 고품질의 맞추기 결과를 얻기 위해서는 1~10초마다 실행하는 것이 좋습니다.
- 쿼리당 보낼 수 있는 포인트에 제한이 있나요?
- 예. 하나의 쿼리는 최대 100포인트를 포함할 수 있습니다.
- 스냅된 위도/경도 쌍을 저장하려면 어느 정도의 정밀도를 사용해야 하나요?
- 맞추어진 경로가 모든 확대/축소 수준의 도로를 따르도록 하려면 최대 확대/축소 수준에서도 스냅된 위도/경도 쌍을 정밀도의 소수점 7자리에 저장해야 합니다.
- 인코딩된 폴리라인을 사용하여 스냅된 경로를 표시할 수 있나요?
- 인코딩된 다중선은 소수점 5자리의 정밀도로만 지정되므로 약 2미터의 오류가 발생합니다. 따라서 스냅된 경로가 높은 확대/축소 수준에서 도로를 따르게 하려는 경우에는 인코딩된 다중선이 적합하지 않습니다.
일반적인 문제
- 일부 점이 스냅되지 않거나 스냅된 경로에 공백이 있습니다. 이 문제를 해결하려면 어떻게 해야 하나요?
-
- 시간 간격으로 포인트를 샘플링하는 경우 포인트를 더 짧은 간격 (1~10초마다)으로 샘플링해야 합니다. 더 긴 간격(예: 60초)을 사용하면 도로에 맞추기 알고리즘이 충분히 정확하게 이동한 도로를 파악하지 못할 수 있습니다.
- 점을 만들기 위해 지도를 수동으로 클릭하면 맞추기 알고리즘이 제대로 처리하지 못하는 점 또는 희소 지점이 있는 경로를 매우 쉽게 만들 수 있습니다. 맞추기 알고리즘은 점이 서로 가까운 경우에 가장 잘 작동합니다. Snap to Roads 데모를 사용하거나 Roads 검사기를 사용하여 경로를 테스트하세요.
- 확대하면 스냅된 경로가 고르지 않거나 도로에서 약간 떨어져 있는 이유는 무엇인가요?
-
- 표시하기 전에 스냅된 위도/경도 쌍의 정밀도를 자르나요? 맞춰진 위도/경도 쌍을 소수점 7자리 미만의 정밀도로 저장하면 맞춰진 경로가 지도에 표시될 때 정밀도 오류가 발생합니다.
- 인코딩된 폴리라인을 사용하나요? 인코딩된 다중선은 위도/경도 쌍을 소수점 5자리로 자릅니다. 이로 인해 몇 미터의 오류가 발생하여 높은 확대/축소 수준에서 선이 들쭉날쭉하거나 도로에서 약간 벗어난 상태가 됩니다.
위의 경우에 해당하지 않는 경우 지도 타일이 최근에 업데이트되어 맞추기에 사용된 도로 색인과 동기화되지 않을 수 있습니다. 일부 쿼리만 영향을 받는 경우 이 문제가 원인일 수 있습니다. Google 지도는 정기적으로 업데이트되므로 간혹 이 문제가 발생할 수 있으며, 지도에서 이전 경로 (예: 몇 주 전에 맞춰진 경로)를 정기적으로 확인하는 경우에는 더 자주 발생할 수 있습니다. 최적의 시각화를 위해 지도 타일과 맞추기에 사용되는 도로 색인 간의 불일치를 최소화하기 위해 이전 경로를 지도에 표시하기 직전에 다시 스냅해야 합니다.
- 도로 X의 속도 제한이 잘못 표시되는 원인은 무엇인가요?
- 속도 제한은 정확성과 범위가 서로 다른 여러 소스에서 발생합니다.
특정 도로 유형이나 특정 지역에서 지속적으로 잘못된 속도 제한과 같은 패턴을 발견했다면 다음 단계에 따라 Google에 알려주세요.
- 데스크톱 컴퓨터에서 Google 지도를 열거나 Android용 Google 지도 앱을 엽니다.
- 왼쪽 사이드 메뉴를 엽니다.
- 의견 보내기를 선택합니다. 참고: 로그인하라는 메시지가 표시될 수 있습니다.
- 지도 수정을 선택합니다.
- 수정하려는 도로 구간을 선택합니다.
- 다음을 선택합니다.
- '기타' 입력란에 해당 도로의 속도 제한이 잘못되었다고 표시합니다.
- 제출을 선택합니다.
- 스냅된 경로가 도로를 따라가지 않고 모서리를 가르는 이유는 무엇인가요?
-
이 문제를 해결하려면 다음을 확인하세요.
interpolate
매개변수가true
로 설정되어 있는지 확인합니다.- 원본 데이터 포인트가 충분한 간격(1~10초마다)으로 샘플링되는지 확인합니다.
- 속도 제한 변경 없이 도로의 스냅된 경로에 많은 도로 구간이 반환되는 이유는 무엇인가요?
interpolate
매개변수가true
로 설정되면 도로에 맞추기 쿼리는 모서리, 곡선, 로터리 주위의 도로를 따라가는 다중선을 반환합니다. 도로가 곡선이면 도로 도형을 밀접하게 따르는 다중선을 만들기 위해 속도 제한이 변경되지 않더라도 여러 개의 도로 구간이 반환됩니다.