0

我正在使用 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);

绘图没有问题。当我想删除线条或标记时,首先删除项目但当我想滑动地图时,所有项目都会返回并显示在地图视图上。我正在迭代地删除项目。我的删除代码在这里:

for(int i = 0; i <lines.size(); i++){
                geoLayer.remove(lines.get(i));

                geoLayer.clear();

            }

我又试了一次:

geoLayer.removeAll(lines);

如何在 Nutieq 上正确删除我的所有地图项?有什么方法可以清除或删除吗?

4

1 回答 1

0

从上面的代码看来,您正在为每一行创建一个新层,并且您正在“忘记”对这些层的引用。只需将 geoLayer 构造移出循环即可。要删除所有线条,您可以调用 geoLayer.clear() 或 geoLayer.removeAll(lines)。两者都应该工作。无需使用 for-cycle 循环。

于 2014-12-04T14:51:32.037 回答