gpt4 book ai didi

android - 如何在 Android 应用程序中保存添加的谷歌地图叠加层?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:34:03 26 4
gpt4 key购买 nike

我创建了一个应用程序,用户可以在其中使用叠加层在谷歌地图上添加各种标记。我希望应用程序在用户创建叠加层时保存它,这样当他们稍后重新打开应用程序时,标记仍然存在。
目前,只要重新打开应用程序,创建的标记就会消失。我已经在互联网上搜索过,但并没有清楚地了解如何离线保存我的标记/叠加层以供日后使用。

最佳答案

如前所述,您需要使用 some persistent storage .也许,数据库在您的特定情况下会过多(如果您只需要保存一堆经纬度对),而共享首选项将满足您的需求。如果您很少需要读取/存储此数据,那么将 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();

如果您需要更频繁地读取/存储此数据,那么您可以分配 ids/索引来分隔 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();

毕竟,如果您计划存储大量数据或结构复杂的数据,您应该考虑使用数据库。

关于android - 如何在 Android 应用程序中保存添加的谷歌地图叠加层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7549656/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com