1
我正在尋找一種智能的方式將點插入到具有Openlayers-3的LineString中。今天,我保存了沿着整個LineString的最近點,用forEachSegment創建一個循環來查找最近點的段,並在該段的開始和結束之間插入點。最後,我將新的部分放回到整個LineString的幾何圖形中。Openlayers 3 - 將一個點插入線路某處之間的LineString
它的工作。但任何更聰明,簡短的解決方案?
謝謝&乾杯! Andreas。
pp=modifyfeatures.item(g).getGeometry().forEachSegment(function (start, end){
waylinexy=new Array();
waylinexy.push(start);
waylinexy.push(end);
var segment = new ol.Feature({geometry:new ol.geom.LineString(waylinexy, 'XY')});
pp.push(start);
if (segment.getGeometry().getClosestPoint(cmpos).toString()==cmpos.toString()){pp.push(cmpos); }
pp.push(end);
return pp;
});
var ps = new ol.Feature({geometry:new ol.geom.LineString(pp, 'XY')});
modifyfeatures.item(g).getGeometry().setCoordinates(pp);
忘記第一行:。cmpos = modifyfeatures.item(克).getGeometry()getClosestPoint(eventcoord); – Andreas