ユーザーは、オーバーレイを使用してGoogleマップにさまざまなマーカーを追加できるアプリを作成しました。私は、ユーザーがそれを作成したときにアプリケーションがオーバーレイを保存して、後でアプリケーションを開いたときにマーカーがまだ存在するようにしたい。
現在のところ、アプリが再オープンされると、作成されたマーカーは消えてしまいます。私はインターネットを検索し、後で使用するためにマーカー/オーバーレイをオフラインで保存する方法を明確に理解していません。追加したGoogleマップのオーバーレイをアンドロイドアプリに保存するにはどうすればよいですか?
5
A
答えて
2
それはちょうどアイデア
ていますが、データベース内のマーカーを保存して、あなたのマップを再び開いたときにだけデータベースを照会し、再び地図上に置くことができる...
1
あなたは、いくつかの永続ストレージを使用する必要があります。 SQLiteはおそらくここでは最適なオプションです。オーバーレイにはlatとlngがあります。それらを取得し、それらと一緒に必要なデータをすべて取得し、これらすべてをSQLiteデータベースに格納します。アクティビティを開始すると、データベースからポイントを取得し、マップ上に表示します。
3
前述のとおり、some persistent storageを使用する必要があります。おそらくデータベースはあなたの特定のケースでは超過しています(経度と緯度のペアを単純に保存する必要がある場合)、共有環境設定がニーズに合っています。あなたは/ストアこれを読むために必要がある場合は
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();
:あなたはめったに/ストアこのデータを読む必要がない場合は、共有設定を文字列としてJSONArray
を置くことは最も簡単な(読書の面で、データを抽出する)解決策になりますデータをもう少し頻繁に使用すると、ids/indexesを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. Googleマップ:マップの横にアドレスのリストを追加するにはどうすればよいですか?
- 2. GoogleマップAPIから返された結果を保存するにはどうすればよいですか?
- 3. ポリライン(Googleマップ)をデータベースに保存するにはどうすればよいでしょうか?
- 4. Googleマップのv2で現在のロカトンにマーカーを追加するにはどうすればよいですか?
- 5. Googleマップに複数のマーカーをプログラムで追加するにはどうすればよいですか?
- 6. Androidスタジオのギャラリーにテキストをオーバーレイしてイメージを保存するにはどうすればよいですか?
- 7. GoogleマップのPolyLineオーバーレイでクリックイベントを検出するにはどうすればよいですか?
- 8. Googleマップにhtmlフォームを追加するにはどうすればよいですか?
- 9. Googleマップをdojoxモバイルビューに追加するにはどうすればよいですか?
- 10. アンドロイドでGoogleマップ上でクリック可能なアイコンを追加するにはどうすればよいですか?
- 11. Googleマップで複数のオーバーレイを切り替えるにはどうすればよいですか?
- 12. Googleマップ地上オーバーレイの座標を見つけるにはどうすればよいですか?
- 13. Googleマップの横にCSSテーブルを追加するにはどうすればいいですか?
- 14. 追加のスタイルを追加するだけで、クリップで保存された画像を再加工するにはどうすればよいですか?
- 15. 既存のCSVファイルに追加の列を追加するにはどうすればよいですか?
- 16. カメラアプリケーションに長方形のオーバーレイを追加するにはどうすればよいですか?
- 17. マップの押し出しコンテンツに改行を追加するにはどうすればよいですか?
- 18. 地図上にオーバーレイ表示を追加するにはどうすればよいですか?
- 19. Googleマップのグループアドレスを一緒にしないようにするにはどうすればいいですか?
- 20. Googleマップを移動するにはどうすればよいですか?
- 21. パンニング時にGoogleマップが移動しないようにするにはどうすればよいですか?
- 22. マップ機能を使用してリストに追加するにはどうすればよいですか?
- 23. 既存のxmlファイルに新しいプロパティを追加するにはどうすればよいですか?
- 24. マップ上でアイテム化されたオーバーレイを制御するにはどうすればいいですか?
- 25. オーバーレイ経由で追加されなかったクリックしたマーカーに関する情報を取得するにはどうすればよいですか?
- 26. 既存の依存関係プロパティコールバックにロジックを追加するにはどうすればよいですか?
- 27. データベースに保存されるDjangoフィールドに追加の説明を追加するにはどうすればよいですか?
- 28. データベースにデータを保存するにはどうすればよいですか?
- 29. JSONをレディスに保存するにはどうすればよいですか?
- 30. NSUSerDefaultsにMPMediaItemCollectionを保存するにはどうすればよいですか?
これは私もまだGR8作業私のアプリでこのトリックを試してみましたが、最良の方法です:) –