javascript(node.js)地理计算导致NaN

javascript(node.js)地理计算导致NaN,javascript,node.js,geo,Javascript,Node.js,Geo,我试图做节点+地理的东西来检索所有的位置从给定的纬度,长度和半径 对于这个计算,我尝试了下面的东西,但结果是NaN 类似的代码在php、python中运行良好,但无法理解我在这里做错了什么 参考: PS 1:使用nodejs进行此计算,因为它需要在服务器端进行计算。 PS2:即使变量名看起来像php变量,它也是js $cat file.js var log =console.log; var cos=Math.cos; var sin=Math.sin; function rad2deg(x)

我试图做节点+地理的东西来检索所有的位置从给定的纬度,长度和半径 对于这个计算,我尝试了下面的东西,但结果是NaN

类似的代码在php、python中运行良好,但无法理解我在这里做错了什么

参考:

PS 1:使用nodejs进行此计算,因为它需要在服务器端进行计算。 PS2:即使变量名看起来像php变量,它也是js

$cat file.js

var log =console.log;
var cos=Math.cos;
var sin=Math.sin;

function rad2deg(x){ log("rad2deg:", x,180*x/Math.pi);return (180*x/Math.pi);}
function deg2rad(x){ log("deg2rad:",x,x*Math.pi/180);return (x*Math.pi/180);}

function getNearPoint($lat,$lng,$rad){

  console.log("Debug1",$lat,$lng);
  $R = 6371;  // earth's radius, km
  // first-cut bounding box (in degrees)
  $maxLat = $lat + rad2deg($rad/$R);
  $minLat = $lat - rad2deg($rad/$R);
  console.log("Debug2",$lat,$lng);
  // compensate for degrees lnggitude getting smaller with increasing latitude
  $maxlng = $lng + rad2deg($rad/$R/cos(deg2rad($lat)));
  $minlng = $lng - rad2deg($rad/$R/cos(deg2rad($lat)));

  console.log("Debug3",$lat,$lng);
  // convert origin of filter circle to radians
  $lat = deg2rad($lat);
  $lng = deg2rad($lng);

  console.log("Debug4",$lat,$lng);

//Build database query and do rest of the stuff
}

getNearPoint(19.1947659,72.8768400,50);
Debug1 19.1947659 72.87684
rad2deg: 0.007848061528802385 NaN
rad2deg: 0.007848061528802385 NaN
Debug2 19.1947659 72.87684
deg2rad: 19.1947659 NaN
rad2deg: NaN NaN
deg2rad: 19.1947659 NaN
rad2deg: NaN NaN
Debug3 19.1947659 72.87684
deg2rad: 19.1947659 NaN
deg2rad: 72.87684 NaN
Debug4 NaN NaN
这是输出

$node file.js

var log =console.log;
var cos=Math.cos;
var sin=Math.sin;

function rad2deg(x){ log("rad2deg:", x,180*x/Math.pi);return (180*x/Math.pi);}
function deg2rad(x){ log("deg2rad:",x,x*Math.pi/180);return (x*Math.pi/180);}

function getNearPoint($lat,$lng,$rad){

  console.log("Debug1",$lat,$lng);
  $R = 6371;  // earth's radius, km
  // first-cut bounding box (in degrees)
  $maxLat = $lat + rad2deg($rad/$R);
  $minLat = $lat - rad2deg($rad/$R);
  console.log("Debug2",$lat,$lng);
  // compensate for degrees lnggitude getting smaller with increasing latitude
  $maxlng = $lng + rad2deg($rad/$R/cos(deg2rad($lat)));
  $minlng = $lng - rad2deg($rad/$R/cos(deg2rad($lat)));

  console.log("Debug3",$lat,$lng);
  // convert origin of filter circle to radians
  $lat = deg2rad($lat);
  $lng = deg2rad($lng);

  console.log("Debug4",$lat,$lng);

//Build database query and do rest of the stuff
}

getNearPoint(19.1947659,72.8768400,50);
Debug1 19.1947659 72.87684
rad2deg: 0.007848061528802385 NaN
rad2deg: 0.007848061528802385 NaN
Debug2 19.1947659 72.87684
deg2rad: 19.1947659 NaN
rad2deg: NaN NaN
deg2rad: 19.1947659 NaN
rad2deg: NaN NaN
Debug3 19.1947659 72.87684
deg2rad: 19.1947659 NaN
deg2rad: 72.87684 NaN
Debug4 NaN NaN

没有像
Math.pi
这样的常数。您可能想改用
Math.PI
(大写):

Math.pi
未定义,因此最终将返回
NaN