标签: qtlocation

QT QML QtLocation 地图插件

我有自己的本地 Z/X/Y 地图图块服务器,并希望将其用作 QML 应用程序中的地图背景。查看示例代码,似乎这是通过以下方式完成的:-

 Plugin {
    id: osmPlugin
    name: "osm"
 }
Run Code Online (Sandbox Code Playgroud)

所以我需要编写自己的插件。但文档似乎很少,我找不到 osm 版本的源代码或安装说明。

这是相对容易做到的,还是可以在不编写新插件的情况下完成?

qt qml qtlocation

6
推荐指数
2
解决办法
5153
查看次数

QT 通过 C++ 添加映射 QML 项目

我尝试将 QML 地图项(例如 MapQuickItem 或 MapCircle)从 C++ 添加到我的地图中。不幸的是,他们没有出现在地图上。只需使用 QML 矩形即可使用相同的代码。rect v1 是用于测试其是否有效的矩形。rect v2 是不起作用的mapCircle。当我将圆 QML 代码 1:1 添加到地图 QML 代码中时,它工作正常。

主要.cpp

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQuickView *view = new QQuickView;
    view->setSource(QUrl("qrc:/map.qml"));

    QQmlComponent compRect (view->engine(), QUrl("qrc:/rect.qml"));

    view->setWidth(1000);
    view->setHeight(650);
    view->setTitle("GUI");


    QQuickItem *map = view->findChild<QQuickItem*>("map1");

    QQuickItem *rect = qobject_cast<QQuickItem*>(compRect.create(view->rootContext()));

    rect->setParentItem(map);
    rect->setParent(map); //know this is not for visual objects, just for test

    view->show();
    return app.exec();
}
Run Code Online (Sandbox Code Playgroud)

直方图.qml v1

import QtQuick 2.14
import QtLocation 5.14
import QtPositioning 5.14

Rectangle …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qtlocation

3
推荐指数
1
解决办法
3138
查看次数

Qt/Qml:地图元素的 Repeater 与 MapItemView

我想用QAbstractListModel. 似乎有两个 Qml 工具适合于此,MapItemView[1] 和Repeater[2]。更Repeater强大(例如,它允许嵌套模型) - 那么有什么理由使用 theMapItemView代替 a Repeater

问候,

[1] http://doc.qt.io/qt-5/qml-qtlocation-mapitemview.html

[2] http://doc.qt.io/qt-5/qml-qtquick-repeater.html

MapItemView源:http://code.qt.io/cgit/qt/qtlocation.git/tree/src/location/declarativemaps/qdeclarativegeomapitemview.cpp

转发器源:http://code.qt.io/cgit/qt/qtdeclarative.git/tree/src/quick/items/qquickrepeater.cpp

qt qml qtquick2 qtlocation

2
推荐指数
1
解决办法
1848
查看次数

需要 QtLocation OSM API 密钥

我正在使用 OSM 和 QML 应用程序的地图插件。我map.activeMapType = map.supportedMapTypes[currentIndex]在 ComboBox 中使用来在地图区域上显示地图提供程序支持的地图类型。这里地图插件使用"here.app_id""here.token"参数。但对于 OSM 插件,地形、交通和除街道地图图块之外的其他图块显示“需要 API 密钥”。我从Thunderforest.com获得了 API 密钥。使用该参数时,仍然显示“需要 API Key”:

   ComboBox {
            id: selectmap
            width: parent.width
            model:map.supportedMapTypes
            textRole:"description"
            onCurrentIndexChanged:{
                map.activeMapType = map.supportedMapTypes[currentIndex]
            }
        }
    Plugin {
            id: pluginOSM
            name: "osm"
            PluginParameter { 
                name: "osm.mapping.providersrepository.address"; 
                // name: "osm.geocoding.host"; (also didn't work)
                value: "https://tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey=<my_api_key>" }
        }
Run Code Online (Sandbox Code Playgroud)

截屏

我还从http://maps-redirect.qt.io/osm/5.8/站点下载了地形文件参数,以便与 qrc 一起使用,如下所示:

import QtQuick 2.6
import QtQuick.Controls 2.0
import QtLocation 5.12
import QtPositioning 5.12
ApplicationWindow{
    id: root
    width: …
Run Code Online (Sandbox Code Playgroud)

qt qml qtlocation

2
推荐指数
1
解决办法
3476
查看次数

带有 HERE 插件的 Qt Qml Map 如何正确使用 here.token 进行身份验证

我正在努力在 HERE 插件中进行身份验证。我使用的是带有 Qt 5.9.1 Mingw 32bit 的 Windows 10,我的应用程序几乎都是用 C++ 编写的。我使用 QML 的唯一部分是关于地图。我想使用 HERE 插件,但我是 QtLocation 和插件的新手,我真的不明白我需要做什么才能在 HERE 中进行身份验证。我试图按照 HERE 网站上的指南进行操作,但我真的无法理解。

我从 qt 知道我必须用来验证 HERE 的代码如下:

Plugin {
    name: "here"
    PluginParameter { name: "here.app_id"; value: "myapp" }
    PluginParameter { name: "here.token"; value: "abcdefg12345" }
}
Run Code Online (Sandbox Code Playgroud)

所以我需要here.app_idhere.token

我在 HERE 站点上创建了一个帐户,并使用 REST 创建了一个项目。所以现在我有了我的APP ID参数,但我真的不明白如何将TOKEN值放入第二行。首先,对于我的具体情况,我需要创建一个 api 密钥还是一个 OAuth 2.0?

我尝试使用 Postman遵循此链接中所写的内容,最后我得到了一个非常长的tokoen,我将其复制并放入“here.token”参数中,但是当我运行该应用程序时,它给了我Invalid here.token和它不显示地图。

有人可以给我任何有关如何正确获取令牌值的提示吗?或者有人可以指点我一些链接吗?例如,是否有不同的方式使用 api 密钥而不是令牌登录?

- …

qt qml here-api qtlocation here-maps-rest

1
推荐指数
1
解决办法
738
查看次数

标签 统计

qml ×5

qt ×5

qtlocation ×5

c++ ×1

here-api ×1

here-maps-rest ×1

qtquick2 ×1