Масштабирование и центрирование
Масштабирование и центрирование - это основные функции карты, которые позволяют пользователям регулировать уровень масштаба и фокусироваться на определенных географических местоположениях в пределах отображения карты.
Дополнение Maps предоставляет методы, которые разработчики могут использовать для программного управления этими функциями.
Давайте рассмотрим некоторые методы класса GeoMap
:
-
setCenter()
- задает центральную географическую точку в видимой области карты. Координаты должны быть предоставлены в проекции карты, конкретно вEPSG:4326
. В случае, если проекция карты была изменена с помощьюsetProjection(CRS)
, координаты должны быть указаны в этой скорректированной проекции. Важно различать проекцию карты и проекцию отображения, настроенную вGeoMapView
карты. Проекция отображения влияет на то, как данные карты понимаются и отображаются, тогда как проекция карты задает систему координат для всех координат, передаваемых через публичный API. -
setZoom(double zoom)
- устанавливает карту на определенный уровень масштаба. Уровень масштаба начинается с 0, что представляет вид с максимальным отдалением, и увеличивается по мере приближения для детального просмотра. -
zoomToExtent(Extent)
- устанавливает видимую область карты так, чтобы она охватывала предоставленные географические границы с максимально возможным уровнем масштаба. Extent (экстент) - это ограничивающая рамка, которая определяет конкретную географическую область на карте. Экстент представлен набором координат: минимальные (левая, нижняя) и максимальные (правая, верхняя) координаты, которые очерчивают границы прямоугольной области на карте. Для более продвинутого метода масштабирования до определенного экстента используйте методfit(FitOptions)
. -
zoomToGeometry(SimpleGeometry)
- устанавливает видимую область карты так, чтобы она охватывала оболочку предоставленной геометрии с максимально достижимым уровнем масштаба.Если предоставленная геометрия - это Point
, карта будет центрирована на этой точке при текущем уровне масштаба.Более продвинутый метод масштабирования до определенной геометрии может быть достигнут с помощью метода
fit(FitOptions)
. -
zoomToFeature(Feature)
- служебный метод, который извлекает геометрию из предоставленной сущности и делегирует вызов методуzoomToGeometry(SimpleGeometry)
. -
fit(FitOptions)
- корректирует предоставленную геометрию или экстент в соответствии с указанным размером карты, настройками границ и указанными опциями. Например, чтобы установить максимальный уровень масштаба и включить анимацию, можно использовать следующий подход:protected GeometryFactory geometryFactory = GeometryUtils.getGeometryFactory(); @ViewComponent private GeoMap map; @Subscribe("map") public void onMapMapSingleClick(final MapSingleClickEvent event) { map.fit(new FitOptions(new PointFeature( geometryFactory.createPoint(event.getCoordinate()))) .withDuration(2000) .withEasing(Easing.LINEAR) .withMaxZoom(20d)); }
FitOptions
используются для настройки того, как отображение карты должно подстраиваться под конкретный экстент или геометрию. Эти опции предоставляют разработчикам контроль над такими аспектами, как уровень масштаба, длительность анимации, функции сглаживания и другие параметры, связанные с подгонкой отображения карты.Для получения дополнительной информации обратитесь к документации для View.