OpenLayers ModifyFeature未保存新顶点
OpenLayers ModifyFeature not saving new vertices
我刚刚开始使用OpenLayers,遇到了一个小问题——当我创建LineString并尝试修改它时,我可以移动现有顶点并拖动虚拟顶点来创建新的顶点。但是,当我继续添加到线中时,只保存对现有顶点的更改——丢弃新的顶点。我是不是错过了什么?你可以看到我在这里谈论的一个例子:
http://dev.darrenhall.info/temp/open-layers/modify-feature/
单击添加点,并使用点进行编辑,然后单击继续添加以了解我的意思。任何帮助都将不胜感激!谢谢
Darren
快速查看后,您的代码看起来比应该的更复杂。
您可以在单击时手动将点推入点的数组,并用这些点生成一个行字符串。
您不会听到对虚拟顶点所做的任何更改。我不明白为什么在你的addWayPoint函数中,你没有从层而不是你的点数组中获得特征的几何体。
也许这将是一个使用真实特征几何体并避免使用route.waypoints的好开始。
最后我决定不使用modifyFeature,而是使用向量作为句柄,手动处理拖动和线条修改。你可以在这里看到我的变通方法:
http://dev.darrenhall.info/temp/open-layers/draw-route
军械调查局的人为我的代码做了一个(相当简单)的修复,尽管修改后从顶点重新填充数组:
function addWayPoint(e) {
var position = osMap.getLonLatFromViewPortPx(e.xy);
if(route.waypoints.length>1) {
layers.lines.layer.removeFeatures([layers.lines.feature]);
}
/* vvvvvvvvvvv start */
/* Get the potentially modified feature */
if (modifyFeature.feature) {
route.waypoints = [];
var vertices = modifyFeature.feature.geometry.getVertices();
for (i = 0; i < vertices.length; i++) {
//console.log(vertices[i]);
route.waypoints.push(vertices[i]);
}
}
/* ^^^^^^^^^^^ end */
route.waypoints.push(new OpenLayers.Geometry.Point(position.lon, position.lat));
var string = new OpenLayers.Geometry.LineString(route.waypoints);
layers.lines.feature = new OpenLayers.Feature.Vector(string, null, styles.pink);
layers.lines.feature.attributes['id']=1;
layers.lines.layer.addFeatures([layers.lines.feature]);
for (i = 0; i < layers.lines.layer.features.length; i++) {
if (layers.lines.layer.features[i].attributes.id == 1) {
modifyFeature.selectFeature(layers.lines.layer.features[i]);
}
}
}
相关文章:
- Three.js保存修改后的网格顶点r67
- 将标签添加到轴助手 - 无法获取四肢顶点
- 音频上下文的顶点置换(THRE.JS R76)
- 使用THRE.Frustum计算近/远平面顶点
- 避免顶点拖动映射api v3
- 基于球体顶点ThreeJs创建形状
- webGL,javascript:尝试访问属性1中超出范围的顶点
- Three.js:使用变形目标获取更新的顶点
- OpenLayers ModifyFeature未保存新顶点
- 在Three.js中为几何体中的顶点指定颜色
- 在threejs中调整每个顶点的线的颜色
- 修改顶点/位置后,three.js中的网格相交
- three.js为几何体中的每个顶点指定不同的颜色(渐变)
- 如何在three.js中获取顶点的绝对位置
- 我应该何时在WebGL/OOpenGL中启用/禁用顶点位置属性
- 更新顶点几何体Threejs
- ThreeJS错误的顶点空间排列
- Threejs:几何顶点导出到 stl 时未更新
- WebGL:优化顶点缓冲区,每帧更改值和顶点计数
- 使用投影仪和光线选择顶点