Firmy i inne ciekawe miejsca

Wybierz platformę: Android iOS JavaScript

Domyślnie ciekawe miejsca (POI) są wyświetlane na mapie podstawowej wraz z odpowiednimi ikonami. Ciekawe miejsca to między innymi parki, szkoły i budynki urzędowe.

Dodatkowo ciekawe miejsca firmowe wyświetlają się domyślnie na mapie, jeśli jej typ to normal. Ciekawe miejsca dla firm to takie, jak sklepy, restauracje, hotele i inne. Ważne miejsca firm na mapach obiektów (planach pięter) są wyświetlane tylko w trybie uproszczonym.

Ciekawe miejsce odpowiada identyfikatorowi miejsca zdefiniowanemu w pakiecie SDK Miejsc na Androida. Na przykład parki rekreacyjne są ważnymi miejscami, ale tego typu fontanny zwykle nie stanowią ważnych miejsc (chyba że mają znaczenie krajowe lub historyczne).

Nasłuchiwanie zdarzeń kliknięcia w ważnych miejscach

Jeśli chcesz odpowiedzieć użytkownikowi, który kliknie ważne miejsce, możesz użyć OnPoiClickListener, tak jak w tym przykładowym kodzie:

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. Oznacza to, że po kliknięciu ważnego miejsca interfejs API nie wyświetla automatycznie okna informacyjnego ani innego interfejsu użytkownika.

Jak widać w przykładzie powyżej, ustawia się na mapie obiekt OnPoiClickListener, wywołując funkcję GoogleMap.setOnPoiClickListener(OnPoiClickListener). Gdy użytkownik kliknie ważne miejsce, aplikacja otrzyma zdarzenie OnPoiClick(PointOfInterest) wskazujące to miejsce. Pole PointOfInterest zawiera współrzędne szerokości i długości geograficznej, identyfikator miejsca i nazwę ciekawego miejsca.

Wyłączanie wyświetlania ciekawych miejsc na mapie

Ciekawe miejsca możesz ukrywać, stosując style niestandardowe do wszystkich ciekawych miejsc lub do ich określonych kategorii.

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 następujący kod JSON upraszcza wyświetlanie wszystkich kategorii ciekawych miejsc:

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

Kod w Javie i inne informacje znajdziesz w przewodniku ukrywania funkcji mapy za pomocą stylu.