我創建了一個應用程序,用戶可以在其中使用疊加層在Google地圖上添加各種標記。我希望應用程序在用戶創建時保存疊加層,以便稍後重新打開應用程序時,標記將仍然存在。
目前,只要應用程序重新打開,創建的標記就會消失。我搜索了互聯網,並沒有清楚地瞭解如何將我的標記/疊加層保存爲脫機供以後使用。如何在Android應用程序中保存添加的Google地圖覆蓋圖?
5
A
回答
2
這只是一個想法,但你可以保存在數據庫中的標誌,當你重新打開你的地圖只是查詢數據庫,並把它再次在地圖上...
1
你應該使用一些持久性存儲。 SQLite可能是這裏最好的選擇。疊加層有他們的lat和lng。把它們和你需要的任何數據一起拿出來放在SQLite數據庫中。然後在Activity上,從數據庫中獲取點並在地圖上顯示它們。
3
如前所述,您需要使用some persistent storage。也許,數據庫在你的特定情況下會是多餘的(如果你只需要保存一堆經緯度對),並且Shared Preferences可以滿足你的需求。如果你很少需要讀取/存儲這些數據,然後把JSONArray
作爲字符串來共享偏好將是最簡單(在閱讀和提取數據計算)解決方案:
SharedPreferences.Editor editor = getSharedPreferences("name", 0).edit();
JSONArray jsonArr = new JSONArray();
JSONObject json;
for (int i = 0; i < user_markers.size(); i++) { // here I assume that user_markers is a list where you store markers added by user
json = new JSONObject();
json.put("lat", user_markers.get(i).getLat());
json.put("long", user_markers.get(i).getLong());
jsonArr.put(json);
}
editor.putString("markers", jsonArr.toString());
editor.commit();
如果您需要讀取/存儲這數據更頻繁一些,那麼你可以分配ID /索引來分離SharedPreferences的值,但這可能需要更復雜的提取方法。例如:
SharedPreferences.Editor editor = getSharedPreferences("name", 0).edit();
int id;
for (int i = 0; i < user_markers.size(); i++) { // here I assume that user_markers is a list where you store markers added by user
id = user_markers.get(i).getId(); // some Id here
// or simply id = i;
editor.putString("markers_lat_" + id, user_markers.get(i).getLat());
editor.putString("markers_long_" + id, user_markers.get(i).getLong());
}
editor.commit();
畢竟,你應該考慮使用數據庫,如果你打算存儲數據或結構複雜的大數據量。
0
相關問題
- 1. 如何覆蓋/刪除應用程序中保存的圖像
- 2. 如何在Qt中的應用程序中添加Google地圖?
- 3. 如何在android中的地圖上添加點(覆蓋)在地圖上
- 4. 使用opencv的Android應用程序:如何保存圖像而不覆蓋?
- 5. 在Android應用程序中添加許多保存的圖像
- 6. Android應用程序中的谷歌地圖v2操縱覆蓋
- 7. 如何在android中的其他視圖添加覆蓋視圖?
- 8. 如何添加加載覆蓋android應用程序
- 9. 如何添加Google Places API結果以覆蓋地圖?
- 10. 如何在外部Win32應用程序的窗口中添加WPF覆蓋圖?
- 11. 如何在Android視圖中添加半透明覆蓋圖?
- 12. Android,地圖覆蓋
- 13. Android地圖覆蓋
- 14. 如何在相機應用程序中添加矩形覆蓋圖?
- 15. 如何在Angular2應用程序中保護Google地圖密鑰?
- 16. 將Google地圖添加到Android應用程序
- 17. 如何添加固定的浮動覆蓋圖像谷歌Android中的地圖
- 18. Google Maps API地面覆蓋圖在應用程序中不起作用
- 19. 如何添加覆蓋視圖到cameraview並保存
- 20. 如何在Android Google地圖應用程序中搜索商店?
- 21. 覆蓋整個Google地圖的圖像
- 22. 有沒有辦法測試Google地圖覆蓋圖的存在?
- 23. 如何覆蓋android中的地圖視圖上的位圖?
- 24. 覆蓋添加到應用程序圖標,自定義啓動
- 25. 如何在數據庫中保存Google地圖疊加圖形?
- 26. Android:啓動Google地圖應用程序
- 27. 如何在android中的地圖上繪製覆蓋圖?
- 28. 從google地圖導入保存的地方到原生android應用程序
- 29. 添加OpenCV for Android的圖像覆蓋
- 30. Android應用程序在圖庫中保存和存儲圖像?
這是我也有試過在我的應用程序仍然工作GR8 :)這招的最佳方式 –