0

我正在尝试从 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];

效果很好,将返回每个从谷歌地图上给定中心点的距离。

方法二:这是方法二,它使 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;
            }

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

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

提前致谢 :)

4

1 回答 1

0

尝试这个:

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);
}
于 2015-07-30T12:10:31.060 回答