如何在我的Qt应用程序中添加Google地图?

如何在我的Qt应用程序中添加Google地图?,qt,google-maps,Qt,Google Maps,我正在开发一个应用程序,我需要将谷歌地图添加到我们的应用程序中。我在UI设计中使用Qt,而不是使用QML。是否有任何用于symbian的Qt API或任何要添加到我的应用程序端口的文件 QWebView *webView = new QWebView(parentWidget); webView->resize(1000,500); webView->move(10,10); QString gMapURL = "England"; // this i

我正在开发一个应用程序,我需要将谷歌地图添加到我们的应用程序中。我在UI设计中使用Qt,而不是使用QML。是否有任何用于symbian的Qt API或任何要添加到我的应用程序端口的文件

    QWebView *webView = new QWebView(parentWidget);
    webView->resize(1000,500);
    webView->move(10,10);
    QString gMapURL = "England"; // this is where you want to point
    gMapURL = "http://maps.google.com.sg/maps?q="+gMapURL+"&oe=utf-8&rls=org.mozilla:en-US:official&client=firefox-a&um=1&ie=UTF-8&hl=en&sa=N&tab=wl";
    webView->setUrl(QUrl(gMapURL));
这是一种在Qt中获取谷歌地图的廉价方法。也许,有一些更聪明的方法可以使用谷歌地图API网络服务来获得它。

我有一个非常小的项目(),它在qwebview中使用谷歌地图,并使用一些javascript进行交互

我一直在使用谷歌地图作为主要窗口小部件,在Qt中进行我的大学项目。基本上,最好将外部HTML文件加载到
QWebView
中,其中包含加载地图所需的javascript代码。此实践允许您在HTML文件中定义javascript函数,这些函数可以控制映射(标记等),然后可以在Qt代码中轻松调用映射。 不过有一个陷阱。当您将地图加载到QWebView小部件中时,您将根本无法与之交互。要解决此问题,您需要创建一个继承伪造用户代理的QWebPage的类,例如:

class myWebPage : virtual public QWebPage
{
    virtual QString userAgentForUrl(const QUrl& url) const
    {
        return "Chrome/1.0";
    }
};
您需要创建一个继承
QWebView
的类,并将该类的主页设置为该类的新实例
myWebPage

下一步是在设计器中添加
QWebView
小部件。将此小部件升级到您的自定义
QWebView
类。然后,您将拥有一个功能齐全的地图。

-qtapi for Google Maps-
发件人:

  • QML和Qt谷歌地图:

    本项目中使用的API功能:

    • 创建和调整映射
    • 创建放置标记(标记)
    • 转到placemark
  • Qt Google Places:

    本项目中使用的API功能:

    • 创建和调整映射
    • 自动完成搜索地址
    • 按地址获取坐标
    • 按名称、类型和位置搜索位置
    • 获取地点详细信息
    • 添加新用户位置
    • 删除用户位置
    • 添加新事件
    • 删除事件
  • QML&Qt谷歌纬度:

    本项目中使用的API功能:

    • 创建和调整映射
    • 创建放置标记(标记)
    • 获取当前位置
    • 插入当前位置
    • 获取位置的历史记录
    • 插入位置的历史记录
    • 转到地址

如果您可以使用其他地图提供商,现在有一个模块(在编写Qt 5.5时,目前是技术上的Previw)可以在这里渲染Mapbox和OpenStreetMap地图,您还可以为其他提供商创建自己的插件


尽管遗憾的是,谷歌地图不受支持,而且看起来完全是因为谷歌地图的条款和条件。

使用QWebView可能会起作用,但我不知道谷歌地图和您自己的代码之间是否可以进行交互

我的项目基于
qt谷歌地图
的代码。您仍然可以在Google代码存档中找到它:

我记得我必须做一点修改,因为代码基于GoogleMapsAPI的版本2,现在只支持版本3。但即使这样也很容易。我看到“新”代码现在也包含了版本3

在GitHub上,我还发现了一个新的应用程序,它一直处于活动状态,直到一年前,所以您可能有更多的机会在那里找到工作代码

在我的个人GitHub上,我决定继续使用QT4,与Google Maps的交互运行得很好,但是代码可能有点凌乱和不可理解,因为没有时间进行更深入的研究(很抱歉),所以最好开始。它有2012年的qt谷歌地图的基本版本,由我为谷歌地图APIv3更新(因此与我在这里发布的第一个链接会有一些不同),其中没有太多我的个人代码


你一定要读那本书。

我不确定。也许,你可以使用QWebView。你能给我解释一下吗?,,Lwin Htoo KoHi,我正在从解析的值中获取位置和地址。当我按下地图按钮时,我需要在地图上显示该位置!!在symbian的Qt中这可能吗???有人能帮我把API移植到项目中吗。。。你指的是哪种代码?我没有以上链接中的任何代码…我已经看到了此链接中的代码。。尝试将其移植到我的应用程序当我使用源代码时,我会得到谷歌地图,但当我将它们移植到我的应用程序时,它运行不正常…嗨,斯哈兹谢谢你的回答。。我会试着在某个时候让你知道…:)我试过你的项目,但在加载网页时总是出错。如果我把网络从谷歌地图改成谷歌地图,它甚至会出错。