2014-11-01 32 views
1

我在谷歌地圖v2 android中添加了很多標記,我使用散列表來存儲每個標記的id,結果我可以使customwindow等等,但問題是我想刪除/移動標記在身份證上。如何在Google Maps v2 android中移動單個標記?

這是我的代碼來創建一個標記,我解析來自JSON

private Hashtable<String, String> markers; 
markers = new Hashtable<String, String>(); 

private void createMarker(String result) throws JSONException{ 

    jObject = new JSONObject(result); 
    JSONArray menuitemArray = jObject.getJSONArray("data"); 
    for (int i = 0; i < menuitemArray.length(); i++) { 
     id=menuitemArray.getJSONObject(i).getString("id").trim(); 
     ttl=menuitemArray.getJSONObject(i).getString("user").trim(); 
     snip=menuitemArray.getJSONObject(i).getString("desc").trim(); 
     lat=menuitemArray.getJSONObject(i).getString("latitude").trim(); 
     lng=menuitemArray.getJSONObject(i).getString("longitude").trim(); 

     Marker mk = googleMap.addMarker(new MarkerOptions() 
     .position(new LatLng(Double.parseDouble(lat),Double.parseDouble(lng))) 
     .title(ttl) 
     .snippet(snipq) 
     .icon(BitmapDescriptorFactory.fromBitmap(BmFinal))); 

     markers.put(mk.getId(), id); //here i add info to hastable marker 

    } 
} 

我想在這個空白

private void moveMarker(String Id){ 
    //what should i do in here ??? 
} 

移動標記如何實現我的數據?謝謝..

+0

使用,marker.setPosition(經緯度); – 2014-11-03 04:39:47

回答

0

我不能評論,但你可能想試試這個;先移除標記,然後在想要的新位置創建另一個,但具有相同的特徵。
作爲例子(只要你的想法):

public void moveMarker(String Id) {  

    markers.get(Id).remove(); // this removes the marker 

    Marker newMk = googleMap.googleMap.addMarker(new MarkerOptions() 
     .position(new LatLng(Double.parseDouble(newlat),Double.parseDouble(newlng))) // new coordonates 
     .title(ttl) 
     .snippet(snipq) 
     .icon(BitmapDescriptorFactory.fromBitmap(BmFinal))); // same details 

     // now add to your map & collection 
     markers.put(newMk.getId(), Id); 
} 
+0

我無法在markers.get(id).remove()中找到remove(),標記是hastable類型。 – ltvie 2014-11-02 01:38:11

+0

該位代碼應該從映射中刪除所需的標記,因爲Marker類支持remove()方法,['Marker.remove()'](http://developer.android.com/reference/com/google/android/gms/maps/model/Marker.html#remove()),但如果你想要清除整個地圖並重新繪製它,請使用:'GoogleMap.clear()',如果您只想隱藏一個標記以備後用,這可以幫助:['Marker.setVisible(boolean)'](http:// developer.android.com/reference/com/google/android/gms/maps/model/Marker.html#setVisible(boolean)) – Anas 2014-11-02 14:45:24

+0

是的,如果標記類有一個remove方法,但我想刪除標記是一個標記具有指定的id,並且沒有通過選擇標記去除,所以我必須先檢查id,然後使用迭代到標記的其餘部分,如果id存在,那麼我刪除 – ltvie 2014-11-03 03:01:55

相關問題