首页 / 浏览问题 / WebGIS / 问题详情
动态目标图层想删除标号用哪个方法
25EXP 2021年08月16日
动态图层movingTargetLayer想删除选中的标号用哪个方法? removeFeatures(features)方法试过了无效,该方法怎么配置和触发的具体可以给个代码示例吗,或者还有别的方法吗

1个回答

您好,您可以参考一下https://iclient.supermap.io/examples/leaflet/editor.html#plot_dynamicPlot,选中标号后点击删除标号即可删除

1,000EXP 2021年08月16日
你好 这个方法deleteSelectedFeatures()在标会图层plottingLayer中正在用,是可以生效的,但是在动态图层movingTargetLayer中点击删除后先生效,再点击页面任意位置,被删除的标号又出现了,是怎么回事
动目标图层上点标号是栅格的,为了提供性能,它本来也是不支持鼠标编辑的,后来为了方便使用,在动目标图层上支持点选后编辑,但是原理是选中后,对象会放到一个临时图层上去编辑,编辑结束再放回动目标图层,所以选中后,动目标图层不支持删除,可以用接口删除选中对象。
接口删除选中对象。。请提供一下地址

就是这个,如果您设置无效的话,看一下是否有报错信息和features参数是否填写正确

无报错信息,参数也传了个数组格式的标号实例对象,就是不知道传进去的参数是否符合要求,能不能提供一下该方法的完整的能生效配置代码实例,在哪个对象下获取和触发方式

暂时没有代码实例哈,https://iclient.supermap.io/examples/leaflet/editor.html#plot_dynamicPlot做如下更改测试能成功删除对象

 var plottingLayer = L.supermap.plotting.movingTargetLayer("plot", serverUrl);

function deleteSymbol() {
        var features=plottingLayer.getFeatures()[0]
        plottingLayer.removeFeatures(features);
    }

您看一下这个features

你好 您在这个官网源码上有测试过吗。您上面配置的features返回undefined,获取不到标号实例,我在我自己的代码也测试了,一样的没有效果,也获取不到

我在官网里边测试了,有返回值且能成功删除的

    1. i {_editLayer: i, options: {…}, cacheImages: {…}, selectedFeatures: Array(0), name: "plot", …}
      1. cacheImages: {}
      2. features: []

 您好 这是我用您上面配置的plottingLayer打印出来的,features: []为空,我自己另外获取到了选中的标号,用 plottingLayer.removeFeatures(features)方法还是不生效,您看看是什么问题呢。

但是用这个removeFeatures方法我测试了在 L.supermap.plotting.plottingLayer图层里是生效的。

在L.supermap.plotting.movingTargetLayer就是上面说的,不生效的问题。

...