2017-07-11 5 views
0

Ich lade einige Marker vom Server mit Volley.Wie kann ich die Marker speichern, die ich löschen kann?

Ich kann neue Markierungen auf der Karte anzeigen, aber das Problem, wenn ich einige Markierungen aus der Datenbank lösche, werden sie nicht aus der Karte gelöscht.

Also wie kann ich alle Markierungen, die ich verwenden kann, löschen(), um sie aus der Karte zu löschen, bevor sie vom Server geladen werden?

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

gibt 'createMarker' ein Markerobjekt zurück? –

+0

nein, tut es nicht. – Biblio

Antwort

0

Wenn Sie nur alle Markierungen auf der Karte löschen möchten Sie the clear method des GoogleMap Objekt

private GoogleMap mMap; 

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

Wenn Sie auch Ihre markewrs alle verfolgen und Ihre Elemente löschen können, wollen anrufen Sie sollten em in einer Art Liste wie eine HashMap speichern, dann durchlaufen Sie es und entfernen Sie jeden Marker aus der Karte wie folgt:

+0

thamks, ich habe gerade ** mMap.clear() ** vor ** createMarker ... ** hinzugefügt, dann funktioniert es gut. – Biblio

Verwandte Themen