Google Places API: Text Search로 장소 검색하기
Google Maps Platform의 Text Search API는 텍스트 기반 검색을 통해 장소 정보를 제공하는 강력한 도구입니다. 이 API를 사용하면 특정 키워드(예: "뉴욕 피자" 또는 "오타와 근처 신발 가게")를 기반으로 장소를 검색하고, 관련 정보를 JSON 형식으로 반환받을 수 있습니다. 특히, 모호한 주소나 비즈니스 이름이 포함된 검색어를 처리하는 데 유용합니다. 이번 글에서는 Text Search API의 주요 기능과 사용 방법을 알아보겠습니다.
Text Search API란?
Text Search API는 사용자가 입력한 텍스트 쿼리를 기반으로 장소를 검색하고, 관련 정보를 제공합니다. 예를 들어, "뉴욕 피자"라는 검색어를 입력하면 뉴욕에 있는 피자 가게 목록을 반환합니다. 이 API는 주소가 아닌 비즈니스 이름이나 키워드로도 검색이 가능하며, 모호한 주소를 처리하는 데도 탁월합니다.
주요 기능
- 텍스트 기반 검색:
- 사용자가 입력한 텍스트 쿼리(예: "뉴욕 피자")를 기반으로 장소를 검색합니다.
- 주소가 아닌 비즈니스 이름이나 키워드도 검색 가능합니다.
- 모호한 주소 처리:
- 형식이 잘못된 주소나 비즈니스 이름이 포함된 검색어도 처리 가능합니다.
- 예: "10 High Street, UK" 또는 "ChainRestaurant New York".
- 다양한 검색 옵션:
- 위치 제한(locationRestriction), 언어(languageCode), 장소 유형(includedTypes), 가격대(priceLevels), 평점(minRating) 등으로 검색을 세부적으로 제한할 수 있습니다.
- JSON 형식 응답:
- 검색 결과는 JSON 형식으로 반환되며, places 배열에 장소 정보가 포함됩니다.
- 각 장소는 Place 객체로 표현되며, 이름, 주소, 평점, 영업 시간 등 다양한 정보를 포함할 수 있습니다.
- 필드 마스크(FieldMask):
- 응답에 포함될 필드를 지정하여 불필요한 데이터를 줄이고, 비용을 절감할 수 있습니다.
- 예: places.displayName, places.formattedAddress, places.rating.
사용 방법
1. 기본 검색
가장 간단한 형태의 검색은 textQuery를 사용하는 것입니다. 예를 들어, "뉴욕 피자"를 검색하려면 다음과 같이 요청을 구성합니다.
const request = {
textQuery: "pizza in New York",
languageCode: "en",
maxResultCount: 5
};
2. 지역 제한 검색
특정 지역 내에서만 검색하려면 locationRestriction 또는 locationBias를 사용합니다. 예를 들어, 뉴욕시에서만 검색하려면 다음과 같이 설정합니다.
const request = {
textQuery: "vegetarian food",
locationRestriction: {
rectangle: {
low: { latitude: 40.477398, longitude: -74.259087 },
high: { latitude: 40.91618, longitude: -73.70018 }
}
}
};
3. 가격대 및 평점 필터링
저렴하거나 평점이 높은 장소만 검색하려면 priceLevels와 minRating을 사용합니다.
const request = {
textQuery: "pizza in New York",
priceLevels: ["PRICE_LEVEL_INEXPENSIVE"],
minRating: 4.0
};
4. 전기자동차 충전소 검색
특정 충전 속도와 커넥터 유형으로 필터링하려면 evOptions를 사용합니다.
const request = {
textQuery: "EV Charging Station Mountain View",
evOptions: {
minimumChargingRateKw: 10,
connectorTypes: ["EV_CONNECTOR_TYPE_J1772"]
}
};
응답 형식
응답은 JSON 형식으로, places 배열에 검색된 장소 정보가 포함됩니다. 각 장소는 Place 객체로 표현되며, 다음 필드를 포함할 수 있습니다:
- displayName: 장소 이름.
- formattedAddress: 주소.
- rating: 평점.
- priceLevel: 가격대.
- currentOpeningHours: 현재 영업 시간.
- googleMapsUri: Google Maps 링크.
예시:
{
"places": [
{
"displayName": "Mother Chu's Vegetarian Kitchen",
"formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
"rating": 4.5,
"priceLevel": "PRICE_LEVEL_MODERATE"
}
]
}
주의사항
- API 키 필요:
- Google Cloud에서 발급받은 API 키를 사용해야 합니다.
- 비용:
- Google Places API는 유료 서비스이며, 요청한 필드에 따라 비용이 달라질 수 있습니다.
- 데이터 양:
- FieldMask를 사용해 필요한 필드만 요청하여 불필요한 데이터와 비용을 줄이는 것이 좋습니다.
'DateP' 카테고리의 다른 글
| 📌 Google Places API 비용 절감 및 최적화: 구조 개선 & Firebase Functions 적용 계획 (0) | 2025.02.04 |
|---|---|
| 🔥 Firebase Functions & Google Places API 연동 및 React Native 연결 과정 정리 (0) | 2025.02.03 |
| 옵션 데이터 관리 (0) | 2025.01.09 |
| 전체적인 앱 구조 설계 (2025 -01-09) (0) | 2025.01.09 |
| DateP 프로젝트 초기 설정 (0) | 2025.01.09 |