【问题标题】:Qt QML - create my own shape in Qt LocationQt QML - 在 Qt Location 中创建我自己的形状
【发布时间】:2017-12-18 06:02:59
【问题描述】:

我目前正在开发一个提供地图查看器的 Qt Quick 应用程序。我想创建不规则形状(多个形状),然后将它们放在地图上。使用 QQuickPaintedItem (Writing QML Extensions with C++) 是否可以做到这一点,或者还有其他方法可以做到这一点吗? 还是在 Map Viewer 中创建我自己的形状,例如 MapCircle(例如 MapCustom)?

【问题讨论】:

  • 不规则形状是什么意思?为什么不用MapPolygon?
  • 感谢您的评论(@eyllanesc),我想使用多个不规则形状(所有形状都具有相同的形状),而不是在 Qml 映射中重复它们(因为性能不佳),我想将它们全部绘制在一个 QQucikItem 中。
  • 如果你想从 C++ 创建你的项目,合适的选项是 QQuickPaintedItem。你期待什么样的答案?
  • 首先我找到了合适的方式(我得到了答案),其次,如何将不规则形状的位置转换为 Qt 位置坐标?
  • 你应该继承自 QDeclarativeGeoMapItemView 类,但这是 Qt 私有部分中的一个类。

标签: qt qml qquickitem qtlocation


【解决方案1】:

如果您的形状不必进行地理参考(例如顶点不必是实际的地理坐标),但您只是想要一个看起来特别的占位符,您可能想给 QtQuick Shapes 一个机会

【讨论】:

  • 但是@Paul 我想创建我自己的从 GeoMapItemView 派生的形状。
  • @Behzad 请再次阅读您的评论 :-) 您确定要重新实现 QGeoMapItemView 吗?这是一个默认不绘制任何内容但需要委托的视图。如果您的意思是创建您自己的派生自 QGeoMapItemBase 的形状,那么您应该更具体地了解您的用例。是否应该进行地理参考?你能举个例子吗?
  • 你说得对@Paul,我的评论有点含糊。我想在 QML 中创建一千个形状作为一个项目,应该进行地理参考。换句话说,我不想在 Qml 地图中重复我的形状(因为性能不佳),而是想将我的所有形状创建为一个项目并将其显示在地图上。我还想将我的项目与地图同步(移动、缩放等)。这就是为什么它应该被地理参考。
  • 听起来你需要的是一种 MultiPolygon 对象,你可以在同一个项目中有多个单独的路径?你的形状必须有多动态?一旦创建,它们应该是静态的吗?
  • 我所有的形状都必须是动态的。我考虑将我的地图项锚定为填充父级(主地图)(在整个地图上单独分层)。因此,我可以在地图上将我所有的一千个形状作为一个项目绘制,而不是重复它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-25
  • 1970-01-01
  • 2017-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多