이 문서는 이전 버전의 GMP API를 사용한 이전 도움말을 업데이트한 것입니다. 이 콘텐츠는 2023~24년에 출시된 Places API의 새 버전 및 2023년에 출시된 Routes API로 업데이트되었습니다.
일반적으로 사용자가 관심 장소 (POI)로 운전할 때는 주차장이나 액세스 포인트와 같은 근처 위치로의 내비게이션이 필요합니다. 공항이나 쇼핑몰에 가야 하는 운전자를 생각해 보세요. 공항으로 이동할 때 운전자가 공항 중앙이 아닌 터미널이나 하차 지점에 도착하려고 합니다. 마찬가지로 자동차를 소유한 사용자에게는 쇼핑센터 옆에 있는 주차장이 훨씬 더 나은 옵션일 수 있습니다. 이 경우 운전자를 안내하는 앱이나 서비스를 개발할 때는 먼저 운전자가 도착하려는 위치를 찾은 다음 운전자에게 해당 위치 근처의 선택적 목적지를 제공합니다. 이 접근 방식을 사용하면 Google Maps Platform에서 제공하는 위치 데이터를 활용하는 작지만 스마트한 개발 작업으로 고객에게 더 나은 서비스를 제공하고 고객의 시간을 소중하게 생각한다는 점을 보여줄 수 있습니다.
새 Places API와 Routes API를 순차적으로 또는 조합하여 사용하여 목적지 옆에 주차할 적절한 위치를 식별하는 방법을 보여줍니다. 이 솔루션은 불확실성과 여러 상호작용을 제거하여 도착지에 가까워질 때 주차할 장소를 찾는 것을 목표로 합니다. 이러한 사례를 구체적으로 구현하는 방법을 보여주는 두 가지 예를 살펴보세요.
예 1 - 주차장이 없는 관광 명소
경로를 별도로 가져와야 하므로 갓길과 직접 연결되지 않은 위치를 선택합니다. 도착지는 파리의 노트르담이고 출발지는 Gare de l'Est 기차역(48.87697775149635, 2.3592247806755564)입니다.
운전자는 노트르담 북쪽에서 약 16분 거리에 있는 역에서 출발합니다. 노트르담은 다리로 연결된 섬에 있는 유명한 관광 명소로, 일부 일방통행 도로가 있으며 근처에 대형 주차장이 없으므로 흥미로운 과제입니다.
- Places API 요청
이 Places API 요청 예에서는 텍스트 검색을 사용하여 노트르담을 찾습니다. 자세한 내용은 개발자 문서를 참고하세요. 이 예시에서 '$APIKEY'는 Google Cloud 콘솔에서 사용 설정한 Google Maps Platform 장소 및 경로 API의 API 키입니다. 자세한 내용은 Google Maps Platform 시작하기 문서를 참고하세요.
새 Places API 요청의 형식이 새로 변경되었습니다. 응답 필드는 더 이상 고정되지 않으며 개발자는 헤더에서 필드 마스크를 정의해야 합니다. 필드 마스크 사용은 문서에 정의되어 있습니다.
curl -X POST --data @notre_dame.json \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: places.id,places.displayName,places.formattedAddress,places.location' \
'https://places.googleapis.com/v1/places:searchText'
검색 매개변수에 'notre_date.json' 콘텐츠를 사용합니다.
{
"textQuery": "Notre Dame, Paris",
"languageCode": "en"
}
위 요청에 대한 응답은 다음과 같은 위도 및 경도 좌표를 제공합니다.
{
"places": [
{
"id": "ChIJATr1n-Fx5kcRjQb6q6cdQDY",
"formattedAddress": "6 Parvis Notre-Dame - Pl. Jean-Paul II, 75004 Paris, France",
"location": {
"latitude": 48.852968200000007,
"longitude": 2.3499021
},
"displayName": {
"text": "Cathédrale Notre-Dame de Paris",
"languageCode": "en"
}
}
]
}
보시다시피 좌표가 노트르담 대성당을 정확히 가리킵니다.
![]() |
![]() |
개발자 또는 서비스 제공업체는 운전자에게 '노트르담 근처에 주차장 찾으시나요?'라는 메시지를 자동으로 표시하는 것이 좋습니다. 운전자가 전기자동차를 타고 있다면 충전소를 검색하는 것이 좋습니다. 사용자 환경은 기기와 화면에 따라 다르지만 이 경우 잠시 후 사라지는 은근한 대화상자 텍스트를 고려해 볼 수 있습니다. 노트르담 근처의 주차장을 찾으려면 반경 500m의 'parking' 및 'electric_vehicle_charging_station' 유형으로 Places API nearby search를 실행합니다. 다음 예에서는 노트르담에서 500미터 이내의 주차장으로 결과가 편향됩니다.
curl -X POST -d '{
"includedTypes": ["parking", "electric_vehicle_charging_station"],
"maxResultCount": 10,
"rankPreference": "DISTANCE",
"locationRestriction": {
"circle": {
"center": {
"latitude": 48.852968200000007,
"longitude": 2.3499021},
"radius": 500.0
}
}
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H "X-Goog-FieldMask: places.displayName,places.location" \
https://places.googleapis.com/v1/places:searchNearby
첫 번째 결과는 48.854981, 2.350629에 있는 충전소이지만 이 예시를 실행할 때는 결과가 다를 수 있습니다. 다음 부분에서 Routes API 요청을 실행할 때 이 위치를 사용합니다.
- **Routes API 요청 **
역에서 노트르담 근처의 충전소까지의 경로를 찾으려면 Routes API 요청을 실행해야 합니다. 출발지 및 도착지 매개변수만 설정하면 됩니다. 자세한 내용은 개발자 문서를 참고하세요.
curl -X POST -d '{
"origin":{
"location":{
"latLng":{
"latitude": 48.87697775149635,
"longitude": 2.3592247806755564
}
}
},
"destination":{
"location":{
"latLng":{
"latitude": 48.854981,
"longitude": 2.350629
}
}
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"departureTime": "2024-05-16T15:01:23.045123456Z",
"computeAlternativeRoutes": false,
"routeModifiers": {
"avoidTolls": false,
"avoidHighways": false,
"avoidFerries": false
},
"languageCode": "en-US",
"units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
Routes API 응답에는 일반적으로 여러 경로 추천이 포함됩니다. 응답에 경로 데이터를 포함하려면 필드 마스크에서 'routes.legs'를 정의합니다. 각 경로는 여러 '구간'으로 구성되며, 구간에는 이동 거리와 좌표를 보여주는 여러 '단계'가 포함됩니다. 자동차로 도달할 수 있는 최종 좌표를 찾으려면 선택한 경로의 마지막 구간의 마지막 단계에 있는 'endLocation' 필드를 사용하세요. "latitude": 48.854937299999996, "longitude": 2.3505841999999997
이 위치는 첫 번째 선택지가 아닌 것처럼 보일 수 있지만 지도나 Google 스트리트 뷰를 보면 이 위치가 노트르담에서 도보로 6~7분 거리에 있어 매우 가까운 위치에 있습니다.
충전소 주차장부터 노트르담까지의 도보 경로
예 1 요약
보시다시피 자동차의 주차장을 찾으려면 몇 번의 API 호출과 운전자에게 추천을 표시하기만 하면 됩니다. 이렇게 하면 사용자가 일방통행 도로를 돌아다니거나 붐비는 관광지에서 주차할 곳을 찾지 않아도 되므로 시간을 절약할 수 있습니다. 요약하면 다음과 같은 API 요청을 실행했습니다.
- 노트르담 좌표를 찾기 위한 Places API 텍스트 검색 요청
- Places API Nearby Search를 사용하여 해당 좌표에서 500m 이내에 전기자동차 충전소가 있는 주차장을 찾습니다.
- 충전소까지의 경로를 찾기 위한 Routes API 요청
예시 2 - 대형 공항의 터미널로 안내
운전자가 여러 위치, 관심 장소 또는 잠재적 하차 지점이 있는 넓은 지역으로 이동하려고 하는 경우를 예로 들 수 있습니다. 운전자는 영국 웸블리 스타디움 (51.557263604707224, -0.2794575145680608)에서 출발하여 런던 히드로 공항 터미널 5로 이동하려고 합니다.
새 Places API 자동 완성의 장점은 API가 하위 부지를 잠재적 검색 결과로 예측하는 것과 함께 기본 유형을 검색 기준으로 정의할 수 있다는 점입니다. 이 경우 공항을 검색하면 터미널도 반환됩니다. 포함하거나 제외할 유형의 전체 목록은 문서에서 확인할 수 있습니다.
curl -X POST -d '{
"input": "Heathrow",
"includedPrimaryTypes": ["airport"]
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
https://places.googleapis.com/v1/places:autocomplete
위의 쿼리를 실행하면 터미널 및 터미널의 개별 하차 지점 목록이 표시됩니다. 결과 목록에서 '런던 히드로 공항 터미널 5'와 장소 ID를 확인할 수 있습니다.
"place_id" : "ChIJo21hnPxxdkgRksRL0KQRWII",
'placeId' 매개변수를 사용하면 임의의 좌표가 아닌 장소에 도달하려고 한다고 Routes API에 알릴 수 있습니다.
curl -X POST -d '{
"origin":{
"location":{
"latLng":{
"latitude": 51.557263604707224,
"longitude": -0.2794575145680608
}
}
},
"destination":{
"placeId": "ChIJo21hnPxxdkgRksRL0KQRWII"
},
"travelMode": "DRIVE",
"routingPreference": "TRAFFIC_AWARE",
"departureTime": "2024-05-16T15:01:23.045123456Z",
"computeAlternativeRoutes": false,
"languageCode": "en-US",
"units": "METRIC"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: $APIKEY" \
-H 'X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.legs,routes.polyline.encodedPolyline' \
'https://routes.googleapis.com/directions/v2:computeRoutes'
이전 예와 마찬가지로 JSON 응답의 모든 단계를 읽으면 경로의 마지막 부분과 도착 위치의 위도 및 경도 좌표 (51.4714348, 'longitude': -0.48967890000000003)를 확인할 수 있습니다.
예시 2 요약
이전 예와 마찬가지로 드라이버에 향상된 안내를 제공하기 위한 개발 작업은 매우 적으며 드라이버에 절약되는 시간의 이점을 측정할 수 있습니다. 다음과 같은 요청을 처리했습니다.
- 히드로 공항 터미널 5를 찾기 위한 Places API 자동 완성 (신규) 요청
- 웸블리에서 터미널 5까지의 경로를 가져오기 위한 Routes API 요청
이 예에서는 새로운 Places API 기능을 간단히 살펴봅니다. 비행장, 국제 공항과 같은 새로운 장소 유형을 살펴보세요.
결론
보시다시피 자동차로 이동하는 고객에게 프리미엄 서비스를 제공하는 데 필요한 개발 노력은 비교적 적으며 고객의 니즈에 대해 어떻게 생각하고 있는지 보여줄 수 있습니다.
개발 목적으로는 고객을 위한 서비스를 빌드하는 데 도움이 되는 여러 라이브러리와 도구를 사용할 수 있습니다. 공개적으로 제공되는 Google 지도 플랫폼용 GitHub 저장소를 살펴보세요.
다음 작업
GMP 시작하기 : https://developers.google.com/maps/get-started
추천 추가 자료
Places API 자동 완성 (신규) 문서: https://developers.google.com/maps/documentation/places/web-service/place-autocomplete
Routes API 문서: https://developers.google.com/maps/documentation/routes
참여자
책임 저자: 미코 티오바넨 | Google 지도 플랫폼 솔루션 엔지니어