2012-08-26 61 views
4

Android與版本(4+?)引入了離線地圖,我可以在手機上選擇要緩存的區域,然後Google地圖下載地圖數據在手機上。應用程序如何使用Android 4+的Google離線地圖?

因爲我收到了一條評論:我想使用已經在我的設備上的數據(如果用戶已經完成了之前用於離線地圖下載的數據)。並且不會向Google的服務器開放新的數據連接(例如,因爲數據收費將適用)。

我可以在我的應用程序中使用該地圖數據 - 例如通過發送地圖應用程序的意圖顯示一個區域(也許與覆蓋)? 或甚至使用我的應用程序內的地圖部件?

我說的不是下載從谷歌服務器的一些瓦片到我的應用程序

+0

你說你不是在談論從Google服務器上下載一些圖塊到你的應用中,但這正是你說的「離線地圖」所做的。無論如何,這是一個法律問題嗎?你問是否可以偷小偷嗎? ;-) – Marcelo

+0

通過意圖顯示可能是可能的,但您不能在您的應用程序中使用該數據。 – Gogu

+0

+ Marcelo:我說我想要使用Google地圖應用已下載的圖塊。 –

回答

3

能否使用,從我的應用程序內的地圖數據 - 例如通過發送地圖應用程序的意圖顯示一個區域(也許與覆蓋)?

好了,你可以調用使用ACTION_VIEWgeo:Intent地圖應用。是否會查看某個緩存區域取決於用戶使用的地圖應用程序以及用戶是否緩存了指定經度和緯度附近的區域。

或甚至使用我的應用程序內的地圖部件?

儘管您可以將MapView集成到您的應用中,但它不會使用此緩存數據。部分原因是,這是因爲MapView代碼早於任何這種緩存內容。部分原因是,這是因爲緩存數據由另一個進程(地圖應用程序)擁有,因此您無法訪問。

+0

我沒有看到geo:intent支持任何標記或覆蓋。否則,觸發地圖應用程序似乎工作,當然用戶將不得不先下載數據:) –

+0

@HeikoRupp:「我看不到地理:意圖支持任何標記或覆蓋」 - 正確。如果你想在地圖上繪圖,你需要'MapView',在這種情況下你會失去離線緩存。或者,切換到其他提供自己緩存的映射解決方案(例如,OpenStreetMap和OSMDroid)。 – CommonsWare

+0

我知道OSM,但實際上這意味着用戶需要額外的步驟。看起來我/我們「只是」需要等待Google解決問題。 –

相關問題