Я ищу умный способ вставить точку в LineString с Openlayers-3. Сегодня я сохранил ближайшую точку вдоль полной строки LineString, сделал цикл с forEachSegment, чтобы найти сегмент ближайшей точки и вставить точку между началом и концом этого сегмента. Наконец, я возвращаю новый раздел в геометрию полного LineString.Openlayers 3 - Вставить точку в LineString между чем-то вдоль линии
Это работает. Но любое умное, короткое решение?
Thanks & Cheers! Андреас.
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