MapMarkerHandle
Дескриптор для удобной настройки положения, экранного размера, масштабирования от зума, опорной точки (pivot) и видимости маркера на MapCanvas.
Обзор
MapMarkerHandle предоставляет удобный дескриптор для настройки виджетов, добавленных в качестве маркеров на MapCanvas.
Ключевые возможности:
- Перемещение в координатах карты (position) или во внешних мировых координатах (projectedPosition).
- Фиксированные экранные размеры с ограничением минимального и максимального зума (screenSize, minScreenSize, maxScreenSize).
- Динамическое масштабирование размера от зума относительно опорного зума (zoomScaling).
- Настройка опорной точки привязки (pivot) и отсечение за пределами экрана (cullOutsideViewport).
- Настройка диапазонов видимости по уровню зума для LOD (visibleZoom).
Настройка маркера через дескриптор
MapMarkerHandle<MapMarker> handle = map.addMarker("home", 128.0f, 256.0f, "Base")
.screenSize(32.0f, 32.0f)
.pivot(0.5f, 1.0f);
Связанные ссылки
- AnchorWidget: Пространственный якорь, привязывающий экранный UI-виджет к мировым координатам с масштабированием от зума, настройкой pivot и отсечением вне экрана.
- MapCanvas: Интерактивный виджет 2D-карты, расширяющий WorldCanvas поддержкой размеров карты, слоями текстур и сетки, проекцией координат и маркерами.
- MapMarker: Базовая оболочка маркера для MapCanvas с поддержкой произвольного контента, текстовых меток, состояний выбора и подсветки.
API
MapMarkerHandle::anchor()
Возвращает низкоуровневый AnchorWidget, управляющий маркером.
Возвращает AnchorWidget: Управляющий AnchorWidget..
MapMarkerHandle::cullOutsideViewport(boolean)
Включает или отключает автоматическое отсечение маркера вне видимой области экрана.
| Параметр | Тип | Описание |
|---|---|---|
cullOutsideViewport |
boolean |
Скрывать ли маркер автоматически при выходе за пределы области просмотра. |
Возвращает MapMarkerHandle: Текущий экземпляр для цепочки вызовов..
MapMarkerHandle::id()
Возвращает уникальный строковый идентификатор этого маркера на карте.
Возвращает String: Строковый идентификатор или текст..
MapMarkerHandle::mapX()
Возвращает координату X маркера в системе координат карты.
Возвращает float: Координата или числовое значение с плавающей точкой..
MapMarkerHandle::mapY()
Возвращает координату Y маркера в системе координат карты.
Возвращает float: Координата или числовое значение с плавающей точкой..
MapMarkerHandle::maxScreenSize(float, float)
Устанавливает максимальные экранные размеры маркера для предотвращения чрезмерного увеличения при приближении.
| Параметр | Тип | Описание |
|---|---|---|
width |
float |
Ширина. |
height |
float |
Высота. |
Возвращает MapMarkerHandle: Текущий экземпляр для цепочки вызовов..
MapMarkerHandle::minScreenSize(float, float)
Устанавливает минимальные экранные размеры маркера для предотвращения сильного сжатия при отдалении.
| Параметр | Тип | Описание |
|---|---|---|
width |
float |
Ширина. |
height |
float |
Высота. |
Возвращает MapMarkerHandle: Текущий экземпляр для цепочки вызовов..
MapMarkerHandle::pivot(float, float)
Задает нормализованную опорную точку (pivot от 0.0 до 1.0) внутри границ маркера.
| Параметр | Тип | Описание |
|---|---|---|
x |
float |
Горизонтальная координата X. |
y |
float |
Вертикальная координата Y. |
Возвращает MapMarkerHandle: Текущий экземпляр для цепочки вызовов..
MapMarkerHandle::position(float, float)
Позиционирует маркер в координатах карты.
| Параметр | Тип | Описание |
|---|---|---|
mapX |
float |
Целевая координата X в единицах карты. |
mapY |
float |
Целевая координата Y в единицах карты. |
Возвращает MapMarkerHandle: Текущий экземпляр для цепочки вызовов..
MapMarkerHandle::priority()
Возвращает пользовательский приоритет сортировки маркера.
Возвращает int: Числовое количество..
MapMarkerHandle::priority(int)
Устанавливает пользовательский приоритет сортировки маркера.
| Параметр | Тип | Описание |
|---|---|---|
priority |
int |
Значение приоритета для сортировки и кластеризации маркера. |
Возвращает MapMarkerHandle: Текущий экземпляр для цепочки вызовов..
MapMarkerHandle::projectedPosition(float, float)
Позиционирует маркер во внешних мировых координатах через проекцию MapCanvas.
| Параметр | Тип | Описание |
|---|---|---|
worldX |
float |
Целевая координата X во внешних единицах мира. |
worldY |
float |
Целевая координата Y во внешних единицах мира. |
Возвращает MapMarkerHandle: Текущий экземпляр для цепочки вызовов..
MapMarkerHandle::screenSize(float, float)
Устанавливает базовые фиксированные экранные размеры маркера в пикселях интерфейса.
| Параметр | Тип | Описание |
|---|---|---|
width |
float |
Ширина. |
height |
float |
Высота. |
Возвращает MapMarkerHandle: Текущий экземпляр для цепочки вызовов..
MapMarkerHandle::visible(boolean)
Устанавливает флаг ручной видимости маркера.
| Параметр | Тип | Описание |
|---|---|---|
visible |
boolean |
Флаг видимости. |
Возвращает MapMarkerHandle: Текущий экземпляр для цепочки вызовов..
MapMarkerHandle::visibleZoom(float, float)
Ограничивает видимость маркера указанным диапазоном масштаба зума.
| Параметр | Тип | Описание |
|---|---|---|
minZoom |
float |
Минимально допустимый масштаб зума. |
maxZoom |
float |
Максимально допустимый масштаб зума. |
Возвращает MapMarkerHandle: Текущий экземпляр для цепочки вызовов..
MapMarkerHandle::widget()
Возвращает UI-виджет, отображаемый в качестве маркера.
Возвращает Widget: Значение T..
MapMarkerHandle::zoomScaling(boolean, float)
Настраивает динамическое масштабирование размеров маркера в зависимости от зума карты.
| Параметр | Тип | Описание |
|---|---|---|
zoomScaling |
boolean |
True для динамического масштабирования размера маркера от зума. |
referenceZoom |
float |
Уровень зума, при котором маркер отображается в базовом размере. |
Возвращает MapMarkerHandle: Текущий экземпляр для цепочки вызовов..