获得ol.Feature.getGeometry()的更好方法.j

时间:2015-06-12 12:41:41

标签: javascript openlayers-3

ol.Feature.getGeometry()。j让我得到所有坐标的数组。 [x,y,x,y,x,y ..]这适用于点或多边形。我用它来移动功能,它工作得很快很好。但是.j不是获得阵列的“官方”方式。最好的方法怎么样? 编辑:我不喜欢使用getCoordinates()它为点或多边形提供不同的数组实例,我不喜欢使用.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;

1 个答案:

答案 0 :(得分:1)

函数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