Firmy i inne ciekawe miejsca

Wybierz platformę: Android iOS JavaScript

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 ciekawe miejsca firmowe wyświetlają się na mapie domyślnie, jeśli jej typ to normal Obiekty firmowe to firmy takie jak sklepy, restauracje, hotele itp. Ważne miejsca firm na mapach wewnętrznych (planach pięter) są widoczne tylko na mapie w trybie uproszczonym.

Miejsce docelowe odpowiada identyfikatorowi miejsca zdefiniowanemu w pakiecie 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, który kliknie ciekawe 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();
    }
}

      

Miejsca docelowe są domyślnie widoczne na mapie, ale nie ma domyślnego interfejsu 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 punkt zainteresowania, aplikacja otrzymuje zdarzenie OnPoiClick(PointOfInterest), które wskazuje kliknięty przez użytkownika punkt zainteresowania. PointOfInterest zawiera współrzędne szerokości i długości geograficznej, identyfikator i nazwa ciekawego miejsca.

Zablokuj wyświetlanie punktów POI 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.