Тип QML MapPolygon
Тип MapPolygon отображает многоугольник на карте. Подробнее...
| Заявление об импорте: | import QtLocation 5.14 |
| С: | QtLocation 5.5 |
Свойства
- autoFadeIn : bool
-
border
- border.color : цвет
- border.width : int
- color : цвет
- path : список<координата>
Методы
- void addCoordinate(координата)
- void removeCoordinate(координата)
Подробное описание
Тип MapPolygon отображает многоугольник на карте, заданный упорядоченным списком координат. Для лучшего внешнего вида и результатов многоугольники должны быть простыми (не самопересекающимися).
Координаты в пути не могут быть изменены напрямую после добавления в многоугольник. Вместо этого скопируйте path в переменную, измените копию и присвойте копию обратно path.
var path = mapPolygon.path; path[0].latitude = 5; mapPolygon.path = path;
Координаты также могут быть добавлены и удалены в любое время с помощью методов addCoordinate и removeCoordinate.
Для рисования прямоугольников с «прямыми» гранями (одинаковая широта по одной грани, одинаковая широта по другой) тип MapRectangle предоставляет более простой двухточечный API.
По умолчанию многоугольник отображается как рамка черного цвета шириной 1 пиксель без заливки. Чтобы изменить его внешний вид, используйте свойства color, border.color и border.width.
Примечание: Поскольку MapPolygon — это географические элементы, перетаскивание MapPolygon (с помощью MouseArea) приводит к перерасчёту его вершин в географическом пространстве координат. Ребра сохраняют одинаковую географическую длину (разницы широты и долготы между вершинами), но остаются прямыми. Видимое растяжение элемента происходит при перетаскивании в другую широту.
Производительность
MapPolygon имеет стоимость отрисовки O(n) относительно количества вершин. Это означает, что стоимость за кадр отображения многоугольника на карте увеличивается прямо пропорционально количеству точек в многоугольнике. Существует дополнительная стоимость триангуляции (приблизительно O(n log n)), которая в настоящее время оплачивается каждый кадр, но в будущем может быть оплачена только при добавлении или удалении точек.
Как и другие объекты карты, MapPolygon обычно отображается без плавного внешнего вида. Установка свойства opacity заставит объект смешиваться, что значительно снижает производительность в зависимости от используемого оборудования.
Пример использования
Следующий фрагмент показывает использование MapPolygon для отображения треугольника с тремя вершинами возле Брисбена, Австралия. Треугольник залит зелёным цветом с черной рамкой шириной 1 пиксель.
Map {
MapPolygon {
color: 'green'
path: [
{ latitude: -27, longitude: 153.0 },
{ latitude: -27, longitude: 154.1 },
{ latitude: -28, longitude: 153.5 }
]
}
} Документация по свойствам
autoFadeIn : bool
Это свойство указывает, автоматически ли элемент затухает при приближении к карте, начиная с очень низких уровней масштабирования. По умолчанию это true. Установка этого свойства в false приводит к тому, что элемент карты всегда имеет непрозрачность, указанную в свойстве QtQuick::Item::opacity, которая по умолчанию равна 1.0.
Это свойство было добавлено в Qt 5.14.
border.color : color
Это свойство входит в группу свойств border. Группа свойств border содержит ширину и цвет, используемые для рисования границы многоугольника.
Ширина измеряется в пикселях и не зависит от уровня масштабирования карты.
Значения по умолчанию соответствуют черной рамке шириной 1 пиксель. Для отсутствия линии используйте ширину 0 или прозрачный цвет.
color : color
Это свойство содержит цвет, используемый для заливки многоугольника.
Значение по умолчанию — прозрачный.
path : список<координата>
Это свойство содержит упорядоченный список координат, определяющих многоугольник. Наличие менее 3 разных координат в пути приводит к неопределённому поведению.
См. также addCoordinate и removeCoordinate.
Документация по методам
void addCoordinate(координата)
Добавляет указанную координату в путь.
См. также removeCoordinate и path.
void removeCoordinate(координата)
Удаляет координату из пути. Если существует несколько экземпляров одной и той же координаты, удаляется последняя добавленная.
Если координата не находится в пути, этот метод ничего не делает.
См. также addCoordinate и path.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.14/qml-qtlocation-mappolygon.html