Android Google maps-v2 之前的多段线未删除
Android Google maps-v2 previous polyline not removing
在 Whosebug
上尝试了所有以前的答案后,我发布了这个答案。
我正在显示 driver 的实时位置以及从该位置到特定目的地的路径。我想要的是尽快删除旧的多段线 driver 的实时位置发生变化,但它并没有发生变化,而且多段线的数量也在增加。
这是我删除多段线的代码,但它不起作用。
private void drawRouteOnMap(GoogleMap map, List<LatLng> positions) {
PolylineOptions options = new PolylineOptions().width(12).color(Color.GREEN).geodesic(true);
options.addAll(positions);
if (polyline != null) {
polyline.remove();
Log.e("Old Poly", "Removed");
}
Log.e("Poly", "Added");
polyline = mMap.addPolyline(options);
}
这样试试。
// decleare it globally
List<Polyline> polylines = new ArrayList<Polyline>();
private void drawRouteOnMap(GoogleMap map, List<LatLng> positions) {
PolylineOptions options = new PolylineOptions().width(12).color(Color.GREEN).geodesic(true);
for(Polyline polyline: polylines){
polyline.remove();
}
polylines.clear();
for(LatLng latlng: positions){
options.add(latlng);
polylines.add(mMap.addPolyline(options);
}
}
我自己解决了。这是因为 function
是从另一个 call
调用的,因此 polyline
实例为空。通过在 SharedPrefrence
中保存 polyline
并在下次调用时再次检索该值来解决它。
在 Whosebug
上尝试了所有以前的答案后,我发布了这个答案。
我正在显示 driver 的实时位置以及从该位置到特定目的地的路径。我想要的是尽快删除旧的多段线 driver 的实时位置发生变化,但它并没有发生变化,而且多段线的数量也在增加。
这是我删除多段线的代码,但它不起作用。
private void drawRouteOnMap(GoogleMap map, List<LatLng> positions) {
PolylineOptions options = new PolylineOptions().width(12).color(Color.GREEN).geodesic(true);
options.addAll(positions);
if (polyline != null) {
polyline.remove();
Log.e("Old Poly", "Removed");
}
Log.e("Poly", "Added");
polyline = mMap.addPolyline(options);
}
这样试试。
// decleare it globally
List<Polyline> polylines = new ArrayList<Polyline>();
private void drawRouteOnMap(GoogleMap map, List<LatLng> positions) {
PolylineOptions options = new PolylineOptions().width(12).color(Color.GREEN).geodesic(true);
for(Polyline polyline: polylines){
polyline.remove();
}
polylines.clear();
for(LatLng latlng: positions){
options.add(latlng);
polylines.add(mMap.addPolyline(options);
}
}
我自己解决了。这是因为 function
是从另一个 call
调用的,因此 polyline
实例为空。通过在 SharedPrefrence
中保存 polyline
并在下次调用时再次检索该值来解决它。