Spec-Zone.ru › Qt 5.13

Тип QML MapPolygon

Тип MapPolygon отображает многоугольник на карте. Подробнее...

Оператор импорта: import QtLocation 5.13
С: QtLocation 5.5
  • Список всех членов, включая унаследованные

Свойства

  • border
    • border.width : int
    • border.color : цвет
  • color : цвет
  • path : список<координата>

Методы

  • void addCoordinate(координата)
  • void removeCoordinate(координата)

Подробное описание

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

Координаты в пути нельзя напрямую изменить после добавления в многоугольник. Вместо этого скопируйте путь в переменную, измените копию и назначьте копию обратно свойству 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 }
        ]
    }
}

Документация по свойствам

border.width : int

Это свойство является частью группы свойств border. Группа свойств border содержит ширину и цвет, используемые для рисования границы многоугольника.

Ширина измеряется в пикселях и не зависит от масштаба карты.

Значения по умолчанию соответствуют черной границе шириной 1 пиксель. Для отсутствия линии используйте ширину 0 или прозрачный цвет.

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.13/qml-qtlocation-mappolygon.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API