javascript - 获取 ol.Feature.getGeometry().j 的更好方法

标签 javascript openlayers-3

ol.Feature.getGeometry().j 获取所有坐标的数组。 [ x, y, x, y, x, y .. ] 这适用于点或多边形。我用它来移动功能,它工作得又快又好。但 .j 不是获取数组的“官方”方式。最好的方法又如何呢? 编辑:我不喜欢使用 getCooperatives() 它为点或多边形提供不同的数组实例,并且我不喜欢使用 .j 因为它可能会在以后的版本中出现。 (所以我必须修复它)

示例代码使用 ol.js 3.5.0 和 jquery

var x=5, y=-10;
var l=feature.getGeometry().j,n=[],b=true;
$.each(l,function(i,v){
   if(b){
      n.push(v+x);
      b=false
   }else{
      n.push(v+y);
      b=true
}});
feature.getGeometry().j=n;

最佳答案

函数applyTransform()允许您修改几何图形的内部表示。

var move = function(input, output, dimension) {
  for (var i = 0, ii = input.length; i < ii; i += dimension) {
    output[i] = input[i] + x;
    output[i + 1] = input[i + 1] + y;
  }
};
geometry.applyTransform(move);

另请参阅ol.TransformFunction

关于javascript - 获取 ol.Feature.getGeometry().j 的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30803366/

相关文章:

javascript - 如何加载隐藏侧边栏的页面

javascript - 跳过innerHTML中的空值

jquery - 打开图层 3 加载 map 后禁用捏合旋转

javascript - 使用 openlayers map Bootstrap 列高度为 100 的内容

javascript - 如何将 innerHTML 添加到从 Node JS 发送的静态文件中?

javascript - 如何为移动应用程序进行滚动定制?

javascript - rowspan td后如何输入边距

javascript - 按 openlayer 3 中的位置名称放大

javascript - 在 OpenLayers 3 中检测点击多边形的顶点或边缘?

openlayers-3 - ol.animation.pan 不起作用