Unternehmen und andere Points of Interest

Plattform auswählen: Android iOS JavaScript

Standardmäßig werden Points of Interest (POIs) zusammen mit den entsprechenden Symbolen auf der Basiskarte dargestellt. POIs sind beispielsweise Parks, Schulen und Behördengebäude.

Darüber hinaus werden Unternehmens-POIs standardmäßig auf der Karte angezeigt, wenn der Kartentyp normal ist. Unternehmens-POIs sind beispielsweise Geschäfte, Restaurants und Hotels. Unternehmens-POIs auf Indoor-Karten (Gebäudeplänen) werden nur auf einer Karte im Lite-Modus angezeigt.

Ein POI entspricht einer Orts-ID gemäß der Definition im Places SDK for Android. So sind beispielsweise der Erholung dienende Parks POIs, Objekte wie Springbrunnen hingegen nicht (es sei denn, sie sind von nationaler oder historischer Bedeutung).

Auf Klickereignisse für POIs warten

Soll eine Reaktion erfolgen, wenn ein Nutzer auf einen POI tippt, können Sie einen OnPoiClickListener verwenden, wie im folgenden Codebeispiel veranschaulicht:

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();
    }
}

      

POIs erscheinen standardmäßig auf der Karte. Beim Anklicken wird jedoch keine standardmäßige UI angezeigt. Das heißt, über die API wird nicht automatisch ein Infofenster oder ein anderes UI-Element aufgerufen, wenn der Nutzer auf einen POI tippt.

Wie im Beispiel oben gezeigt, legen Sie den OnPoiClickListener auf der Karte fest, indem Sie GoogleMap.setOnPoiClickListener(OnPoiClickListener) aufrufen. Wenn ein Nutzer auf einen POI klickt (oder tippt), empfängt Ihre App ein Ereignis vom Typ OnPoiClick(PointOfInterest). Dieses Ereignis gibt auch den entsprechenden POI an. Der PointOfInterest enthält die Breiten-/Längenkoordinaten, die Orts-ID und den POI-Namen.

POIs nicht mehr auf der Karte anzeigen

Sie können POIs ausblenden, indem Sie benutzerdefinierte Formate auf alle POIs oder auf bestimmte POI-Kategorien anwenden.

Mit der folgenden JSON-Stildeklaration werden alle Unternehmens-POIs auf der Karte ausgeblendet:

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

Als weiteres Beispiel vereinfacht die folgende Deklaration die Darstellung aller POI-Kategorien:

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

Den Java-Code sowie weitere Informationen finden Sie in der Anleitung Kartenelemente mit Stilen ausblenden.