我创建了一个应用程序,用户可以在其中使用叠加层在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 :)这招的最佳方式 –