Тип QML MapQuickItem
Тип MapQuickItem отображает произвольный объект Qt Quick на карте. Подробнее...
| Заявление об импорте: | import QtLocation 5.12 |
| С момента: | QtLocation 5.5 |
Свойства
- anchorPoint : QPointF
- coordinate : coordinate
- sourceItem : объект
- zoomLevel : вещественное число
Подробное описание
Тип MapQuickItem используется для размещения произвольного объекта Qt Quick на карте в заданном месте и размере. По сравнению с отображением элемента поверх карты, MapQuickItem будет следовать перемещению (и, необязательно, масштабированию) карты так, как будто он находится на поверхности карты.
Свойство sourceItem содержит объект Qt Quick, который будет отображаться, и может быть любого типа видимого объекта.
Позиционирование и размер
Позиционирование MapQuickItem на карте контролируется двумя свойствами: coordinate и anchorPoint. Если задано только coordinate, это указывает географическую координату долготы/широты для размещения элемента. Заданная координата будет выровнена с верхним левым углом содержащего элемента при отображении на экране.
Свойство anchorPoint позволяет выровнять координату с другими частями элемента, а не только с верхним левым углом, задав количество пикселей смещения элемента. Простой способ понять это - отметить, что точка, заданная свойством anchorPoint на самом элементе, будет выровнена с заданной координатой coordinate при отображении.
Помимо привязки к карте, MapQuickItem может необязательно следовать масштабу карты и изменять размер при приближении или отдалении от карты. Это поведение контролируется свойством zoomLevel. По умолчанию, если zoomLevel не установлен, элемент отображается «на экране», а не «на карте», так что его размер остается неизменным независимо от уровня масштабирования карты.
Производительность
Производительность MapQuickItem обычно соответствует производительности содержащего элемента Qt Quick. Добавленные накладные расходы включают в себя преобразование и (возможно) масштабирование исходного элемента, а также преобразование долготы и широты в координаты экрана.
Ограничения
Примечание: Из-за особенности реализации элементы, размещенные внутри MapQuickItem, будут иметь parent элемент, который не является MapQuickItem. Ссылайтесь на MapQuickItem по его id, и избегайте использования anchor в sourceItem.
Пример использования
Следующий фрагмент кода демонстрирует MapQuickItem, содержащий объект Image, для отображения маркера на карте. Эта стратегия используется для отображения маркеров карты в примере MapViewer.
MapQuickItem {
id: marker
anchorPoint.x: image.width/4
anchorPoint.y: image.height
sourceItem: Image {
id: image
}
} Документация по свойствам
anchorPoint : QPointF
Это свойство определяет, какая точка на sourceItem будет выровнена с координатой на карте.
coordinate : coordinate
Это свойство содержит координату привязки MapQuickItem. Точка на sourceItem, заданная свойством anchorPoint, сохраняется согласованной с этой координатой при отображении на карте.
На изображении ниже показаны 3 MapQuickItem, идентичных друг другу, за исключением значения их свойств anchorPoint. Значения anchorPoint для каждого элемента указаны над элементом.
sourceItem : объект
Это свойство содержит исходный элемент, который будет отображаться на карте.
zoomLevel : вещественное число
Это свойство контролирует поведение масштабирования содержимого MapQuickItem. В частности, установкой этого свойства можно выбрать, будут ли объекты отображаться на экране (и иметь размер в пикселях экрана) или на поверхности карты (изменяя размер при изменении уровня масштабирования карты).
Значение по умолчанию для этого свойства равно 0,0, что соответствует отображению объекта на поверхности экрана. Если задать другое значение, объект будет отображаться на поверхности карты вместо этого. Значение (если оно не равно нулю) определяет уровень масштабирования, при котором объект будет отображаться в масштабе 1:1 (то есть, где пиксели объекта и пиксели экрана совпадают). При уровнях масштабирования ниже этого, объект будет казаться меньше, а при более высоких уровнях масштабирования — больше. Это отличается от случая, когда это свойство равно нулю, где объект сохраняет тот же размер на экране на всех уровнях масштабирования.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.12/qml-qtlocation-mapquickitem.html