소개
주변 지역 검색 (신규) 요청은 하나 이상의 장소 유형을 취하여 지정된 영역 내에서 일치하는 장소의 목록을 반환합니다. 하나 이상의 데이터 유형을 지정하는 필드 마스크가 필요합니다. Nearby Search (신규)는 POST 요청만 지원합니다.
API 탐색기를 사용하면 API와 API 옵션을 숙지할 수 있도록 라이브 요청을 할 수 있습니다.
대화형 데모를 사용해 지도에 표시되는 Nearby Search (New) 결과를 확인해 보세요.
Nearby Search (신규) 요청
Nearby Search (New) 요청은 다음 형식의 URL에 대한 HTTP POST 요청입니다.
https://places.googleapis.com/v1/places:searchNearby
JSON 요청 본문 또는 헤더에 모든 매개변수를 전달하여 POST 요청을 실행합니다. 예를 들면 다음과 같습니다.
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
주변 검색 (신규) 응답
Nearby Search (신규)는 JSON 객체를 응답으로 반환합니다. 응답에서 각 항목의 의미는 다음과 같습니다.
places
배열에는 일치하는 모든 장소가 포함됩니다.- 배열의 각 장소는
Place
객체로 표현됩니다.Place
객체에는 단일 장소에 관한 세부정보가 포함됩니다. - 요청에 전달된 FieldMask는
Place
객체에 반환되는 필드 목록을 지정합니다.
전체 JSON 객체는 다음 형식입니다.
{ "places": [ { object (Place) } ] }
필수 매개변수
-
FieldMask
응답 필드 마스크를 만들어 응답에서 반환할 필드의 목록을 지정합니다. URL 매개변수
$fields
또는fields
를 사용하거나 HTTP 헤더X-Goog-FieldMask
를 사용하여 응답 필드 마스크를 메서드에 전달합니다. 응답에 반환된 필드의 기본 목록이 없습니다. 필드 마스크를 생략하면 메서드에서 오류를 반환합니다.필드 마스크를 사용하면 불필요한 데이터의 요청을 방지하여 불필요한 처리에 드는 시간과 요금을 막을 수 있습니다.
반환할 장소 데이터 유형의 쉼표로 구분된 목록을 지정합니다. 예를 들어 장소의 표시 이름과 주소를 가져옵니다.
X-Goog-FieldMask: places.displayName,places.formattedAddress
*
를 사용하여 모든 필드를 가져옵니다.X-Goog-FieldMask: *
다음 필드 중 하나 이상을 지정합니다.
다음 필드는 Nearby Search Pro SKU를 트리거합니다.
places.accessibilityOptions
places.addressComponents
places.addressDescriptor
*
places.adrFormatAddress
places.attributions
places.businessStatus
places.containingPlaces
places.displayName
places.formattedAddress
places.googleMapsLinks
places.googleMapsUri
places.iconBackgroundColor
places.iconMaskBaseUri
places.id
places.location
places.name
**
places.photos
places.plusCode
places.postalAddress
places.primaryType
places.primaryTypeDisplayName
places.pureServiceAreaBusiness
places.shortFormattedAddress
places.subDestinations
places.types
places.utcOffsetMinutes
places.viewport
* 주소 설명자는 일반적으로 인도 고객에게 제공되며 다른 지역에서는 실험용으로 제공됩니다.
**places.name
필드에는 장소 리소스 이름이places/PLACE_ID
형식으로 포함됩니다.places.displayName
을 사용하여 장소의 텍스트 이름에 액세스합니다.다음 필드는 Nearby Search Enterprise SKU를 트리거합니다.
places.currentOpeningHours
places.currentSecondaryOpeningHours
places.internationalPhoneNumber
places.nationalPhoneNumber
places.priceLevel
places.priceRange
places.rating
places.regularOpeningHours
places.regularSecondaryOpeningHours
places.userRatingCount
places.websiteUri
다음 필드는 Nearby Search Enterprise + Atmosphere SKU를 트리거합니다.
places.allowsDogs
places.curbsidePickup
places.delivery
places.dineIn
places.editorialSummary
places.evChargeAmenitySummary
places.evChargeOptions
places.fuelOptions
places.generativeSummary
places.goodForChildren
places.goodForGroups
places.goodForWatchingSports
places.liveMusic
places.menuForChildren
places.neighborhoodSummary
places.parkingOptions
places.paymentOptions
places.outdoorSeating
places.reservable
places.restroom
places.reviews
places.reviewSummary
routingSummaries
*
places.servesBeer
places.servesBreakfast
places.servesBrunch
places.servesCocktails
places.servesCoffee
places.servesDessert
places.servesDinner
places.servesLunch
places.servesVegetarianFood
places.servesWine
places.takeout
* 텍스트 검색 및 주변 검색만 해당
-
locationRestriction
검색할 지역이 원으로 지정됩니다. 원은 중심점과 반지름(미터)으로 정의됩니다. 반지름은 0.0 이상 50000.0 이하여야 합니다. 기본 반경은 0.0입니다. 요청에서 0.0보다 큰 값으로 설정해야 합니다.
예를 들면 다음과 같습니다.
"locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 500.0 } }
선택적 매개변수
-
includedTypes/excludedTypes, includedPrimaryTypes/excludedPrimaryTypes
검색 결과를 필터링하는 데 사용되는 표 A의 유형 목록을 지정할 수 있습니다. 각 유형 제한 카테고리에서 최대 50개의 유형을 지정할 수 있습니다.
장소에는 표 A의 유형 중 단일 기본 유형만 연결될 수 있습니다. 예를 들어 기본 유형은
"mexican_restaurant"
또는"steak_house"
일 수 있습니다.includedPrimaryTypes
및excludedPrimaryTypes
를 사용하여 장소의 기본 유형에 따라 결과를 필터링합니다.장소에는 표 A의 유형에서 여러 유형 값이 연결될 수도 있습니다. 예를 들어 레스토랑에는
"seafood_restaurant"
,"restaurant"
,"food"
,"point_of_interest"
,"establishment"
유형이 있을 수 있습니다.includedTypes
및excludedTypes
를 사용하여 장소와 연결된 유형 목록의 결과를 필터링합니다."restaurant"
또는"hotel"
과 같은 일반적인 기본 유형을 지정하면 응답에 지정된 유형보다 더 구체적인 기본 유형이 있는 장소가 포함될 수 있습니다. 예를 들어"restaurant"
기본 유형을 포함하도록 지정합니다. 그러면 응답에 기본 유형이"restaurant"
인 장소가 포함될 수 있지만,"chinese_restaurant"
또는"seafood_restaurant"
와 같은 더 구체적인 기본 유형이 있는 장소도 포함될 수 있습니다.여러 유형 제한이 지정된 검색의 경우 모든 제한을 충족하는 장소만 반환됩니다. 예를 들어
{"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}
를 지정하면 반환된 장소는"restaurant"
관련 서비스를 제공하지만 기본적으로"steak_house"
로 운영되지는 않습니다.includedTypes
검색할 표 A의 장소 유형을 쉼표로 구분한 목록입니다. 이 매개변수를 생략하면 모든 유형의 장소가 반환됩니다.
excludedTypes
검색에서 제외할 표 A의 장소 유형을 쉼표로 구분한 목록입니다.
요청에
includedTypes
( 예:"school"
)와excludedTypes
(예:"primary_school"
)를 모두 지정하면 응답에"school"
로 분류되지만"primary_school"
로는 분류되지 않는 장소가 포함됩니다. 응답에는includedTypes
중 하나 이상과 일치하고excludedTypes
와 일치하지 않는 장소가 포함됩니다.includedTypes
과excludedTypes
에 모두 표시되는 유형과 같이 충돌하는 유형이 있으면INVALID_REQUEST
오류가 반환됩니다.includedPrimaryTypes
검색에 포함할 표 A의 기본 장소 유형의 쉼표로 구분된 목록입니다.
excludedPrimaryTypes
검색에서 제외할 표 A의 기본 장소 유형을 쉼표로 구분한 목록입니다.
includedPrimaryTypes
과excludedPrimaryTypes
에 모두 표시되는 유형과 같이 충돌하는 기본 유형이 있으면INVALID_ARGUMENT
오류가 반환됩니다. -
languageCode
결과를 반환할 언어입니다.
- 지원되는 언어 목록을 참고하세요. Google에서는 지원되는 언어를 자주 업데이트하므로 이 목록에 모든 언어가 포함되지 않을 수도 있습니다.
languageCode
가 제공되지 않으면 API는 기본적으로en
을 사용합니다. 잘못된 언어 코드를 지정하면 API에서INVALID_ARGUMENT
오류를 반환합니다.- API는 사용자와 현지인 모두가 읽을 수 있는 상세 주소를 제공하기 위해 최선을 다합니다. 이를 위해 선호하는 언어를 준수하여 필요한 경우 사용자가 읽을 수 있는 스크립트로 음역된 현지 언어의 도로 주소를 반환합니다. 다른 모든 주소는 기본 언어로 반환됩니다. 주소 구성요소는 모두 첫 번째 구성요소에서 선택된 동일한 언어로 반환됩니다.
- 기본 언어로 이름을 사용할 수 없는 경우 API는 가장 유사한 일치 항목을 사용합니다.
- 기본 언어는 API가 반환하도록 선택하는 결과 집합과 반환되는 순서에 약간의 영향을 미칩니다. 지오코더는 언어에 따라 약어를 다르게 해석합니다. 예를 들어 거리 유형의 약어나 한 언어에서는 유효하지만 다른 언어에서는 유효하지 않은 동의어가 있습니다.
-
maxResultCount
반환할 장소 결과의 최대 수를 지정합니다. 1~20 (기본값) 사이여야 합니다.
-
rankPreference
사용할 순위 유형입니다. 이 매개변수를 생략하면 결과가 인기도에 따라 순위가 지정됩니다. 다음 중 하나일 수 있습니다.
POPULARITY
(기본값) 인기도를 기준으로 결과를 정렬합니다.DISTANCE
지정된 위치로부터의 거리의 오름차순으로 결과를 정렬합니다.
-
regionCode
대답의 형식을 지정하는 데 사용되는 지역 코드입니다. 2자리 CLDR 코드 값으로 지정됩니다. 기본값은 없습니다.
응답의
formattedAddress
필드의 국가 이름이regionCode
와 일치하면 국가 코드가formattedAddress
에서 생략됩니다. 이 매개변수는 항상 국가 이름을 포함하는adrFormatAddress
또는 국가 이름을 포함하지 않는shortFormattedAddress
에는 영향을 미치지 않습니다.대부분의 CLDR 코드는 ISO 3166-1 코드와 동일하지만 일부 주목할 만한 예외가 있습니다. 예를 들어 영국의 ccTLD는 'uk' (.co.uk)이지만 ISO 3166-1 코드는 'gb' (기술적으로 '영국' 법인의 경우)입니다. 이 매개변수는 관련 법규에 따라 결과에 영향을 미칠 수 있습니다.
Nearby Search (신규) 예
한 유형의 장소 찾기
다음 예는 circle
로 정의된 반경 500미터 이내의 모든 음식점의 표시 이름을 요청하는 Nearby Search (New) 요청을 보여줍니다.
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
X-Goog-FieldMask
헤더는 응답에 places.displayName
데이터 필드가 포함되어 있음을 지정합니다.
그러면 응답은 다음 형식입니다.
{ "places": [ { "displayName": { "text": "La Mar Cocina Peruana", "languageCode": "en" } }, { "displayName": { "text": "Kokkari Estiatorio", "languageCode": "en" } }, { "displayName": { "text": "Harborview Restaurant & Bar", "languageCode": "en" } }, ... }
필드 마스크에 데이터 유형을 추가하여 추가 정보를 반환합니다.
예를 들어 레스토랑 주소, 유형, 웹 주소를 대답에 포함하려면 places.formattedAddress,places.types,places.websiteUri
를 추가합니다.
curl -X POST -d '{ "includedTypes": ["restaurant"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965}, "radius": 500.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri" \ https://places.googleapis.com/v1/places:searchNearby
이제 응답은 다음 형식입니다.
{ "places": [ { "types": [ "seafood_restaurant", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "PIER 1 1/2 The Embarcadero N, San Francisco, CA 94105, USA", "websiteUri": "http://lamarsf.com/", "displayName": { "text": "La Mar Cocina Peruana", "languageCode": "en" } }, { "types": [ "greek_restaurant", "meal_takeaway", "restaurant", "food", "point_of_interest", "establishment" ], "formattedAddress": "200 Jackson St, San Francisco, CA 94111, USA", "websiteUri": "https://kokkari.com/", "displayName": { "text": "Kokkari Estiatorio", "languageCode": "en" } }, ... }
여러 유형의 장소 찾기
다음 예는 지정된 circle
에서 반경 1,000m 이내에 있는 모든 편의점과 주류 판매점의 표시 이름을 요청하는 Nearby Search (신규) 요청을 보여줍니다.
curl -X POST -d '{ "includedTypes": ["liquor_store", "convenience_store"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName,places.primaryType,places.types" \ https://places.googleapis.com/v1/places:searchNearby
places.primaryType
및 places.types
를 추가하여 응답에 각 장소에 관한 유형 정보가 포함되므로 결과에서 적절한 장소를 더 쉽게 선택할 수 있습니다.
검색에서 장소 유형 제외
다음 예는 "primary_school"
유형의 모든 장소를 제외하고 "school"
유형의 모든 장소에 대한 Nearby Search (New) 요청을 보여주며, 결과를 거리순으로 순위 지정합니다.
curl -X POST -d '{ "includedTypes": ["school"], "excludedTypes": ["primary_school"], "maxResultCount": 10, "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } }, "rankPreference": "DISTANCE" }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
특정 지역 근처의 모든 장소를 거리순으로 검색
다음 예는 샌프란시스코 시내의 한 지점 근처에 있는 장소에 대한 Nearby Search (New) 요청을 보여줍니다. 이 예시에서는 rankPreference
매개변수를 포함하여 거리에 따라 결과를 순위 지정합니다.
curl -X POST -d '{ "maxResultCount": 10, "rankPreference": "DISTANCE", "locationRestriction": { "circle": { "center": { "latitude": 37.7937, "longitude": -122.3965 }, "radius": 1000.0 } } }' \ -H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName" \ https://places.googleapis.com/v1/places:searchNearby
주소 설명자 가져오기
주소 설명자는 주변 명소와 포함된 지역을 비롯한 장소의 위치에 관한 관계형 정보를 제공합니다.
다음 예는 산호세의 쇼핑몰 근처에 있는 장소에 대한 Nearby Search (New) 요청을 보여줍니다. 이 예시에서는 필드 마스크에 addressDescriptors
를 포함합니다.
curl -X POST -d '{ "maxResultCount": 5, "locationRestriction": { "circle": { "center": { "latitude": 37.321328, "longitude": -121.946275 },"radius": 1000 } }, "includedTypes": ["restaurant", "cafe"], "excludedTypes": [], "rankPreference":"POPULARITY" }' \ -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: places.displayName,places.addressDescriptor" \ https://places.googleapis.com/v1/places:searchNearby
응답에는 요청에 지정된 장소, 근처 명소 목록과 장소와의 거리, 지역 목록과 장소와의 포함 관계가 포함됩니다.
{ "places": [ { "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "addressDescriptor": { "landmarks": [ { "name": "places/ChIJ62_oCR7Lj4AR_MGWkSPotD4", "placeId": "ChIJ62_oCR7Lj4AR_MGWkSPotD4", "displayName": { "text": "Nordstrom", "languageCode": "en" }, "types": [ "clothing_store", "department_store", "establishment", "point_of_interest", "shoe_store", "store" ], "straightLineDistanceMeters": 114.76984, "travelDistanceMeters": 114.261856 }, { "name": "places/ChIJgexMlR_Lj4ARiKCKuhNnjn0", "placeId": "ChIJgexMlR_Lj4ARiKCKuhNnjn0", "displayName": { "text": "Valley Fair Mall Eyexam of CA", "languageCode": "en" }, "types": [ "establishment", "health", "point_of_interest" ], "straightLineDistanceMeters": 131.62566, "travelDistanceMeters": 237.33253 }, { "name": "places/ChIJWWIlNx7Lj4ARpe1E0ob-_GI", "placeId": "ChIJWWIlNx7Lj4ARpe1E0ob-_GI", "displayName": { "text": "Din Tai Fung", "languageCode": "en" }, "types": [ "establishment", "food", "point_of_interest", "restaurant" ], "straightLineDistanceMeters": 110.0775, "travelDistanceMeters": 171.41951 }, { "name": "places/ChIJwyfPQx7Lj4AR7bYI2A2Yc54", "placeId": "ChIJwyfPQx7Lj4AR7bYI2A2Yc54", "displayName": { "text": "Abercrombie & Fitch", "languageCode": "en" }, "types": [ "clothing_store", "establishment", "point_of_interest", "shoe_store", "store" ], "spatialRelationship": "DOWN_THE_ROAD", "straightLineDistanceMeters": 53.620117, "travelDistanceMeters": 2.4578214 }, { "name": "places/ChIJpycNQx7Lj4ARjhXw3PrM_kU", "placeId": "ChIJpycNQx7Lj4ARjhXw3PrM_kU", "displayName": { "text": "Hollister Co.", "languageCode": "en" }, "types": [ "clothing_store", "establishment", "point_of_interest", "shoe_store", "store" ], "spatialRelationship": "DOWN_THE_ROAD", "straightLineDistanceMeters": 56.53726, "travelDistanceMeters": 15.418246 } ], "areas": [ { "name": "places/ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "placeId": "ChIJb3F-EB7Lj4ARnHApQ_Hu1gI", "displayName": { "text": "Westfield Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, { "name": "places/ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "placeId": "ChIJXYuykB_Lj4AR1Ot8nU5q26Q", "displayName": { "text": "Valley Fair", "languageCode": "en" }, "containment": "WITHIN" }, { "name": "places/ChIJtYoUX2DLj4ARKoKOb1G0CpM", "placeId": "ChIJtYoUX2DLj4ARKoKOb1G0CpM", "displayName": { "text": "Central San Jose", "languageCode": "en" }, "containment": "OUTSKIRTS" } ] } }, /.../ }
기능을 사용해 보세요.
API 탐색기를 사용하면 API 및 API 옵션에 익숙해질 수 있도록 샘플 요청을 할 수 있습니다.
페이지 오른쪽에서 API 아이콘 api을 선택합니다.
원하는 경우 요청 매개변수를 수정합니다.
실행 버튼을 선택합니다. 대화상자에서 요청을 보낼 때 사용할 계정을 선택합니다.
API 탐색기 패널에서 전체 화면 아이콘 전체 화면을 선택하여 API 탐색기 창을 펼칩니다.