Firmy i inne ciekawe miejsca

Wybierz platformę: Android iOS JavaScript

Domyślnie na mapie bazowej wyświetlają się ciekawe miejsca wraz z odpowiadającymi im ikonami. Obejmują one parki, szkoły, budynki administracji państwowej i inne.

Dodatkowo biznesowe ważne miejsca są domyślnie wyświetlane na mapie, gdy jej typ to normal. Punkty POI firm to np. sklepy, restauracje, hotele itp. Punkty POI firm na mapach budynków (planach pięter) pojawiają się tylko na mapie w trybie uproszczonym.

Punkt POI odpowiada identyfikatorowi miejsca zdefiniowanemu w pakiecie SDK Miejsc na Androida. Na przykład parki rekreacyjne są punktami POI, ale takie obiekty jak fontanny zwykle nie są punktami POI (chyba że mają znaczenie krajowe lub historyczne).

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

Jeśli chcesz reagować, gdy użytkownik kliknie punkt POI, możesz użyć metody OnPoiClickListener, jak pokazano w tym przykładzie kodu:

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 widoczne na mapie, ale nie ma domyślnego interfejsu użytkownika po kliknięciu. Oznacza to, że gdy użytkownik kliknie punkt POI, interfejs API nie wyświetli automatycznie okna informacyjnego ani żadnego innego interfejsu.

Jak widać na powyższym przykładzie, element OnPoiClickListener na mapie ustawia się, wywołując funkcję GoogleMap.setOnPoiClickListener(OnPoiClickListener). Gdy użytkownik kliknie (dotknie) punkt POI, Twoja aplikacja otrzyma zdarzenie OnPoiClick(PointOfInterest), które wskazuje kliknięty punkt POI. Element PointOfInterest zawiera współrzędne geograficzne, identyfikator miejsca i nazwę ważnego miejsca.

Przestań wyświetlać ciekawe miejsca na mapie

Możesz ukrywać punkty orientacyjne, stosując style niestandardowe do wszystkich punktów orientacyjnych lub do określonych kategorii punktów orientacyjnych.

Poniższa deklaracja stylu JSON ukrywa wszystkie punkty POI firm na mapie:

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

Inny przykład: poniższy kod JSON upraszcza wyświetlanie wszystkich kategorii punktów POI:

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

Kod w języku Java i inne szczegóły znajdziesz w przewodniku po ukrywaniu elementów mapy za pomocą stylów.