비즈니스 및 기타 관심 장소

기본적으로 관심 장소(POI)는 해당 아이콘과 함께 기본 지도에 표시됩니다. 관심 장소에는 공원, 학교, 정부 건물 등이 포함됩니다.

또한 지도 유형이 normal인 경우 비즈니스 관심 장소가 지도에 기본으로 표시됩니다. 비즈니스 관심 장소는 상점, 음식점, 호텔 등의 비즈니스를 나타냅니다. 실내 지도(평면도)의 비즈니스 관심 장소는 라이트 모드 지도에만 표시됩니다.

Android용 Places SDK에서 정의된 장소 ID가 있어야 관심 장소입니다. 예를 들어 휴양 공원은 관심 장소이지만, 일반적으로 분수대와 같은 곳은 국가적 또는 역사적 의미를 갖지 않는 한 관심 장소가 아닙니다.

관심 장소의 클릭 이벤트 수신

관심 장소를 탭한 사용자에게 응답하려면 다음 코드 샘플에 표시된 대로 OnPoiClickListener를 사용하세요.

자바

class OnPoiClickDemoActivity extends AppCompatActivity implements
    OnMapReadyCallback, GoogleMap.OnPoiClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.poi_click_demo);
        SupportMapFragment mapFragment;
        mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map);
        mapFragment.getMapAsync(this);
    }

    @Override
    public void onMapReady(GoogleMap map) {
        map.setOnPoiClickListener(this);
    }

    @Override
    public void onPoiClick(PointOfInterest poi) {
        Toast.makeText(this, "Clicked: " +
                poi.name + "\nPlace ID:" + poi.placeId +
                "\nLatitude:" + poi.latLng.latitude +
                " Longitude:" + poi.latLng.longitude,
            Toast.LENGTH_SHORT).show();
    }
}
      

Kotlin

internal class OnPoiClickDemoActivity : AppCompatActivity(), OnMapReadyCallback, OnPoiClickListener {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.poi_click_demo)
        val mapFragment = supportFragmentManager.findFragmentById(R.id.map)
                as SupportMapFragment
        mapFragment.getMapAsync(this)
    }

    override fun onMapReady(map: GoogleMap) {
        map.setOnPoiClickListener(this)
    }

    override fun onPoiClick(poi: PointOfInterest) {
        Toast.makeText(this, """Clicked: ${poi.name}
            Place ID:${poi.placeId}
            Latitude:${poi.latLng.latitude} Longitude:${poi.latLng.longitude}""",
            Toast.LENGTH_SHORT
        ).show()
    }
}
      

관심 장소는 기본적으로 지도에 표시되지만, 클릭 시 실행되는 기본 UI는 없습니다. 즉, 사용자가 관심 장소를 탭할 때 API에서 정보 창 또는 다른 인터페이스를 자동으로 표시하지 않습니다.

위의 샘플에 나온 것처럼, GoogleMap.setOnPoiClickListener(OnPoiClickListener)를 호출하여 지도에 OnPoiClickListener를 설정합니다. 사용자가 관심 장소를 클릭(탭)하면 앱에서 사용자가 클릭한 관심 장소를 나타내는 OnPoiClick(PointOfInterest) 이벤트를 수신합니다. PointOfInterest에는 관심 장소의 위도/경도 좌표, 장소 ID 및 이름이 포함됩니다.

지도에 관심 장소 표시 중지

모든 관심 장소 또는 특정 카테고리의 관심 장소에 맞춤 스타일을 적용하여 관심 장소를 숨길 수 있습니다.

다음과 같은 JSON 스타일 선언을 적용하면 지도의 모든 비즈니스 관심 장소가 숨겨집니다.

[
  {
    "featureType": "poi.business",
    "stylers": [
      { "visibility": "off" }
    ]
  }
]

또 다른 예로, 다음 JSON 스타일은 모든 카테고리의 관심 장소 표시를 간소화합니다.

[
  {
    "featureType": "poi",
    "stylers": [
      { "visibility": "simplified" }
    ]
  }
]

자바 코드 및 기타 세부정보에 대해 알아보려면 스타일을 지정하여 지도 지형지물 숨기기 관련 가이드를 읽어보세요.