Javascript 谷歌地图-计算距离:将变量中的坐标传递给函数
我试图将坐标传递给计算两点之间距离的函数:Javascript 谷歌地图-计算距离:将变量中的坐标传递给函数,javascript,jquery,google-maps,variables,Javascript,Jquery,Google Maps,Variables,我试图将坐标传递给计算两点之间距离的函数: function calcRoute(from, to){ var distance; //43.653226, -79.38318429999998 //34.0522342, -118.2436849 console.log(from); // => 34.0522342,-118.2436849 console.log(to); // => 43.653226, -79.383184299999
function calcRoute(from, to){
var distance;
//43.653226, -79.38318429999998
//34.0522342, -118.2436849
console.log(from); // => 34.0522342,-118.2436849
console.log(to); // => 43.653226, -79.38318429999998
var p1 = new google.maps.LatLng(from);
var p2 = new google.maps.LatLng(to);
console.log(p1); //
console.log(p2); //
distance = (google.maps.geometry.spherical.computeDistanceBetween(p1, p2)/1600).toFixed(2);
// => NaN
}
问题是,当我将变量(从
,传递到
)传递到函数new google.maps.LatLng
时,它总是返回
{k: NaN, A: NaN, toString: function, j: function, equals: function…}
但是当我手动把它们放在坐标上时
var p1 = new google.maps.LatLng(43.653226, -79.38318429999998);
我得到了所需的距离
怎么可能呢?为什么我不能通过变量传递跳线
谢谢LatLng类构造函数接受两个数字(lat和lng)和一个可选布尔值: LatLng(lat:编号,lng:编号,noWrap?:布尔值)
您正在传递一个字符串,这就是它不起作用的原因。解决这个问题的一种可能方法是将函数号参数如from_lat、from_long、to_lat、to_long传递给你,或者你可以在逗号(,)处拆分输入字符串,并将lat和long解析为浮点变量。假设
from
是数组
:var p1=new google.maps.LatLng(from[0],from[1])代码>