2013-12-10 109 views
-1

我想開發一個android程序,可以在不使用互聯網的情況下找到最近的醫院的位置。相反,我希望它在android設備上使用存儲的地圖。這是可行的嗎?如果是這樣,任何人都可以引用我的代碼?使用存儲的地圖尋找最近的醫院

我成功開發了一個類似的程序,使用谷歌API,這意味着它將聯繫服務器並使用互聯網。我重用了this鏈接中的源代碼。

但是在某些情況下,我的用戶可能無法訪問互聯網,並且找到最近的醫院是緊急的。我該如何解決這個問題?

回答

1

另一個更簡單的解決方案是將每家醫院的座標存儲在一個文件中。 在應用程序啓動讀取文件中

可能的文件格式:

Hospital Name, latitude, longitude, Adress Optional 

然後簡單的計算視距線使用CLLocation distanceTo()所有醫院。然後按距離排序。

以最短。 雖然這不是道路距離,但只要沒有河流或鐵路,就可以工作。

+0

存儲你手動提到的信息是我唯一的選擇。在線數據庫包含所有地方,文件非常龐大。它在解析XML時導致Java從堆內存中移出。 –

0

這絕對有可能。 您需要使用離線地圖數據 - 您可以從OpenStreetMap項目獲取地圖數據。我建議讓用戶在初次安裝應用程序後選擇要下載的區域,然後數據將始終可用。

稍後,位置API的使用不需要互聯網連接。你會得到座標,你可以用它來計算與其他座標(醫院的距離)的距離。

顯然,您的挑戰將是創建一個醫院位置的硬編碼列表(儘管可以更新,確保應用程序可以在互聯網存在時下載新列表,例如下載XML文件)。

+0

在OpenStreetMap中,我可以訪問完整的數據庫文件(31 GB)。我現在只需要爲我的國家提供一個文件。你能給我提供任何鏈接嗎?我需要每家醫院的經度,緯度和附近地區。 –