비즈니스 및 기타 관심 장소
컬렉션을 사용해 정리하기
내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
기본적으로 관심 장소(POI)는 해당 아이콘과 함께 기본 지도에
표시됩니다. 관심 장소에는 공원, 학교, 정부 건물 등이
포함됩니다. 또한 지도 유형이 kGMSTypeNormal
인 경우 비즈니스 관심 장소가 지도에 기본으로 표시됩니다. 비즈니스 관심 장소는 상점, 음식점, 호텔 등의 비즈니스를
나타냅니다.
관심 장소는 iOS용 Places SDK에 정의된 장소 ID에 해당합니다. 예를 들어 휴양 공원은 관심 장소이지만 식수대와 같은 곳은 (국가적 또는 역사적으로 중요하지 않은 한) 일반적으로 관심 장소가 아닙니다.
관심 장소의 클릭 이벤트 수신 대기
관심 장소를 탭한 사용자에게 응답하려면 다음 예와 같이 GMSMapViewDelegate
를 구현하고 mapView(_:didTapPOIWithPlaceID:name:location:)
메서드를 구현합니다.
Swift
import GoogleMaps
class POI: UIViewController, GMSMapViewDelegate {
override func loadView() {
let camera = GMSCameraPosition.camera(
withLatitude: 47.603,
longitude:-122.331,
zoom:14
)
let mapView = GMSMapView.map(withFrame: .zero, camera: camera)
mapView.delegate = self
self.view = mapView
}
func mapView(
_ mapView: GMSMapView,
didTapPOIWithPlaceID placeID: String,
name: String,
location: CLLocationCoordinate2D
) {
print("You tapped \(name): \(placeID), \(location.latitude)/\(location.longitude)")
}
}
Objective-C
#import "POI.h"
@import GoogleMaps;
@interface POI () <GMSMapViewDelegate>
@end
@implementation POI
- (void)loadView {
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.603
longitude:-122.331
zoom:14];
GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView.delegate = self;
self.view = mapView;
}
#pragma mark - GMSMapViewDelegate
- (void)mapView:(GMSMapView *)mapView
didTapPOIWithPlaceID:(NSString *)placeID
name:(NSString *)name
location:(CLLocationCoordinate2D)location {
NSLog(@"You tapped %@: %@, %f/%f", name, placeID, location.latitude, location.longitude);
}
@end
정보 창에 세부정보 표시
관심 장소는 기본적으로 지도에 표시되지만, 클릭 시 실행되는 기본 UI는 없습니다 (사용자가 관심 장소를 탭할 때 API에서 정보 창이나 다른 사용자 인터페이스를 자동으로 표시하지 않음). 다음 예시는 마커를 사용하여 관심 장소의 정보 창을 표시하는 방법을 보여줍니다.
Swift
// Declare GMSMarker instance at the class level.
let infoMarker = GMSMarker()
// Attach an info window to the POI using the GMSMarker.
func mapView(
_ mapView: GMSMapView,
didTapPOIWithPlaceID placeID: String,
name: String,
location: CLLocationCoordinate2D
) {
infoMarker.snippet = placeID
infoMarker.position = location
infoMarker.title = name
infoMarker.opacity = 0;
infoMarker.infoWindowAnchor.y = 1
infoMarker.map = mapView
mapView.selectedMarker = infoMarker
}
Objective-C
// Declare a GMSMarker instance at the class level.
GMSMarker *infoMarker;
// Attach an info window to the POI using the GMSMarker.
- (void)mapView:(GMSMapView *)mapView
didTapPOIWithPlaceID:(NSString *)placeID
name:(NSString *)name
location:(CLLocationCoordinate2D)location {
infoMarker = [GMSMarker markerWithPosition:location];
infoMarker.snippet = placeID;
infoMarker.title = name;
infoMarker.opacity = 0;
CGPoint pos = infoMarker.infoWindowAnchor;
pos.y = 1;
infoMarker.infoWindowAnchor = pos;
infoMarker.map = mapView;
mapView.selectedMarker = infoMarker;
}
지도에 관심 장소 표시 중지
모든 관심 장소 또는 특정 카테고리의 관심 장소에 맞춤 스타일을 적용하여 관심 장소를 숨길 수 있습니다.
다음과 같은 JSON 스타일 선언을 적용하면 지도의 모든 비즈니스 관심 장소가 숨겨집니다.
[
{
"featureType": "poi.business",
"stylers": [
{ "visibility": "off" }
]
}
]
또 다른 예로, 다음 JSON 스타일은 모든 카테고리의 관심 장소 표시를
간소화합니다.
[
{
"featureType": "poi",
"stylers": [
{ "visibility": "simplified" }
]
}
]
자세한 내용은 스타일을 지정하여 지도 지형지물 숨기기 가이드를 참고하세요.
달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
최종 업데이트: 2025-08-31(UTC)
[null,null,["최종 업데이트: 2025-08-31(UTC)"],[[["\u003cp\u003ePoints of interest (POIs) such as parks, schools, and businesses are displayed on the base map by default, with business POIs appearing only in the \u003ccode\u003ekGMSTypeNormal\u003c/code\u003e map type.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can listen for click events on POIs and respond to user taps by implementing the \u003ccode\u003eGMSMapViewDelegate\u003c/code\u003e and the \u003ccode\u003emapView(_:didTapPOIWithPlaceID:name:location:)\u003c/code\u003e method.\u003c/p\u003e\n"],["\u003cp\u003eWhile POIs are shown automatically, there is no default on-click UI; developers can display an info window by using a marker and attaching it to the POI.\u003c/p\u003e\n"],["\u003cp\u003eCustom styles can be applied to hide all or specific categories of POIs on the map, such as business POIs or simplifying the display of all POIs.\u003c/p\u003e\n"]]],[],null,["Select platform: [Android](/maps/documentation/android-sdk/poi \"View this page for the Android platform docs.\") [iOS](/maps/documentation/ios-sdk/poi \"View this page for the iOS platform docs.\") [JavaScript](/maps/documentation/javascript/examples/event-poi \"View this page for the JavaScript platform docs.\")\n\n\u003cbr /\u003e\n\nBy default, points of interest (POIs) appear on the base map along with their\ncorresponding icons. POIs include parks, schools, government buildings, and\nmore. In addition, *business* POIs appear by default on the map when the map\ntype is `kGMSTypeNormal`. Business POIs represent businesses such as shops,\nrestaurants, hotels, and more.\n\nA POI corresponds to a [Place ID](/maps/documentation/places/ios-sdk/place-id#id-overview),\nas defined in the Places SDK for iOS. For example, recreational parks are POIs,\nbut things like water fountains are generally not POIs (unless they're of\nnational or historic significance).\n\nListening for click events on POIs\n\nIf you want to respond to a user tapping on a POI, implement\n[`GMSMapViewDelegate`](/maps/documentation/ios-sdk/reference/objc/Protocols/GMSMapViewDelegate),\nand implement the\n[`mapView(_:didTapPOIWithPlaceID:name:location:)`](/maps/documentation/ios-sdk/reference/objc/Protocols/GMSMapViewDelegate#-mapview:didtappoiwithplaceid:name:location:)\nmethod, as shown in the following example:\n\n\nSwift \n\n```swift\nimport GoogleMaps\n\nclass POI: UIViewController, GMSMapViewDelegate {\n\n override func loadView() {\n let camera = GMSCameraPosition.camera(\n withLatitude: 47.603,\n longitude:-122.331,\n zoom:14\n )\n let mapView = GMSMapView.map(withFrame: .zero, camera: camera)\n mapView.delegate = self\n self.view = mapView\n }\n\n func mapView(\n _ mapView: GMSMapView,\n didTapPOIWithPlaceID placeID: String,\n name: String,\n location: CLLocationCoordinate2D\n ) {\n print(\"You tapped \\(name): \\(placeID), \\(location.latitude)/\\(location.longitude)\")\n }\n}\n \n```\n\nObjective-C \n\n```objective-c\n#import \"POI.h\"\n@import GoogleMaps;\n\n@interface POI () \u003cGMSMapViewDelegate\u003e\n\n@end\n\n@implementation POI\n\n- (void)loadView {\n GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:47.603\n longitude:-122.331\n zoom:14];\n GMSMapView *mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];\n mapView.delegate = self;\n self.view = mapView;\n}\n\n#pragma mark - GMSMapViewDelegate\n\n- (void)mapView:(GMSMapView *)mapView\n didTapPOIWithPlaceID:(NSString *)placeID\n name:(NSString *)name\n location:(CLLocationCoordinate2D)location {\n NSLog(@\"You tapped %@: %@, %f/%f\", name, placeID, location.latitude, location.longitude);\n}\n\n@end\n \n```\n\n\u003cbr /\u003e\n\nShowing details in an info window\n\nPOIs appear on the map by default, but there is no default on-click UI (the API\ndoes not automatically display an info window or any other user interface when\nthe user taps a POI). The following example shows how to use a marker to\ndisplay an info window for a POI:\n\n\nSwift \n\n```swift\n// Declare GMSMarker instance at the class level.\nlet infoMarker = GMSMarker()\n\n// Attach an info window to the POI using the GMSMarker.\nfunc mapView(\n _ mapView: GMSMapView,\n didTapPOIWithPlaceID placeID: String,\n name: String,\n location: CLLocationCoordinate2D\n) {\n infoMarker.snippet = placeID\n infoMarker.position = location\n infoMarker.title = name\n infoMarker.opacity = 0;\n infoMarker.infoWindowAnchor.y = 1\n infoMarker.map = mapView\n mapView.selectedMarker = infoMarker\n}\n \n```\n\nObjective-C \n\n```objective-c\n// Declare a GMSMarker instance at the class level.\nGMSMarker *infoMarker;\n\n// Attach an info window to the POI using the GMSMarker.\n- (void)mapView:(GMSMapView *)mapView\n didTapPOIWithPlaceID:(NSString *)placeID\n name:(NSString *)name\n location:(CLLocationCoordinate2D)location {\n infoMarker = [GMSMarker markerWithPosition:location];\n infoMarker.snippet = placeID;\n infoMarker.title = name;\n infoMarker.opacity = 0;\n CGPoint pos = infoMarker.infoWindowAnchor;\n pos.y = 1;\n infoMarker.infoWindowAnchor = pos;\n infoMarker.map = mapView;\n mapView.selectedMarker = infoMarker;\n}\n \n```\n\n\u003cbr /\u003e\n\nStopping POIs from showing on the map\n\nYou can hide POIs by applying custom styles to all POIs or\nto specific categories of POIs.\n\nThe following JSON style declaration hides all business POIs on the map: \n\n [\n {\n \"featureType\": \"poi.business\",\n \"stylers\": [\n { \"visibility\": \"off\" }\n ]\n }\n ]\n\nAs another example, the following JSON simplifies the display of all categories\nof POIs: \n\n [\n {\n \"featureType\": \"poi\",\n \"stylers\": [\n { \"visibility\": \"simplified\" }\n ]\n }\n ]\n\nFor more details, see the guide to [hiding map features with styling](/maps/documentation/ios-sdk/hiding-features)."]]