Я пытаюсь получить lat и lon из Json-кодированного файла для использования в качестве адресатов для интерфейса Matrix API, а не для добавления var destinationA = new google.maps .LatLng (? ????, ?????); много раз.Добавление назначения lat и lon в пункты назначения variable distancematricx API Success and Fail
Я думал, что это удалось, так как оба способа, кажется, производят одни и те же переменные назначения при просмотре, но метод два производит ошибки неперехваченным TypeError: a.lat не является функцией
Это метод, который дает один вар назначение длина 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];
отлично работает, вернет расстояния для каждого из заданного центра на карте google.
Метод два: Это метод Два который дает Var месту назначения длиной 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;
}
который возвращает точно тот же результат при просмотре адресатов переменных, но это возвращает ошибку. Некопаемое TypeError: a.lat не является функцией.
Любые советы? Невозможно передать адресаты таким образом функции calculateDistances?
Заранее спасибо :)
Я предполагаю, что значения прочитаются из файла JSON, вероятно, строки. Конструктор LatLng ожидает числа с плавающей запятой. Попробуйте 'new google.maps.LatLng (parseFloat (lat), parseFloat (lon))' – duncan
Также, если вы хотите добавить каждый пункт назначения в массив 'destination', используйте' destination.push (destination1); ' – duncan