【问题标题】:how to move single marker in google maps v2 android?如何在谷歌地图 v2 android 中移动单个标记?
【发布时间】:2014-11-01 23:53:41
【问题描述】:

我在google maps v2 android中添加了很多标记,我使用哈希表来存储每个标记的id,结果我可以制作customwindow等等,但问题是我想删除/移动标记基于身份证。

这是我创建标记的代码,我从 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 ???
}

我如何做到这一点?谢谢..

【问题讨论】:

  • 使用,marker.setPosition(latlng);

标签: android google-maps google-maps-api-2


【解决方案1】:

我无法发表评论,但您可能想试试这个;首先删除标记,然后在您想要但具有相同特征的新位置创建另一个标记。
举个例子(让你明白):

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);
}

【讨论】:

  • 那段代码应该从地图中删除所需的标记,因为 Marker 类支持 remove() 方法 Marker.remove(),但如果您想清除整个地图并重新绘制它,使用:GoogleMap.clear(),如果您只想隐藏一个标记以供以后使用,这可以提供帮助:Marker.setVisible(boolean)
  • 是的,如果标记类有一个删除方法,但我想删除标记是一个具有指定 id 并且没有通过选择标记删除的标记,所以我必须先检查 id 并然后对标记的其余部分使用迭代,如果 id 存在则我删除
猜你喜欢
  • 2015-05-30
  • 2012-12-07
  • 1970-01-01
  • 2013-09-13
  • 1970-01-01
  • 2012-11-29
  • 2016-10-12
  • 1970-01-01
  • 2013-04-08
相关资源
最近更新 更多