Domyślnie ciekawe miejsca (POI) są wyświetlane na mapie podstawowej wraz z ich odpowiadające im ikony. Ciekawe miejsca to między innymi parki, szkoły, budynki rządowe i innych.
Dodatkowo miejsca firmowe domyślnie wyświetlają się na mapie, jeśli jej typ to
normal
Ciekawe miejsca firmowe to firmy, takie jak sklepy, restauracje, hotele,
i inne. Ciekawe miejsca firmowe na mapach obiektów (planach pięter) są wyświetlane tylko na
mapę w trybie uproszczonym.
Ciekawe miejsce odpowiada identyfikatorowi miejsca zdefiniowanym w Pakiet SDK Miejsc na Androida Na przykład parki rozrywki to ważne miejsca, ale takie jak fontanny wodne na ogół nie są ważnym miejscem (chyba że są to obiekty krajowe, czy znaczenia historycznego).
Nasłuchiwanie zdarzeń kliknięcia w ważnych miejscach
Jeśli chcesz odpowiedzieć użytkownikowi klikającemu ważne miejsce, możesz użyć przycisku
OnPoiClickListener
jak w tym kodzie
przykład:
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() } }
Java
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(); } }
Ciekawe miejsca są domyślnie wyświetlane na mapie, ale nie ma żadnego domyślnego interfejsu uruchamianego po kliknięciu. To znaczy, interfejs API nie wyświetla automatycznie okna informacyjnego ani żadnego innego użytkownika po kliknięciu ciekawego miejsca.
Jak widać w przykładzie powyżej,
OnPoiClickListener
na mapie o
połączenia
GoogleMap.setOnPoiClickListener(OnPoiClickListener)
Gdy użytkownik kliknie ważne miejsce, aplikacja otrzyma
OnPoiClick(PointOfInterest)
zdarzenie
wskazujący ciekawe miejsce (POI), które kliknął użytkownik.
PointOfInterest
zawiera współrzędne szerokości i długości geograficznej,
identyfikator i nazwa ciekawego miejsca.
Wyłączanie wyświetlania ciekawych miejsc na mapie
Ciekawe miejsca możesz ukryć, stosując style niestandardowe do wszystkich ważnych miejsc lub do określonych kategorii ciekawych miejsc.
Poniższa deklaracja stylu JSON ukrywa wszystkie ważne miejsca związane z firmą na mapie:
[
{
"featureType": "poi.business",
"stylers": [
{ "visibility": "off" }
]
}
]
Inny przykład to następujący kod JSON, który upraszcza wyświetlanie wszystkich kategorii. ciekawych miejsc:
[
{
"featureType": "poi",
"stylers": [
{ "visibility": "simplified" }
]
}
]
Więcej informacji o kodzie Java i innych znajdziesz w przewodniku ukrywanie elementów mapy za pomocą stylu.