728x90
Google MAP API 사용 가이드
Google Cloud 프로젝트 설정 | Places API | Google for Developers
이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 Google Cloud 프로젝트 설정 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 플랫폼 선택: Andr
developers.google.com
Places API (신규)에서 제공하는 API
신규 버전에 추가된 새로운 필드, 속성, 접근성 옵션
필드
| regularSecondaryOpeningHours | 특정 작업의 특정 시간을 설명합니다. 2차 영업시간은 비즈니스의 기본 영업시간과 다릅니다. 대상 예를 들어 음식점은 드라이브스루 시간 또는 배달을 지정할 수 있습니다. 시간을 보조 시간으로 선택합니다. |
| paymentOptions | 장소에서 사용할 수 있는 결제 옵션입니다. 허용되는 장소 수에는 결제 옵션 1개가 있어야 합니다. 결제 옵션 데이터를 사용할 수 없는 경우 결제 옵션 필드가 설정되지 않습니다. 옵션은 다음과 같습니다.
|
| parkingOptions | 장소에서 제공하는 주차 옵션입니다. 옵션은 다음과 같습니다.
|
| subDestinations | 특정 장소와 관련된 고유한 장소 대상 예를 들어 공항 터미널은 공항에 있습니다. |
| fuelOptions | 매장에서 구매할 수 있는 연료 옵션에 관한 최신 정보입니다. 주유소가 생겨났습니다. 이 정보는 정기적으로 업데이트됩니다. 옵션은 다음과 같습니다.
|
| evChargeOptions | 이 역의 전기자동차 (EV) 충전기 수 동안 일부 전기자동차 충전기에는 커넥터가 여러 개 있으며 각 충전기는 한 번에 한 대의 차량만 충전하는 경우 이 필드에는 충전소의 수가 표시됩니다. |
| shortFormattedAddress | 사람이 읽을 수 있는 짧은 장소의 주소입니다. |
| primaryType | 지정한 결과의 기본 유형입니다. 예를 들어 장소는 cafe 또는 airport로 분류됩니다. 가 장소는 하나의 기본 유형만 가질 수 있습니다. 이 가능한 값은 지원 유형을 참고하세요. |
| primaryTypeDisplayName | 요청에 현지화된 기본 유형의 표시 이름입니다. 사용할 수 있습니다. 가능한 값의 전체 목록은 지원 유형을 참고하세요. |
속성
| outdoorSeating | 야외 좌석이 마련되어 있습니다. |
| liveMusic | 라이브 음악을 제공하는 장소입니다. |
| menuForChildren | 어린이 메뉴가 있는 장소입니다. |
| servesCocktails | 칵테일을 판매하는 레스토랑입니다. |
| servesDessert | 디저트를 판매하는 레스토랑입니다. |
| servesCoffee | 커피가 제공됩니다. |
| goodForChildren | 아이들에게 좋은 장소입니다. |
| allowsDogs | 반려견 동반이 가능한 장소입니다. |
| restroom | 화장실이 있는 장소입니다. |
| goodForGroups | 장소에는 그룹을 수용할 수 있습니다. |
| goodForWatchingSports | 스포츠 경기를 관람하기에 적합한 장소입니다. |
접근성 옵션
| wheelchairAccessibleParking | 휠체어 이용 가능 주차장이 있습니다. |
| wheelchairAccessibleEntrance | 장소에 휠체어로 진입할 수 있는 입구가 있습니다. |
| wheelchairAccessibleRestroom | 휠체어 이용이 가능한 화장실이 있습니다. |
| wheelchairAccessibleSeating | 휠체어 이용 가능 좌석이 마련되어 있습니다. |
주변 검색
https://places.googleapis.com/v1/places:searchNearby
[Header]
headers = {
"Content-Type": "application/json",
"X-Goog-Api-Key": api_key,
"X-Goog-FieldMask": "places.displayName"
}
- Content-Type: 요청 본문의 데이터 형식을 서버에 알리는 역할
- X-Goog-Api-Key : Google API 인증을 위한 필수 헤더 (Google Cloud 콘솔에서 발급받은 API 키)
- X-Goog-FieldMask : API 응답에서 어떤 필드를 반환할지를 지정하는 필드 마스크 (API 응답이 너무 많은 데이터를 반환하는 것을 방지하기 위해, 필요한 필드만 반환하도록 요청)
- Field option
더보기
더보기
더보기
[Basic] : 일반적인 장소 검색 요청에 사용되며, 주로 장소의 기본 정보와 위치 관련 데이터를 반환
- places.accessibilityOptions: 장소의 접근성 옵션을 반환합니다 (예: 휠체어 접근 가능 여부).
- places.addressComponents: 장소의 주소를 구성하는 다양한 요소 (예: 거리, 도시, 우편번호 등)를 반환합니다.
- places.adrFormatAddress: ADR 형식으로 작성된 주소를 반환합니다.
- places.attributions: API 데이터 제공자의 출처(Attribution)를 반환합니다.
- places.businessStatus: 해당 장소의 영업 상태를 나타냅니다 (예: 영업 중, 일시적 휴업, 영구 폐업 등).
- places.displayName: 장소의 사람이 읽을 수 있는 이름을 반환합니다.
- places.formattedAddress: 사람이 읽을 수 있는 형식의 주소를 반환합니다.
- places.googleMapsUri: 장소의 Google Maps URL을 반환합니다.
- places.iconBackgroundColor: 지도에서 장소 마커의 배경색을 반환합니다.
- places.iconMaskBaseUri: 장소 아이콘의 기본 URI를 반환합니다.
- places.id: 장소의 고유 식별자(Place ID)를 반환합니다.
- places.location: 장소의 위치(위도와 경도)를 반환합니다.
- places.name*: 장소의 리소스 이름을 반환하며, 형식은 places/PLACE_ID입니다.
- places.photos: 장소의 사진을 반환합니다.
- places.plusCode: 장소의 Plus Code를 반환합니다 (Google의 글로벌 위치 코드).
- places.primaryType: 장소의 주요 유형을 반환합니다 (예: 레스토랑, 카페 등).
- places.primaryTypeDisplayName: 주요 유형의 사람이 읽을 수 있는 이름을 반환합니다.
- places.shortFormattedAddress: 짧은 형식의 사람이 읽을 수 있는 주소를 반환합니다.
- places.subDestinations: 해당 장소 내에 있는 하위 목적지를 반환합니다.
- places.types: 장소의 유형 리스트를 반환합니다 (예: 박물관, 공원 등).
- places.utcOffsetMinutes: 장소의 UTC 시간대 오프셋을 분 단위로 반환합니다.
- places.viewport: 장소를 포함하는 뷰포트(지도의 경계)를 반환합니다.
- Nearby Search (Advanced) SKU를 트리거하는 필드
- places.currentOpeningHours: 장소의 현재 영업 시간을 반환합니다.
- places.currentSecondaryOpeningHours: 장소의 부차적인 영업 시간을 반환합니다.
- places.internationalPhoneNumber: 국제 형식의 전화번호를 반환합니다.
- places.nationalPhoneNumber: 국가 내 전화번호 형식을 반환합니다.
- places.priceLevel: 장소의 가격대를 반환합니다 (예: 1~4 범위로, 값이 높을수록 가격이 비쌉니다).
- places.rating: 장소의 평균 평점을 반환합니다.
- places.regularOpeningHours: 장소의 일반적인 영업 시간을 반환합니다.
- places.regularSecondaryOpeningHours: 장소의 부차적인 일반 영업 시간을 반환합니다.
- places.userRatingCount: 장소의 사용자 평가 수를 반환합니다.
- places.websiteUri: 장소의 웹사이트 URL을 반환합니다.
[Advanced] : 더 상세한 정보(예: 전화번호, 영업 시간, 평점 등)를 포함
- places.currentOpeningHours: 장소의 현재 영업 시간을 반환합니다.
- places.currentSecondaryOpeningHours: 장소의 부차적인 영업 시간을 반환합니다.
- places.internationalPhoneNumber: 국제 형식의 전화번호를 반환합니다.
- places.nationalPhoneNumber: 국가 내 전화번호 형식을 반환합니다.
- places.priceLevel: 장소의 가격대를 반환합니다 (예: 1~4 범위로, 값이 높을수록 가격이 비쌉니다).
- places.rating: 장소의 평균 평점을 반환합니다.
- places.regularOpeningHours: 장소의 일반적인 영업 시간을 반환합니다.
- places.regularSecondaryOpeningHours: 장소의 부차적인 일반 영업 시간을 반환합니다.
- places.userRatingCount: 장소의 사용자 평가 수를 반환합니다.
- places.websiteUri: 장소의 웹사이트 URL을 반환합니다.
[Preferred] : 장소의 특화된 서비스 정보(예: 배달, 반려동물 허용 여부, 주차 옵션 등)를 요청할 때 사용
- places.allowsDogs: 해당 장소가 반려견을 허용하는지 여부를 반환합니다.
- places.curbsidePickup: 장소에서 커브사이드 픽업 서비스를 제공하는지 여부를 반환합니다.
- places.delivery: 배달 서비스 제공 여부를 반환합니다.
- places.dineIn: 식사 가능 여부를 반환합니다.
- places.editorialSummary: 장소에 대한 편집 요약을 반환합니다.
- places.evChargeOptions: 전기차 충전 옵션을 반환합니다.
- places.fuelOptions: 연료 옵션을 반환합니다.
- places.goodForChildren: 해당 장소가 아이에게 적합한지 여부를 반환합니다.
- places.goodForGroups: 그룹에 적합한 장소인지 여부를 반환합니다.
- places.goodForWatchingSports: 스포츠 관람에 적합한 장소인지 여부를 반환합니다.
- places.liveMusic: 장소에서 라이브 음악을 제공하는지 여부를 반환합니다.
- places.menuForChildren: 어린이 메뉴 제공 여부를 반환합니다.
- places.parkingOptions: 주차 옵션을 반환합니다.
- places.paymentOptions: 결제 옵션을 반환합니다 (예: 현금, 카드 등).
- places.outdoorSeating: 야외 좌석 제공 여부를 반환합니다.
- places.reservable: 예약 가능 여부를 반환합니다.
- places.restroom: 화장실 시설 제공 여부를 반환합니다.
- places.reviews: 장소에 대한 사용자 리뷰를 반환합니다.
- places.servesBeer: 맥주 제공 여부를 반환합니다.
- places.servesBreakfast: 아침 식사 제공 여부를 반환합니다.
- places.servesBrunch: 브런치 제공 여부를 반환합니다.
- places.servesCocktails: 칵테일 제공 여부를 반환합니다.
- places.servesCoffee: 커피 제공 여부를 반환합니다.
- places.servesDessert: 디저트 제공 여부를 반환합니다.
- places.servesDinner: 저녁 식사 제공 여부를 반환합니다.
- places.servesLunch: 점심 식사 제공 여부를 반환합니다.
- places.servesVegetarianFood: 채식 음식 제공 여부를 반환합니다.
- places.servesWine: 와인 제공 여부를 반환합니다.
- places.takeout: 테이크아웃 제공 여부를 반환합니다.
[body]
{
"includedTypes": ["restaurant"],
"languageCode" : "ko",
"maxResultCount": 10,
"locationRestriction": {
"circle": {
"center": {
"latitude": 37.50140609595665,
"longitude": 127.04173085185646},
"radius": 500.0
}
}
}
- 필수
- locationRestriction : 중심점과 반경(미터)으로 정의되는 원으로 지정되는 검색할 지역. (반경은 0.0 이상, 50000.0 이하)
- 선택
- includeTypes : 검색할 장소의 유형
https://developers.google.com/maps/documentation/places/web-service/place-types?_gl=1*7w98ce*_up*MQ..*_ga*MjAxNzc4Nzk0LjE3MjczOTcxNTE.*_ga_NRWSTWS78N*MTcyNzM5NzE1MS4xLjAuMTcyNzM5NzE1MS4wLjAuMA..&hl=ko#table-a - languageCode : 결과를 반환할 때 사용하는 언어 (한국어 : ko)
- maxResultCount : 검색 결과로 반환할 최대 장소 수
- rankPreference : 사용할 순위 유형
- POPULARITY (기본값): 인기도에 따라 결과를 정렬
- DISTANCE : 거리가 가까운 순
- includeTypes : 검색할 장소의 유형
- include Types 예시
더보기
더보기
더보기
장소 유형 키워드설명
| restaurant | 일반 레스토랑 |
| cafe | 카페 |
| bar | 바, 주점 |
| night_club | 나이트 클럽 |
| bakery | 제과점 |
| park | 공원 |
| movie_theater | 영화관 |
| museum | 박물관 |
| library | 도서관 |
| gym | 체육관, 헬스장 |
| shopping_mall | 쇼핑몰 |
| school | 학교 |
| university | 대학교 |
| hospital | 병원 |
| pharmacy | 약국 |
| gas_station | 주유소 |
| lodging | 숙박시설 (호텔, 모텔 등) |
| supermarket | 슈퍼마켓 |
| convenience_store | 편의점 |
| book_store | 서점 |
| florist | 꽃집 |
| art_gallery | 미술관 |
| zoo | 동물원 |
| amusement_park | 놀이공원 |
| aquarium | 수족관 |
| tourist_attraction | 관광명소 |
| church | 교회 |
| mosque | 모스크 |
| hindu_temple | 힌두 사원 |
| synagogue | 유대교 회당 |
| place_of_worship | 종교 장소 |
| campground | 캠프장 |
| car_rental | 렌터카 서비스 |
| car_wash | 세차장 |
| pet_store | 애완동물 가게 |
| veterinary_care | 동물 병원 |
| beauty_salon | 미용실 |
| hair_care | 헤어샵 |
| spa | 스파 |
| bank | 은행 |
| atm | ATM |
| post_office | 우체국 |
| bus_station | 버스 정류장 |
| subway_station | 지하철역 |
| train_station | 기차역 |
| airport | 공항 |
| taxi_stand | 택시 승강장 |
| parking | 주차장 |
등등..
텍스트 검색(신규)
[URL] POST
https://places.googleapis.com/v1/places:searchText
[Header]
headers = {
"Content-Type": "application/json",
"X-Goog-Api-Key": api_key,
"X-Goog-FieldMask": "places.displayName"
}
- Content-Type: 요청 본문의 데이터 형식을 서버에 알리는 역할
- X-Goog-Api-Key : Google API 인증을 위한 필수 헤더 (Google Cloud 콘솔에서 발급받은 API 키)
- X-Goog-FieldMask : API 응답에서 어떤 필드를 반환할지를 지정하는 필드 마스크 (API 응답이 너무 많은 데이터를 반환하는 것을 방지하기 위해, 필요한 필드만 반환하도록 요청)
[Body]
{
"textQuery" : "대한민국 서울특별시 강남구 테헤란로34길 14",
"languageCode" : "ko",
"maxResultCount": 10,
"locationBias": {
"circle": {
"center": {
"latitude": 37.50140609595665,
"longitude": 127.04173085185646},
"radius": 500.0
}
}
}
- 필수
- textQuery : 검색할 텍스트 문자열(예: '음식점')
ex) '중앙로 123' 또는 '샌프란시스코에서 방문하기 가장 좋은 장소'와 같은 텍스트를 입렿가면, 인식된 관련성을 기준으로 결과의 순서를 지정하여 반환한다.
- textQuery : 검색할 텍스트 문자열(예: '음식점')
장소 사진 (신규)
[URL] GET
https://places.googleapis.com/v1/{NAME}/media?key={API_KEY}&maxHeightPx={width}&maxWidthPx={height}
- 필수
- NAME : 상세검색 시 나온 photos.name 전체를 넣어준다.
- key : GOOGLE MAP API KEY
- width : 최대 너비 (px)
- height : 최대 높이 (px)
ex)
https://places.googleapis.com/v1/places/ChIJm3V0fu2ifDURRJ8IMUijVtY/photos/AdCG2DM2sHdWu9T7KFWUG6PPSnny63njU40epml1uUHiUmHAzw46-aKC7ohk7TqAR3tc5f4m8pMDtCb2yLtY93MUJCWx7-UiOfksjPdXLo1W5xyAOnRcVG5TrEx9DVWxQzTYMdI5UI3u7Fq7WPhT3SBp6G3vqa8pprLH7lY-/media?key=AIzaSyDTyW2rE2HZ-kLEWk22mUtKQOfVYPd5BjQ&maxHeightPx=400&maxWidthPx=400
장소 세부 정보(신규)
[URL] GET
https://places.googleapis.com/v1/places/{places.id}?fields={field}&key={API_KEY}
- 필수 매개 변수
- places.id : goole 맵 검색을 통해 얻는 places.id 값
- field : 검색시 반환 받을 값
ex) URL
https://places.googleapis.com/v1/places/ChIJj61dQgK6j4AR4GeTYWZsKWw?fields=*&key=AIzaSyDTyW2rE2HZ-kLEWk22mUtKQOfVYPd5BjQ&languageCode=ko
자동완성 요청
[URL] POST
https://places.googleapis.com/v1/places:autocomplete
[Header]
headers = {
"Content-Type": "application/json",
"X-Goog-Api-Key": api_key,
"X-Goog-FieldMask": "*"
}
- Content-Type: 요청 본문의 데이터 형식을 서버에 알리는 역할
- X-Goog-Api-Key : Google API 인증을 위한 필수 헤더 (Google Cloud 콘솔에서 발급받은 API 키)
- X-Goog-FieldMask : API 응답에서 어떤 필드를 반환할지를 지정하는 필드 마스크 (API 응답이 너무 많은 데이터를 반환하는 것을 방지하기 위해, 필요한 필드만 반환하도록 요청)
[Body]
{
"input": "pizza",
"languageCode" : "ko",
"locationBias": {
"circle": {
"center": {
"latitude": 37.50140609595665,
"longitude": 127.04173085185646},
"radius": 500.0
}
}
}
- 필수
- input : 검색할 텍스트 문자열
전체 단어 및 하위 문자열 지정 장소 이름, 주소 및 플러스 코드를 고려하여 자동완성 한 값을 반환한다.
- input : 검색할 텍스트 문자열
[response]
더보기
더보기
더보기
{
"suggestions": [
{
"placePrediction": {
"place": "places/ChIJn-zr9lOhfDURya273bgBAVY",
"placeId": "ChIJn-zr9lOhfDURya273bgBAVY",
"text": {
"text": "Pizza Alvolo Yeoksam Branch, 역삼동 강남구 서울특별시 대한민국",
"matches": [
{
"endOffset": 5
}
]
},
"structuredFormat": {
"mainText": {
"text": "Pizza Alvolo Yeoksam Branch",
"matches": [
{
"endOffset": 5
}
]
},
"secondaryText": {
"text": "역삼동 강남구 서울특별시 대한민국"
}
},
"types": [
"establishment",
"restaurant",
"food",
"point_of_interest"
]
}
},
{
"placePrediction": {
"place": "places/ChIJY3bSIuujfDUR3g-lmLPUvzA",
"placeId": "ChIJY3bSIuujfDUR3g-lmLPUvzA",
"text": {
"text": "Pizza Express, 신사동 강남구 서울특별시 대한민국",
"matches": [
{
"endOffset": 5
}
]
},
"structuredFormat": {
"mainText": {
"text": "Pizza Express",
"matches": [
{
"endOffset": 5
}
]
},
"secondaryText": {
"text": "신사동 강남구 서울특별시 대한민국"
}
},
"types": [
"point_of_interest",
"establishment",
"food",
"restaurant",
"pizza_restaurant"
]
}
},
{
"placePrediction": {
"place": "places/ChIJx1IT9RulfDURFhYY_lHC1f8",
"placeId": "ChIJx1IT9RulfDURFhYY_lHC1f8",
"text": {
"text": "Pizza Alvolo Daechi Branch, 삼성로 강남구 서울 대한민국",
"matches": [
{
"endOffset": 5
}
]
},
"structuredFormat": {
"mainText": {
"text": "Pizza Alvolo Daechi Branch",
"matches": [
{
"endOffset": 5
}
]
},
"secondaryText": {
"text": "삼성로 강남구 서울 대한민국"
}
},
"types": [
"point_of_interest",
"establishment",
"food",
"restaurant",
"pizza_restaurant"
]
}
},
{
"placePrediction": {
"place": "places/ChIJndv_YhqkfDURuOcoadr3B_4",
"placeId": "ChIJndv_YhqkfDURuOcoadr3B_4",
"text": {
"text": "Pizza Alvolo Daechi Branch, 역삼로 강남구 서울특별시 대한민국",
"matches": [
{
"endOffset": 5
}
]
},
"structuredFormat": {
"mainText": {
"text": "Pizza Alvolo Daechi Branch",
"matches": [
{
"endOffset": 5
}
]
},
"secondaryText": {
"text": "역삼로 강남구 서울특별시 대한민국"
}
},
"types": [
"point_of_interest",
"establishment",
"food",
"restaurant",
"pizza_restaurant"
]
}
},
{
"placePrediction": {
"place": "places/ChIJ65c5JRmjfDUREqqkQub7SBA",
"placeId": "ChIJ65c5JRmjfDUREqqkQub7SBA",
"text": {
"text": "대한민국 서울특별시 강남구 봉은사로34길 PIZZA PIZZA by StarvingBae",
"matches": [
{
"startOffset": 23,
"endOffset": 28
}
]
},
"structuredFormat": {
"mainText": {
"text": "PIZZA PIZZA by StarvingBae",
"matches": [
{
"endOffset": 5
}
]
},
"secondaryText": {
"text": "대한민국 서울특별시 강남구 봉은사로34길"
}
},
"types": [
"establishment",
"restaurant",
"food",
"point_of_interest"
]
}
}
]
}