Firmy i inne ciekawe miejsca

Wybierz platformę: Android iOS JavaScript

Domyślnie na mapie podstawowej wyświetlają się punkty zainteresowania (POI) wraz z odpowiednimi ikonami. Ciekawe miejsca to m.in. parki, szkoły, budynki administracyjne.

Ponadto miejsca docelowe typu „firma” są domyślnie wyświetlane na mapie, gdy typ mapy to normal. Obiekty firmowe to firmy takie jak sklepy, restauracje, hotele itp. Punkty orientacyjne firm na mapach wewnętrznych (planach pięter) wyświetlają się tylko na mapie w trybie uproszczonym.

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

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

Jeśli chcesz reagować, gdy użytkownik kliknie punkt zainteresowania, 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();
    }
}

      

Miejsca docelowe są domyślnie widoczne na mapie, ale nie ma domyślnego interfejsu po kliknięciu. Oznacza to, że interfejs API nie wyświetla automatycznie okna informacyjnego ani żadnego innego interfejsu użytkownika, gdy użytkownik kliknie punkt zainteresowania.

Jak widać w powyższym przykładzie, możesz ustawić parametr OnPoiClickListener na mapie, wywołując funkcję GoogleMap.setOnPoiClickListener(OnPoiClickListener). Gdy użytkownik kliknie punkt zainteresowania, aplikacja otrzymuje zdarzenie OnPoiClick(PointOfInterest), które wskazuje kliknięty przez użytkownika punkt zainteresowania. Wartość PointOfInterest zawiera współrzędne geograficzne, identyfikator miejsca i nazwę punktu zainteresowania.

Zablokuj wyświetlanie punktów POI na mapie

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

Poniższa deklaracja stylu JSON powoduje ukrycie na mapie wszystkich punktów zainteresowania związanych z firmą:

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

Ten kod JSON upraszcza wyświetlanie wszystkich kategorii punktów zainteresowania:

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

Kod Java i inne szczegóły znajdziesz w przewodniku ukrywanie elementów mapy za pomocą stylów.