경로 위치 지정

유럽 경제 지역 (EEA) 개발자

경로를 계산하려면 최소한 경로 출발지와 경로 목적지의 위치를 지정해야 합니다. 이러한 위치를 경로의 경유지로 정의합니다.

출발지와 목적지 외에도 다양한 유형의 경유지와 경로의 경유지를 처리하는 방법을 지정할 수 있습니다. 자세한 내용과 예시는 다음 주제를 참조하세요.

경로의 위치 지정

경유지 (REST) 또는 경유지 (gRPC) 객체를 만들어 위치를 나타냅니다. 경유지 정의에서 다음 방법 중 하나로 위치를 지정할 수 있습니다.

요청에서 모든 경유지의 위치를 동일한 방식으로 지정하거나 혼합할 수 있습니다. 예를 들어 출발지 경유지에 위도/경도 좌표를 사용하고 목적지 경유지에 장소 ID를 사용할 수 있습니다.

효율성과 정확성을 위해 위도/경도 좌표나 주소 문자열 대신 장소 ID를 사용하세요. 장소 ID는 고유하게 명시적이며 액세스 포인트 및 트래픽 변수와 같은 경로를 위한 지오코딩 이점을 제공합니다. 위치를 지정하는 다른 방법으로 인해 발생할 수 있는 다음과 같은 상황을 방지하는 데 도움이 됩니다.

  • 위도/경도 좌표를 사용하면 위치가 해당 좌표에 가장 가까운 도로에 스냅될 수 있습니다. 이 도로는 숙박 시설의 액세스 포인트가 아니거나 목적지로 빠르고 안전하게 이어지는 도로가 아닐 수 있습니다.
  • 주소 문자열은 경로를 계산하기 전에 먼저 Routes API에 의해 지오코딩되어 위도/경도 좌표로 변환되어야 합니다. 이 변환은 실적에 영향을 미칠 수 있습니다.

장소 ID로 위치 지정

장소 ID를 사용하여 경유지의 위치를 지정할 수 있습니다. 위도 및 경도 좌표는 도로에 스냅되므로 경우에 따라 장소 ID가 더 나은 결과를 제공할 수 있습니다.

Geocoding API 및 Places API (신규) (Autocomplete (신규) 포함)에서 장소 ID를 가져옵니다. 장소 ID에 대한 자세한 내용은 장소 ID 개요를 참고하세요.

다음 예에서는 placeId 속성을 사용하여 origin 및 destination의 장소 ID를 전달합니다.

{
  "origin":{
    "placeId": "ChIJayOTViHY5okRRoq2kGnGg8o"
  },
  "destination":{
    "placeId": "ChIJTYKK2G3X5okRgP7BZvPQ2FU"
  },
  ...
}

위도 및 경도 좌표로 위치 지정

경유지에서 위치를 정의하려면 위도/경도 좌표를 사용하여 위치 (REST) 또는 위치 (gRPC)를 지정합니다.

예를 들어 latitude 및 longitude 좌표를 사용하여 경로 origin 및 destination의 경유지를 지정합니다.

{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
...
}

주소 문자열로 위치 지정

주소 문자열은 문자열로 표현되는 리터럴 주소입니다 (예: '1600 Amphitheatre Parkway, Mountain View, CA'). 지오코딩은 주소 문자열을 위도 및 경도 좌표 (예: 위도 37.423021, 경도 -122.083739)로 변환하는 프로세스입니다.

주소 문자열을 경유지의 위치로 전달하면 Routes API는 내부적으로 문자열을 지오코딩하여 위도 및 경도 좌표로 변환합니다.

예를 들어 경로를 계산하려면 주소 문자열을 사용하여 경로 origin 및 destination의 경유지를 지정합니다.

{
  "origin":{
    "address": "1600 Amphitheatre Parkway, Mountain View, CA"
  },
  "destination":{
    "address": "450 Serra Mall, Stanford, CA 94305, USA"
  },
  ...
}

이 예시에서 Routes API는 두 주소를 모두 지오코딩하여 위도 및 경도 좌표로 변환합니다.

주소 값이 모호한 경우 Routes API는 검색을 호출하여 유사한 주소와 구분할 수 있습니다. 예를 들어 '1st Street'는 '1st street NE' 또는 '1st St SE'의 전체 값 또는 부분 값일 수 있습니다. 이 결과는 Geocoding API에서 반환하는 결과와 다를 수 있습니다. 장소 ID를 사용하면 잘못 해석될 가능성을 방지할 수 있습니다.

주소의 리전을 설정합니다.

불완전한 주소 문자열을 경유지의 위치로 전달하면 API가 잘못된 지오코딩된 위도/경도 좌표를 사용할 수 있습니다. 예를 들어 운전 경로의 출발지로 'Toledo', 목적지로 'Madrid'를 지정하여 요청합니다.

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE"
}

이 예에서 'Toledo'는 스페인이 아닌 미국 오하이오주의 도시로 해석됩니다. 따라서 요청은 빈 배열을 반환합니다. 즉, 경로가 없습니다.

{
  []
}

regionCode 매개변수를 포함하여 특정 지역에 편중된 결과를 반환하도록 API를 구성할 수 있습니다. 이 매개변수는 지역 코드를 ccTLD ('최상위 도메인') 2자리 값으로 지정합니다. 대부분의 ccTLD 코드는 ISO 3166-1 코드와 동일하지만 일부 주목할 만한 예외가 있습니다. 예를 들어 영국의 ccTLD는 'uk'(.co.uk)이지만 ISO 3166-1 코드는 'gb'입니다(엄밀히 말하면 '영국 및 북아일랜드' 법인).

regionCode 매개변수를 포함하는 'Toledo'에서 'Madrid'까지의 경로 요청은 'Toledo'가 스페인의 도시로 해석되므로 적절한 결과를 반환합니다.

{
  "origin":{
    "address": "Toledo"
  },
  "destination":{
    "address": "Madrid"
  },
  "travelMode": "DRIVE",
  "regionCode": "es"
}

이제 응답에는 스페인 톨레도에서 스페인 마드리드까지 계산된 경로가 포함됩니다.

{
  "routes": [
    {
      "distanceMeters": 75330,
      "duration": "4137s",
      ...
    }
  ]
}

내비게이션 포인트 토큰은 위치와 추가 경로 컨텍스트를 인코딩하는 문자열입니다. 내비게이션 지점 토큰은 입구, 하역장 또는 지정된 승차 구역 근처의 특정 액세스 포인트로 정확한 경로를 제공할 수 있습니다. 이는 음식 배달이나 차량 공유와 같이 승차 또는 하차 지점이 모호할 수 있는 경우에 유용합니다.

Geocoding API의 Destinations 메서드를 호출하여 내비게이션 지점 토큰을 가져올 수 있습니다.

탐색 지점 토큰을 지정하려면 다음 안내를 따르세요.

  1. Geocoding API의 SearchDestinations 메서드에서 navigationPointToken를 가져옵니다. 자세한 내용은 Geocoding API 문서를 참고하세요.
  2. navigationPointToken를 전달하여 경유지를 만듭니다.

다음 예에서는 navigation_point_token 속성을 사용하여 origin 및 destination 모두에 대한 탐색 지점 토큰을 전달합니다.

{
  "origin":{
    "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_ORIGIN"
  },
  "destination":{
    "navigation_point_token": "ENCODED_NAVIGATION_POINT_TOKEN_FOR_DESTINATION"
  },
  ...
}

위치를 Plus Code로 지정

많은 사람들이 정확한 주소를 가지고 있지 않기 때문에 배송을 받기가 어려울 수 있습니다. 또는 주소가 있는 사용자가 뒷문이나 하역장과 같은 더 구체적인 위치에서 배송을 받기를 원할 수도 있습니다.

Plus Code는 실제 주소가 없는 사람이나 장소의 상세 주소와 같습니다. Plus Code는 도로 이름과 번호가 있는 주소 대신 위도/경도 좌표를 기반으로 하며 숫자와 문자로 표시됩니다.

Google은 모든 사람과 사물에 주소의 이점을 제공하기 위해 Plus Code를 개발했습니다. Plus Code는 위도/경도 좌표에서 파생된 인코딩된 위치 참조로, 1/8000도x1/8000도 (적도에서 14mx14m) 이하의 영역을 나타냅니다. Plus Code는 상세 주소가 없거나 건물에 번호가 지정되지 않거나 거리 이름이 없는 장소의 상세 주소 대신 사용할 수 있습니다.

Plus Code는 글로벌 코드 또는 복합 코드로 형식이 지정되어야 합니다.

  • 글로벌 코드는 4자리 지역 번호와 6자 이상의 로컬 코드로 구성됩니다.

    예를 들어 '1600 Amphitheatre Parkway, Mountain View, CA' 주소의 경우 글로벌 코드는 '849V'이고 로컬 코드는 'CWC8+R9'입니다. 그런 다음 10자리의 Plus Code 전체를 사용하여 위치 값을 '849VCWC8+R9'로 지정합니다.

  • 복합 코드는 6자 이상의 로컬 코드와 명시적인 위치로 구성됩니다.

    예를 들어 '450 Serra Mall, Stanford, CA 94305, USA' 주소의 지역 코드는 'CRHJ+C3'입니다. 복합 주소의 경우 'CRHJ+C3 Stanford, CA 94305, USA' 형식으로 지역 코드와 주소의 도시, 주, 우편번호, 국가 부분을 결합합니다.

    예를 들어 Plus Code를 사용하여 origin 및 destination 경로의 경유지를 지정하여 경로를 계산합니다.

    {
      "origin":{
        "address": "849VCWC8+R9"
      },
      "destination":{
        "address": "CRHJ+C3 Stanford, CA 94305, USA"
      },
      "travelMode": "DRIVE"
    }

Plus Code는 Autocomplete (New), 장소 세부정보 (New), Geocoding API를 비롯한 Google Maps Platform API에서 지원됩니다. 예를 들어 Geocoding API를 사용하여 위도/경도 좌표로 지정된 위치를 역 지오코딩하여 위치의 Plus Code를 확인할 수 있습니다.