MapPolygon QML Type
MapPolygon 类型可在地图上显示一个多边形。更多内容...
| Import Statement: | import QtLocation 6.12 |
| Since: | QtLocation 5.5 |
- 所有成员列表,包括继承的成员
- MapPolygon 属于QML 地图插件。
属性
- autoFadeIn : bool
- border
- border.color : color
- border.width : int
- color : color
- path : list<coordinate>
- referenceSurface : enum
(since 6.5)
方法
- void addCoordinate(coordinate)
- void removeCoordinate(coordinate)
详细说明
MapPolygon 类型会在地图上显示一个多边形,该多边形由一个有序的coordinates 列表指定。为了获得最佳外观和效果,多边形应结构简单(无自相交)。
可随时使用 `addCoordinate ` 和 `removeCoordinate ` 方法添加或移除坐标。此外,这些坐标也可像 QML 中的其他列表元素一样进行修改:
mapPolygon.path[0].latitude = 5;若要绘制具有“直”边(即一条边的纬度值与另一条边的纬度值相同)的矩形,MapRectangle 类型提供了一个更简单的两点 API。
默认情况下,多边形显示为 1 像素宽的黑色边框,无填充色。要更改其外观,请使用color 、border.color 和border.width 属性。
注意:由于 MapPolygon 是地理对象,拖动 MapPolygon(通过使用MouseArea 或PointHandler )会导致其在地理坐标系中的顶点被重新计算。 边段将保持相同的地理长度(顶点之间的纬度和经度差),但仍保持直线状态。当对象被拖动到不同纬度时,会产生视觉上的拉伸效果。
使用示例
以下代码片段演示了如何使用 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。
border group
该属性属于“边框”属性组。该属性组包含用于绘制多边形边框的宽度和颜色。
宽度以像素为单位,且与地图的缩放级别无关。
默认值对应宽度为 1 像素的黑色边框。若不显示边框,请将宽度设为 0 或使用透明颜色。
color : color
该属性用于指定填充多边形的颜色。
默认值为透明。
path : list<coordinate>
该属性存储定义多边形的坐标的有序列表。如果路径中的不同坐标少于 3 个,将导致未定义行为。
另请参阅 addCoordinate 和removeCoordinate 。
referenceSurface : enum [since 6.5]
该属性用于确定多边形的参考表面。如果将其设置为QLocation::ReferenceSurface::Map ,则地图上多边形的顶点将通过直线连接;如果将其设置为QLocation::ReferenceSurface::Globe ,则顶点将沿大圆路径连接,该路径描述了球面上两点之间的最短连接路径。默认值为QLocation::ReferenceSurface::Map 。
该属性于 Qt 6.5 中引入。
方法文档
void addCoordinate(coordinate)
将指定的coordinate 添加到路径中。
另请参阅 removeCoordinate 和path 。
void removeCoordinate(coordinate)
从路径中移除coordinate 。如果存在多个相同的坐标,则移除最后添加的一个。
如果路径中不存在coordinate ,则此方法不执行任何操作。
另请参阅 addCoordinate 和path 。
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.