我正在使用nutiteq地图开发流量应用程序。有超过500条交通线路,很多关于交通的标记。我用这种方式画了交通线;
public void drawlines(){
ArrayList<MapPos> arr_lat_long1 = new ArrayList<MapPos>();
for(int i = 0; i < arr_lat_long1.size(); i ++){
MapPos lineMapPos = new MapPos(arr_lat_long1.get(i).x,arr_lat_long1.get(i).y);
arr_lat_long1.add(lineMapPos);
geoLayer = new GeometryLayer(new EPSG4326());
mapView.getLayers().addLayer(geoLayer);
LineStyle lineStyle = null;
lineStyle =LineStyle.builder().setWidth(0.14f).setColor(Color.RED).build();
//Label label = new DefaultLabel("Line", "Here is a line");
Line line = new Line(arr_lat_long1, null, lineStyle, null);
line.setVertexList(arr_lat_long1);
geoLayer.add(line);
lines.add(line);
}
我以同样的方式添加标记;
Bitmap pointMarker = UnscaledBitmapLoader.decodeResource(activity.getResources(), R.drawable.marker3);
MarkerStyle markerStyle = MarkerStyle.builder().setBitmap(pointMarker).setSize(0.5f).setColor(Color.WHITE).build();
Label markerLabel = new DefaultLabel("Here", "Blabla");
MapPos markerLocation = MainActivity.mapLayer.getProjection().fromWgs84(log, lat);
marker = new Marker(markerLocation, markerLabel, markerStyle, null);
markerLayer.add(marker);
MainActivity.mapView.getLayers().addLayer(markerLayer);
绘图没有问题。当我想删除行或标记时,首先删除项目,但是当我想要滑动地图时,所有项目都会返回并显示在mapview上。我迭代地删除了项目。我的删除代码在这里:
for(int i = 0; i <lines.size(); i++){
geoLayer.remove(lines.get(i));
geoLayer.clear();
}
我也尝试过这个:
geoLayer.removeAll(lines);
如何在Nutiteq上正确删除我的所有地图项?有没有办法清除或删除?
答案 0 :(得分:0)
从上面的代码中,您似乎正在为每一行创建一个新图层,并且您“忘记”对这些图层的引用。只需在循环外部移动geoLayer构造即可。要删除所有行,可以调用geoLayer.clear()或geoLayer.removeAll(行)。两者都应该有效。无需使用for-cycle循环。