图形渲染中,idw反距离权重插值算法是一个应用非常广泛的方法,但是js实现的比较少,目前实现一个:
//idw算法//输入[[x:0,y:0,v:0],[x:0,y:0,v:0],[x:0,y:0,v:0]]function idwcomputer(datas,result){ if(datas.lenght<3) return result; var m0=datas.length; var m1=result.length; //console.info(datas); //距离列表 var r=[]; for(var i=0;i
调用方法如下:
var idwdatas=[],idwresult=[];
//填充计算点的位置//下边的数据从后端返回
$.each(result.result,function(i,val){ idwdatas.push({"x":val.pointLongitude,"y":val.pointLatitude,"v":val.value}); }); //计算需要范围的结果的经纬度坐标//需要插值的格点坐标。这个通过等分经纬度实现的,
idwresult=countgridlocal(grid); //返回idw计算结果 idwresult=idwcomputer(idwdatas,idwresult); console.info(idwresult);
注意,前端不适合使用大量的这个算法,我这个是格点用的插值。