我在google maps v2 android中添加了很多标记,我使用哈希表来存储每个标记的id,结果我可以自定义窗口等等,但问题是我要删除/移动标记基于id。
这是我创建标记的代码,我从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 :(得分: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);
}