簡體   English   中英

刪除或刪除vector.layer中的功能

[英]Remove or Delete feature in vector.layer

現在,我在刪除已經顯示在openlayers上的實體時遇到問題。 我有兩個來源KML,其中包含車輛的行駛路線。

kml1 10地標kml2 50地標

首先,使用加載需要顯示kml2並將其存儲在start.vectorfiltered變量中的工具后,加載頁面時,首先顯示存儲在start.vectorsource變量中的kml1。 這兩個變量的內容,所以如果存在的start.vectorfiltered在start.vectorsource元素( 功能 )相比,它消除了這個項目下面是代碼的摘錄:

start.vectorsource.getSource().forEachFeature(function (feature) {
            if (typeof feature.getId() !== "undefined") {
                if (feature.getId().indexOf(mobileName) !== -1) {
                    entity.push(feature.getId());
                }
            }

        });
        start.vectorfiltered.getSource().getFeatures().forEach(function (feature) {
            if (typeof feature.getId() !== "undefined") {
                for (var k = 0; k < entity.length; k++) {
                    if (feature.getId() === entity[k]) {
                        console.log(feature.getId() + " " + entity[k]);
                        start.vectorsource.getSource().removeFeature(feature);
                    }
                }
            }
            interfaces.newFeature.push(feature);
        });

我分析了一個start.vectorsource來檢索商品ID(feature.getId()),如果它包含車輛名稱(mobilename),我正在尋找該ID。 如果有,我將ID存儲在變量實體中

我分析了一個start.vectorfiltered,並與變量實體進行比較,如果它們相等,它將通過其ID刪除start.vectorsource中的功能。

這是錯誤信息:

TypeError: this.s[b] is undefined http://localhost:7299/js/ol3/ol.js Line 636

我認為問題出在您沒有實際的ID,因此feature.getId()無法使用。

嘗試改用feature.get('id')這可能是由於您的ID僅是功能的一個屬性

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM