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])