Cómo guardar agregados google mapas superposiciones en una aplicación para Android?

He creado una aplicación en la que los usuarios pueden agregar varios marcadores en google maps mediante superposiciones. Quiero que la aplicación guarde la superposición cuando el usuario la cree para que cuando vuelva a abrir la aplicación, los marcadores seguirán estando presentes.
Actualmente, cada vez que se vuelve a abrir la aplicación, los marcadores creados se han ido. He buscado el Internet y no he conseguido una comprensión clara de cómo ahorrar mis marcadores / overlays fuera de línea para un uso más adelante.

4 Solutions collect form web for “Cómo guardar agregados google mapas superposiciones en una aplicación para Android?”

Como se mencionó, es necesario utilizar un almacenamiento persistente . Tal vez, la base de datos sería un exceso en su caso particular (si sólo necesita guardar un montón de pares longitud-latitud), y las preferencias compartidas se ajustan a sus necesidades. Si rara vez necesita leer / almacenar estos datos, entonces poner JSONArray como una cadena de preferencias compartidas sería la más simple (en términos de lectura y extracción de datos) de la solución:

  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(); 

Si necesita leer / almacenar estos datos un poco más a menudo, puede asignar ids / índices para separar los valores de SharedPreferences, pero esto puede requerir un método de extracción más complicado. Por ejemplo:

  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(); 

Después de todo, usted debe considerar el uso de la base de datos si va a almacenar gran cantidad de datos o datos de estructura complicada.

Es sólo una idea, pero puede guardar sus marcadores en la base de datos y cuando vuelva a abrir su mapa sólo consulta la base de datos y ponerlo en el mapa de nuevo …

Debería utilizar un almacenamiento persistente. SQLite probablemente sería la mejor opción aquí. Las superposiciones tienen su lat y lng. Apenas consígalos y cualquier dato que usted necesita junto con ellos y ponga todos éstos en la base de datos de SQLite. A continuación, en Inicio de actividad obtener los puntos de la base de datos y mostrarlos en el mapa.

Utilice una base de datos SQLite para guardar los datos de usuario. Son simples y para una gran cantidad de datos son mejores que SharedPreferences.

Más información

Ejemplo

  • No se puede lanzar el proyecto de la biblioteca de Android?
  • Cómo mover camra a un marcador específico en google maps v2 en android
  • ¿Cómo obtener la ubicación actual en Google Maps Android API v2?
  • ¿Puedo obtener el código fuente de la aplicación Google Maps de Android?
  • Almacenamiento en caché de Google Maps en MapActivity
  • Atributos Xml en Android Google Maps no funciona con AndroidStudio
  • ¿Cómo puedo cambiar el color de los clústeres en mi mapa de Google para Android?
  • Obtener indicaciones para llegar con la API de Google Maps v2
  • ¿Cómo persistir Marcador de Google API Android v2?
  • Uso de Google MapView v2 en Live Wallpaper
  • Google maps V2 - Error de autorización, no puedo mostrar el mapa
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.