【问题标题】:GoogleMaps draw multiple polylines even i am removing the previous polyline before plotting new one即使我在绘制新的折线之前删除了以前的折线,GoogleMaps 也会绘制多条折线
【发布时间】:2018-03-20 08:35:29
【问题描述】:

我正在使用谷歌地图并通过在每次位置更新时传递坐标数组在其上绘制折线。绘制折线后,我首先删除前一条,然后根据更新的坐标数组列表绘制新的折线。问题是,谷歌地图在每次位置更新时都会从起点到终点绘制一条单独的折线。 我知道错误是在调用事物的层次结构中的某个地方。谁能帮我解决这个问题。

这是我更新相机焦点和绘制折线的方法。

private void moveCamera(Location location) {
        if (location != null) {
            if (polyline != null) {
                polyline.remove();
            }
            mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
                    new LatLng(location.getLatitude(), location.getLongitude()), 16));


            coordList.add(new LatLng(location.getLatitude(), location.getLongitude()));

// Create polyline options with existing LatLng ArrayList
            polylineOptions.addAll(coordList);
            polylineOptions
                    .width(5)
                    .color(Color.RED);

// Adding multiple points in map using polyline and arraylist
            polyline = mMap.addPolyline(polylineOptions);

        }
    }

【问题讨论】:

    标签: android google-maps google-polyline


    【解决方案1】:

    打电话

    polylineOptions.clear(); -> delete current object
    

    map.clear() -> invalidate map
    

    在添加新折线之前

    【讨论】:

    • 没有类似 polylineOptions.clear() 和 map.clear() 这样的功能我已经试过了。
    【解决方案2】:

    找到解决方案。通过将其声明为全局变量,我一次又一次地使用相同的旧 PolylineOptions。现在,在每个绘图之前,我都会创建一个 PolylineOptions 的新实例,现在可以开始了。

    这是更新的代码。

    private void moveCamera(Location location) {
            if (location != null) {
                if (polyline != null) {
                    polyline.remove();
                }
                mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(
                        new LatLng(location.getLatitude(), location.getLongitude()), 16));
    
    
                coordList.add(new LatLng(location.getLatitude(), location.getLongitude()));
    
    polyline = mMap.addPolyline(new PolylineOptions().addAll(coordList)
                        .width(5)
                        .color(Color.RED));
    
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2019-10-27
      • 2016-04-12
      • 1970-01-01
      • 2019-12-01
      • 1970-01-01
      • 2018-03-08
      • 2016-07-31
      相关资源
      最近更新 更多