2011-12-15 107 views
14

我正在開發一個應用程序,我需要將Google地圖添加到我們的應用程序中。我正在使用Qt與UI設計,我沒有使用QML。是否有任何Symbian的Qt的API或任何文件被添加到端口到我的應用程序?如何在Qt中的應用程序中添加Google地圖?

+0

我不確定。也許,你可以使用QWebView。 – 2011-12-15 05:53:18

+0

你會解釋我更多請,。,。Lwin Htoo Ko – Naufal 2011-12-15 06:23:22

回答

3
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中獲取谷歌地圖的廉價方式。也許,有一些更智能的方法可以使用Google Maps API Web服務獲取它。 http://code.google.com/apis/maps/documentation/webservices/index.html

+0

嗨,我得到的位置和解析值的地址。當我按下地圖按鈕時,我需要在地圖中顯示該位置!這是可能的Qt symbian ???任何人都可以幫助我的API將其移植到項目中 – Naufal 2011-12-15 09:05:09

0

我有一個使用谷歌地圖在qwebview和一些JavaScript交互

2

我已經在我的Qt中的大學項目中使用谷歌地圖作爲主要部件的工作一個非常小的項目(https://github.com/skhaz/qtgps)。基本上,最好將外部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的實例。 下一步是在Designer中添加一個QWebView小部件。將此小部件推廣到您的自定義QWebView類。然後您將擁有功能完備的地圖。

8

-Qt API的谷歌Maps-
來源:http://www.ics.com/technologies/qt_google_apis

0

如果你可以用其他的地圖供應商,現在有QtLocation模塊(目前技術Previw作爲寫作的Qt 5.5的時間)可以渲染HERE,Mapbox和OpenStreetMap地圖,也可以爲其他提供商創建自己的插件。

雖然很遺憾,Google地圖不受支持,並且由於Google地圖條款&的條件,看起來像it's not going to happen

1

使用QWebView可能可行,但我不知道Google地圖和自己的代碼之間是否可以進行交互。

我的項目是基於qt-google-maps的代碼。您還可以在谷歌代碼歸檔找到它:

我記得我不得不改變一點點,因爲代碼是基於谷歌地圖的版本2 API,現在只支持版本3。但即使這很容易。我看到「新」代碼現在也包含了版本3。

在GitHub上,我還發現它的一個project that uses the code, but made a QT5-version,它一直活躍到一年前,所以可能你有更多的機會在那裏找到工作代碼。

在我個人的GitHub上,我決定繼續使用QT4,並且與Google Maps的交互運行非常好。 Here is the latest version,但代碼可能有點混亂和難以理解,因爲缺乏更深入的工作時間(對不起),所以最好啓動from this commit。它具有2012年的基本版本的qt-google-maps,由Google Maps APIv3更新(因此與我在此發佈的第一個鏈接會有一些差異),並且我的個人代碼不會太多。

請務必閱讀compile instructions

相關問題