Тип QML MapQuickItem
Тип MapQuickItem отображает произвольный объект Qt Quick на карте. Подробнее...
| Заявление об импорте: | import QtLocation 5.11 |
| С тех пор: | QtLocation 5.5 |
Свойства
- anchorPoint : QPointF
- 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 : координата
Это свойство содержит координаты привязки 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/archives/qt-5.11/qml-qtlocation-mapquickitem.html