问题标签 [qtlocation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - 带有 HERE 插件的 Qt Qml Map 如何正确使用 here.token 进行身份验证
我正在努力在 HERE 插件中进行身份验证。我正在使用带有 Qt 5.9.1 Mingw 32bit 的 Windows 10,我的应用程序几乎都是用 C++ 编写的。我使用 QML 的唯一部分是关于地图。我想使用 HERE 插件,但我是 QtLocation 和插件的新手,我真的不明白我需要做什么才能在 HERE 中进行身份验证。我试图按照 HERE 网站上的指南进行操作,但我真的无法理解。
我从 qt 知道我必须用来在 HERE 上进行认证的代码如下:
所以我需要here.app_id和here.token。
我在 HERE 网站上创建了一个帐户,并使用 REST 创建了一个项目。所以现在我有了我的APP ID参数,但我真的不明白如何将TOKEN值放入第二行。首先,对于我的具体情况,我需要创建一个 api 密钥还是 OAuth 2.0?
我尝试使用 Postman 遵循此链接中所写的内容,最后我得到了一个非常长的令牌,我复制并放入了“here.token”参数,但是当我运行应用程序时,它给了我Invalid here.token和它不显示地图。
有人可以给我有关如何正确获取令牌值的任何提示吗?或者有人可以指点我一些链接吗?是否有其他方法可以使用 api 密钥而不是令牌进行登录?
- - - - - - - - 更新 - - - - - - - - - - - - - - - - - ------
过了一段时间,我不得不回到这个我从未解决过的问题上:现在的情况是我设法通过邮递员获得了令牌,但它总是无效的。现在我正在使用 Qt 5.15.2 和 MinGw 64 位。
我正在使用修改的 minimum_map 示例添加 here.app_id 和 here.token 参数。
main.qml
问题是当我运行应用程序时,输出如下:
为了获得令牌,我做了以下事情:
- 我在 developer.here 网站上注册了一个免费增值计划并创建了一个项目。
- 我创建了一个 REST API 和一个 OAuth 2.0(JSON Web 令牌),如下所示(我保存了我在 3. 步骤中使用的 credentials.properties 文件):
- 我下载了 Postman,创建了一个帐户,然后按照这个问题的答案中的说明进行操作。我收到了这样的 json 格式的响应 :
- 我进入了我的 minimum_map 示例,并将在我发布的第一张图片中显示的 APP ID 值设置为 app_id(而不是“xxxxx”),并设置为 here.token(而不是“yyyyyy”)在来自邮差。
- 我试图清理项目,删除构建文件夹但没有任何改变,答案总是:
我缺少什么来获得在 Qt 中显示此处插件的令牌?
c++ - C++ 中的 QT QML 模型 - 地图渲染问题
我正在构建一个应用程序来在地图上创建和编辑 gpx 文件。我希望能够从单个模型中渲染一条线和一组标记。
每个 GPX 点都有一个坐标、高度和时间。我的目标是创建一个模型,该模型可用于在地图上显示它并显示高程剖面。
为了使我的模型基于 GPX 点的结构,我已经修改了这个问题的答案QT QmlMap PolyLine not updated proper when based model changes 。
主程序
主窗口.qml
地图标记.h
我认为我在某处犯了一个非常基本的错误,因为我可以单击地图并绘制一条折线,但MapCircles 没有呈现。我看到了错误:-
当我第一次点击地图时。
我是否误解了 Qt QML 中模型/角色的工作方式?
qt - 需要 QtLocation OSM API 密钥
我正在使用 OSM 和这里的 QML 应用程序的地图插件。我map.activeMapType = map.supportedMapTypes[currentIndex]
在 ComboBox 中使用以在地图区域上显示来自地图提供者的支持的地图类型。这里地图插件使用"here.app_id"
和"here.token"
参数。但是对于 OSM 插件,Terrain、transit 和除街道地图图块外的其他图块显示“需要 API 密钥”。我从Thunderforest.com获得了 API 密钥。使用该参数时,仍然显示“API Key Required”:
我还从http://maps-redirect.qt.io/osm/5.8/站点下载了地形文件参数,以便与 qrc 一起使用,如下所示:
在地形文件中,我将参数更新为"UrlTemplate" : "https://tile.thunderforest.com/landscape/{z}/{x}/{y}.png?apikey=<api-key>",
这不起作用,自定义地图视图为空。是否可以使用 API 密钥将其删除?谢谢
qt - 如何为支持的地图类型保存 ComboBox 的当前索引
我尝试保存 ComboBox 的索引以选择支持的 Open Street Map 地图类型。再次打开应用程序时,应显示最后选择的地图索引。Qt.labs.settings
没有像下面的例子那样工作:
是否可以为地图保存 ComboBox 的当前索引?
qt - Qt 位置编辑 MapPolyLine
我的目标是允许用户编辑 MapPolyLine 使用鼠标拖放在线上的点。我通过创建一个 C++ 模型来实现这一点,该模型公开了一个path()方法,用于转储所有点以绘制线。
然后我使用这个模型为线上的每个顶点显示一组 MapCircles。这些 Mapcircles 具有在拖动完成后更新 MapPolyLine 模型的拖动事件。
这适用于 < 500 个顶点的线。然后性能受到非常严重的影响。我的一些行(来自 GPX 文件)有 10,000 个顶点。
所以我试图只在靠近鼠标悬停点的线上暴露 MapCircles。但是(除非我弄错了) MapPolyLine 的 MouseArea 似乎是线的边界框,并且可以在奇怪的情况下触发悬停。
我发现onEntered事件运行良好,足以让我计算出线上的位置,然后显示一组靠近该位置的 MapCircles。这是一个次优的解决方案,因为用户必须主动单击该线才能显示这些 MapCircles。
我的问题是:“我是否使用正确的策略来允许编辑 MapPolyLine? ”。在当前的 QtLocation 实现中,我看不到任何其他方法。
代码现在相当复杂。它的结构是:-
该项目在https://github.com/citizenfish/servalan_2020上开源,但需要注意的是,我将其用作学习练习,所以它有点被破解了。
编辑:我不想使用基于 webview 的解决方案。该项目的重点是在本机 Qt 中执行此操作,而对第三方 javascript 库/浏览器的依赖最小。
android - 菜单在中心而不是被触摸的地方弹出
尝试在地图上创建菜单时,在 Android 上使用 onPressAndHold 时,菜单会在地图中心弹出,而不是在地图上触摸的位置。但是,相同的代码在桌面(Ubuntu)上可以正常工作。当在地图上按住鼠标时,菜单会从 Ubuntu 上的鼠标位置弹出。我还在 Qt 5.13 中尝试了 Map Viewer 示例,它是一样的。是否可以修复 Android 的菜单位置?谢谢。
qt - 如何从 Qt QML Map 访问 WMS 或 WMTS
我想知道是否可以从 QML 地图访问Web Map Service或Web Map Tile Service 。据我所知,没有可用的地理服务插件,所以我猜它需要开发。
WMTS 可能类似于:http://mt0.google.com/vt/lyrs=s&hl=en&x={x}&y={y}&z={z}
或https://c.tile.openstreetmap.org/{z}/{x}/{y}.png
.
我的 QML 地图的代码很简单:
我没有找到任何可用的解决方案来解决这个问题。那么,如何编写一个基于 (x,y,z) 三元组执行 WMTS 请求的地理服务插件?
r - 将 .RData 导出为 R 中的 CSV
我想将包“qtl”中的 fake.bc.Rdata 导出到 CSV 中,并且在运行“summary”时它显示这是一个“cross”类的对象,这使我无法转换它。我尝试使用重新保存,但有警告:无法将类'c(“bc”,“cross”)'强制转换为data.frame。
提前感谢大家的帮助!
qt - 聚类 QtLocation 标记技术
目前,我正在使用这个基于 VTK 框架的项目https://github.com/OpenGeoscience/vtkMap来制作一个滑动地图,我可以在其中添加标记并将它们分组到集群中。我已经为该项目做出了贡献,但其中仍然存在错误,并且不符合我的要求(在视觉方面)。
所以,我想使用 Qt 映射而不是 vtkMap,但我没有找到创建标记集群的方法/示例。显然,这是一项复杂的任务(因为我已经修复了 vtkMap 集群系统中的一些错误),我想知道人们如何使用 QtLocation/QML 处理这个问题。
c++ - QtLocation Map 中有 3-D 映射吗?
我从事 qml 地图项目并使用 osm 插件进行离线地图显示。这是一些关于它的代码。
我必须显示 3D glope 地图,但我没有任何关于它的文档/教程。有人可以帮助我如何在 QML Map 中制作 3D 地图。你能帮我吗?