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