当前位置: 首页 > 知识库问答 >
问题:

用更新的标记移除地图上的多个标记

长孙阳嘉
2023-03-14
final Marker[] markerTrack = new Marker[3];
final String[] idTrack = new String[3];
public void onLocationLoaded(MarkerOptions markersReceived) {
    if(markersReceived != null) {
    /// Check if marker is implemented if yes then remove and overwrite exixting else make new array

        for(int i =0 ; i < markerTrack.length; i++){
            if(idTrack[i] == markersReceived.getTitle()){
                markerTrack[i].remove();
                markerTrack[i] = mMap.addMarker(markersReceived);

            }else{
                //make new marker
                markerTrack[i] = mMap.addMarker(markersReceived);
                idTrack[i] = markersReceived.getTitle();
            }
        }

共有1个答案

娄浩荡
2023-03-14

首先,我要感谢你们所有人的努力。我最终找到了解决我的多个标记的方法,分别删除它们并更新它们。

下面是帮助我实现这一目标的逻辑

     final Marker[] markerTrack = new Marker[4];
            //final String[] idTrack = new String[3];
            final ArrayList<String> id = new ArrayList<String>();
            id.add("HELLO");
            final int[] i = {0};
 . . . .. . .
....
....
    @Override
 public void onLocationLoaded(MarkerOptions markersReceived) {
   if (markersReceived != null ) {
      if (id.contains(markersReceived.getTitle())) {
          int j = id.indexOf(markersReceived.getTitle());
           markerTrack[j].remove();
           markerTrack[j] = mMap.addMarker(markersReceived);
     } else {
           markerTrack[i[0]+1] = mMap.addMarker(markersReceived);
          id.add(markersReceived.getTitle());
           i[0]++;
      }
   }

但是伙计们,我现在遇到一个问题...那就是我的异步任务包含另一个异步方法,它需要太多的时间从Web加载结果...有什么方法可以加快这个过程...Thanx

 类似资料:
  • 更新:我通过添加previousMarker对象解决了性能问题。因此,只有先前点击的标记将被删除,并替换为默认图标。然而,当我单击标记时,信息窗口仍然没有显示。 我有一个地图视图,并在上面设置了一些标记。我想要的是当我点击一个标记时,它会改变它的图标为一个不同的图标,当我点击另一个标记时,前一个标记的图标应该改变为它原来的图标。 populateAllMarkersOnMap()目前可以是如下所示

  • 我正在用html/jsp页面主体中的Google地图做一个web动态项目。 我制作了一个函数,可以创建一个标记(lat、lng、map),并在标记的参数中使用一个特殊的image.png作为图标。 在我的地图中,我制作了两种不同的样式(地图的颜色…)“白天”和“夜晚”。 我想知道当用户点击夜间更改样式时,我如何更改标记的图标。事实上,标记的颜色不适合这种风格的地图... 我尝试用相同的名称初始化不

  • 我调用API,然后将JSON数据添加到arraylist中,然后调用arraylist数据,并将纬度和经度放置在地图上,放置多个标记。我相信我的问题是从ArrayList获取字符串,但我不知道如何解决它。 我正在从另一个类调用API 私有GoogleMap mMap;

  • 我使用Google Maps Android SDK在地图上添加标记,这些标记的位置存储在我的应用程序的所有用户都可以使用的Firebase数据库中。每个标记的数据存储在唯一的Firebase记录中,每个记录包含纬度 添加了一个新标记。 更改现有标记(移动到新位置和/或“验证”) 删除现有标记 我实现了一个哈希图,如如何使用Firebase Google Maps API Android中的数据更

  • 我使用的谷歌地图api如下: 这需要拉特和lng,地图画得很好,但是当新的拉特 我想在不重新绘制地图的情况下更新地图上的标记。