2017-07-11 8 views
0

私は、ボレーを使用してサーバーからいくつかのマーカーを読み込みます。私はそれらをクリアすることができますマーカーを保存するには?

マップ上に新しいマーカーを追加することはできますが、データベースからマーカーを削除するとマップから削除されません。

サーバーから読み込む前にclear()を使用してマップから削除するマーカーをすべて保存するにはどうすればよいですか?

ArrayList<MapsActivity_listitem> MyMarkers = new ArrayList<MapsActivity_listitem>(); 
    RequestQueue requestQueue; 




requestQueue = Volley.newRequestQueue(this); 
     JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, url, 
       new Response.Listener<JSONObject>() { 
        @Override 
        public void onResponse(JSONObject response) { 

         try { 
JSONArray jsonArray = response.getJSONArray("mymarkers"); 



          for (int i = 0; i < jsonArray.length(); i++) { 
           JSONObject respons = jsonArray.getJSONObject(i); 
           int id = Integer.parseInt(respons.getString("id")); 
       - - - 

MyMarkers.add(new MapsActivity_listitem(id, name, lat, lon)); 


          } 





          JSONObject respons2 = jsonArray.getJSONObject(0); 
          String id = respons2.getString("id"); 


         } catch (JSONException e) { 
          e.printStackTrace(); 
         } 



         for (int i = 0; i < MyMarkers.size(); i++) { 
          createMarker(MyMarkers.get(i).getId(), MyMarkers.get(i).getLat(), MyMarkers.get(i).getLon()); 
         } 


        } 
       }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Log.e("VOLLEY", "ERROR"); 
      } 
     } 
     ); 
     requestQueue.add(jsonObjectRequest); 


    } 
+0

'マーカーオブジェクトを返しcreateMarker'ん? –

+0

いいえ、それはありません。 – Biblio

答えて

0

あなただけのマップ上のすべてのマーカーをクリアしたい場合は、すべてあなたのmarkewrsを追跡し、あなたの項目をクリアすることができるようにしたい場合は、Googleマップのオブジェクト

private GoogleMap mMap; 

private void removeAllMarkers(){ 
    mMap.clear() 
} 

the clear methodを呼び出すことができますあなたはそれをループその後、HashMapのようにリストのいくつかの種類にEMを格納し、このようなマップからそれぞれのマーカーを削除する必要があります。

private Map<String, Marker> mMarkers = new HashMap<>(); 

private void removeAllMarkers(){ 
    Iterator it = mMarkers.entrySet().iterator(); 
    while (it.hasNext()) { 
     Map.Entry pair = (Map.Entry)it.next(); 
     ((Marker)pair.getValue()).remove(); 
     it.remove(); 
    } 
} 
+0

thamks、** mMap.clear()**を** createMarkerの前に追加しました。** **正常に動作します。 – Biblio

関連する問題