获得 ol.Feature.getGeometry().j 的更好方法
better way to get ol.Feature.getGeometry().j
ol.Feature.getGeometry().j 获取所有坐标的数组。 [ x, y, x, y, x, y .. ] 适用于点或多边形。我用它来移动功能,它工作得又快又好。但是 .j 不是获取数组的 "official" 方式。最好的方法呢?
编辑:我不喜欢使用 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;
函数 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.Feature.getGeometry().j 获取所有坐标的数组。 [ x, y, x, y, x, y .. ] 适用于点或多边形。我用它来移动功能,它工作得又快又好。但是 .j 不是获取数组的 "official" 方式。最好的方法呢? 编辑:我不喜欢使用 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;
函数 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);