2013-07-11 197 views
14

起初我知道在StackOverflow有幾個類似的問題。當然,我使用地理方案來尋址可以由其他應用程序處理的點。意圖谷歌地圖7.0.0的位置

像的例子中Android documentation(順便說一下,似乎已經過時出來的RFC!)我試圖用這樣的:

geo:50.95144,6.98725?q=50.95144,6.98725%20(Disneyland) 

所以我得到一個意向選擇器,我可以選擇一個應用程序,它顯示了Google地圖迪斯尼樂園上帶有標記的應用程序。現在看起來安裝了一個更新,可以消除這種支持。我只是得到這個地方無法找到的消息。

我試圖理解定義'地理'URI方案的RFC 5870。我不明白。定義一個標籤是不可能的,這是正確的?

如何將現在的位置鏈接到Google地圖?

+0

測試通過我在談論谷歌地圖7.0.0(#700002512)的方式,最新的谷歌地圖V7.1,我不知道爲什麼這隻適用於Nexus 7。 – rekire

+0

我的N4上使用新地圖應用程序也是如此。他們刪除了搜索確切的地理位置。您只需獲取Google知道的下一個地址即可。 :( – flx

+0

它變得更好了:webapp現在知道像'迪士尼樂園@ 50.95144,6.98725)的查詢。 Android應用可以在野外共享標記時創建這些查詢。 ?但它不能解析這些查詢本身.. :( – flx

回答

13

的WhatsApp的意圖是:

START U0 {行爲= android.intent.action.VIEW 貓= [android.intent.category.BROWSABLE] DAT = https://maps.google.com/maps?q=loc:lat,lng+(You)&rlz=1Y1TXLS_enDE543DE543 FLG = 0x3000000 CMP = com的.android.browser/.BrowserActivity(有演員)} 從PID 2115

因此,如果您使用以下意圖URI:

String geoUri = "http://maps.google.com/maps?q=loc:" + lat + "," + lng + " (" + mTitle + ")";

...它應該表現得像WhatsApp的。此外,似乎其他一些地理應用程序也觸發了此意圖。但它不適用於所有地理應用程序!

+0

不爲我工作在S3上,股票4.1.2,谷歌地圖v 7.0.2 –

+2

對不起,我遲到答案...有一個與十進制標記的錯誤。這個技巧只適用於帶點作爲小數點分隔符的語言環境。在使用逗號作爲小數點分隔符的語言環境中,點被替換爲導致無效URL的逗號。 但這個錯誤是固定與V7.2所以它應該與各個地區現在的工作。 – cradle

1

就像在Android文檔的例子(順便說一下,似乎已經過時的RFC吧!)我試圖用這樣的

文檔中的四個樣本結構是:

geo:latitude,longitude 
geo:latitude,longitude?z=zoom 
geo:0,0?q=my+street+address 
geo:0,0?q=business+near+city 

你會發現,這些都不在括號中的「標籤」,從Uri的其餘部分用空格隔開。

現在看來,更新安裝這將刪除支持

這種「支持」,如果它之前就已經存在,沒有記錄,你不應該在它依託。您還會注意到,有針對Android 許多地圖應用,其中任何一個用戶可以選擇一個geo:Intent - 你測試所有這些,看看你的無證能力在所有這些工作?

這是正確的,根本不可能定義一個標籤?

我在該RFC中看不到任何有關您的標籤在括號中的標籤的證據。雖然,我同意這些IETF RFC往往難以閱讀。

如何將現在的位置鏈接到Google地圖?

拖放到標籤功能於括號:

geo:50.95144,6.98725?q=50.95144,6.98725 

而且,由於你不需要?一部分了,你可以使用:

geo:50.95144,6.98725 

如果你真正的問題是「我現在怎麼能把一個位置連接到谷歌地圖,並讓它顯示我自己的標籤」,可能你不能。

歡迎您嵌入一個映射引擎到你的應用程序(例如,谷歌的地圖V2爲Android),在這種情況下,你可以標記的地圖與該引擎的API爲它的極限。我希望任何嚴肅的映射引擎都支持添加標記和某種標籤。

+0

AFIK WhatsApp的使用過的一些意圖,直接打開谷歌地圖與指針和拉布勒。我能想象如何強制打開谷歌地圖,但我不我不知道如何強制這個標籤,我更喜歡一些允許導航的語法ation軟件導航到這一點。 – rekire

+0

@rekire:「WhatsApp的使用過的一些意圖,直接打開谷歌地圖與指針和拉布勒」 - 如果爲true,WhatsApp的開發者憎恨他們的用戶,因爲不是所有的用戶都希望使用谷歌地圖,即使谷歌地圖是安裝在設備上。沒有明智的開發者應該「強制開放Google地圖」。 – CommonsWare

+0

我完全同意你的看法。我不想將我的應用綁定到Google地圖。我只想知道他們是如何執行這些標籤的。 – rekire

2

這是工作對我的Nexus 4

public static void launchGoogleMaps(Context context, double latitude, double longitude, String label) { 
     String format = "geo:0,0?q=" + Double.toString(latitude) + "," + Double.toString(longitude) + "(" + label + ")"; 
     Uri uri = Uri.parse(format); 
     Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
     intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     context.startActivity(intent); 
} 
+0

看來你是對的他們修正了這個錯誤。奇怪的是,只有我使用地圖7.2和最不工作的時間。 – rekire