将目的地纬度和经度添加到目的地变量 distancematricx API 成功和失败

Adding destination lat and lon to destinations variable distancematricx API Success and Fail

我正在尝试从 Json 编码文件中获取纬度和经度以用作距离矩阵 API 的目的地,而不是添加 var destinationA = new google.maps.LatLng( ??.????, ????.??????);多次。

我以为我做到了,因为两种方式在查看时似乎都产生相同的变量目标,但方法二产生错误 Uncaught TypeError: a.lat is not a function

这是方法一,它为 var destination 指定长度为 7:

var destinationA = new google.maps.LatLng(13.7373393, 100.5558883);
var destinationB = new google.maps.LatLng(13.735132, 100.55611199999998);
var destinationC = new google.maps.LatLng(13.736953, 100.55819300000007);
var destinationD = new google.maps.LatLng(13.736244, 100.55694100000005);
var destinationE = new google.maps.LatLng(13.736166, 100.557203);
var destinationF = new google.maps.LatLng(13.738747, 100.55587700000001);
var destinationG = new google.maps.LatLng(13.733558, 100.56020699999999);
var destinations = [destinationA,destinationB,destinationC,destinationD,destinationE,destinationF,destinationG];

效果很好,return 距离 google 地图上给定中心点的距离。

方法二: 这是方法二,它给 var destination 的长度为 1,我一直在寻找为什么它是单一长度而不是上面的 7:

var location_lat_lon = <?php echo json_encode( $properties_data ); ?>;
var  destinations = []
var first = true;

for (var i=0; i < location_lat_lon.length; i++) {
    var sep = first ? '' : ',';
    var lat = location_lat_lon[i].latitude;
    var lon = location_lat_lon[i].longitude;
    var destination1 = new google.maps.LatLng(lat, lon);
    var destinations = [destinations+sep+destination1] ;


    first = false;
            }

在查看变量目标时,return的结果完全相同,但这 return 是错误 Uncaught TypeError: a.lat is not a function。

有什么建议或指导吗? 不能以这种方式将目的地传递给 calculateDistances 函数吗?

提前致谢:)

试试这个:

var location_lat_lon = <?php echo json_encode( $properties_data ); ?>;
var  destinations = []

for (var i=0; i < location_lat_lon.length; i++) {
    var lat = location_lat_lon[i].latitude;
    var lon = location_lat_lon[i].longitude;
    var destination1 = new google.maps.LatLng(parseFloat(lat), parseFloat(lon));
    destinations.push(destination1);
}