Предприятия и другие достопримечательности

Оптимизируйте свои подборки Сохраняйте и классифицируйте контент в соответствии со своими настройками.
Выберите платформу: Android iOS JavaScript

По умолчанию точки интереса (POI) отображаются на базовой карте вместе с соответствующими значками. POI включают парки, школы, правительственные здания и многое другое.

Кроме того, бизнес -объекты появляются на карте по умолчанию, если карта имеет normal тип. Деловые POI представляют такие предприятия, как магазины, рестораны, гостиницы и т. д. Деловые объекты на картах помещений (планах этажей) отображаются только на карте в упрощенном режиме .

POI соответствует идентификатору места , определенному в Places SDK для Android. Например, парки отдыха являются POI, но такие вещи, как фонтаны, как правило, не являются POI (если только они не имеют национального или исторического значения).

Прослушивание событий кликов на POI

Если вы хотите реагировать на нажатие пользователем POI, вы можете использовать OnPoiClickListener , как показано в следующем примере кода:

Джава


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

      

Котлин


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

      

POI отображаются на карте по умолчанию, но пользовательского интерфейса по умолчанию нет. То есть API не отображает автоматически информационное окно или любой другой пользовательский интерфейс, когда пользователь касается POI.

Как показано в приведенном выше примере, вы устанавливаете OnPoiClickListener на карту, вызывая GoogleMap.setOnPoiClickListener(OnPoiClickListener) . Когда пользователь щелкает (нажимает) на POI, ваше приложение получает событие OnPoiClick(PointOfInterest) , указывающее точку интереса (POI), которую щелкнул пользователь. PointOfInterest содержит координаты широты/долготы, идентификатор места и название точки интереса.

Запретить отображение POI на карте

Вы можете скрыть точки интереса (POI), применив пользовательские стили ко всем POI или к определенным категориям POI.

Следующее объявление в стиле JSON скрывает все бизнес-объекты на карте:

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

В качестве другого примера следующий JSON упрощает отображение всех категорий POI:

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

Код Java и другие подробности см. в руководстве по сокрытию элементов карты с помощью стилей .