打开图层3修改结束

时间:2016-11-03 15:42:49

标签: javascript openlayers openlayers-3

问题

我已经使用源和图层设置了下面显示的地图:

function TestCreateLine() {
    var CoordsFromTo = [];

    for (var i = 0; i < session.points.length; i++) {
        CoordsFromTo.push(session.points[i][0])
    }

    var line = new ol.geom.LineString(CoordsFromTo);

    var feature = new ol.Feature(line);

    feature.setStyle(styles.route);
    vectorSource.addFeature(feature);
}

然后我在地图上设置了一个点击事件,该事件将为该点创建一个功能以显示一个小图标。如果这是选择的第二个点,它将在两个点之间创建一个LineString。两者都显示如下:

线段形式

function TestCreateFeature(coord) {
    var coords = coord.shift();

    var feature = new ol.Feature({
        id: coords,
        type: 'place',
        geometry: new ol.geom.Point((coord[0]))
    });
    feature.setId(coords);
    feature.setStyle(styles.icon);
    vectorSource.addFeature(feature);
}

功能

session.interactions.modify.on('modifyend', function (e) {
    //IF YOUR MODIFYING AN OSRM ROUTE
    if (document.getElementById('Checkbox2').checked) {

    }
    //LINE STRING ROUTE
    else {

        session.points = [];

        var changedFeatures = e.features.getArray();
        var newFeature = changedFeatures[changedFeatures.length - 1];
        var ben = newFeature.getGeometry().getCoordinates();
        vectorSource.clear()


        for (var i = 0; i < ben.length; i++) {

                var newPointInformation = [];
                newPointInformation.push((CreateGuid() + CreateGuid() + "-" + CreateGuid() + "-4" + CreateGuid().substr(0, 3) + "-" + CreateGuid() + "-" + CreateGuid() + CreateGuid() + CreateGuid()).toLowerCase());
                newPointInformation.push(ben[i]);

                session.points.push(newPointInformation);
                TestCreateFeature(newPointInformation);

        }

        TestCreateLine();
    }

});

它们都作为功能添加到源中。我目前面临的问题是我希望能够修改路线并将新的坐标传递给我。

目前我正在使用'ModifyEnd'事件,但它似乎让我不止一个坐标。

{{1}}

正如你所看到的那样,我尝试清空源代码功能并重新构建,但问题并非所有的坐标都归还给我。

有人可以帮忙吗?

0 个答案:

没有答案