API Карт Google Использование Waypoint LatLng - PullRequest
0 голосов
/ 28 февраля 2012

Я использую следующее для получения массива путевых точек:

var waypoints = displayer.getDirections().routes[0].legs[0].via_waypoints;

Возвращает массив координат, отформатированный вокруг него в скобках, например (37.09024, -95.71289), (37.09324, -95.71259).

Когда я пытаюсь вставить эти координаты как путевые точки на новом маршруте, он ломается. Что мне нужно сделать, чтобы разобрать этот массив и получить координаты без скобок вокруг значений lat / lng?

Спасибо!

Ответы [ 3 ]

0 голосов
/ 07 марта 2012

Поскольку .via_waypoints возвращает координату LatLng, преобразование ее в строку приводит к скобкам.

Единственный способ обойти это - использовать регулярное выражение для удаления скобок, окружающих координаты, после объединения массива в строку.

Я добавляю в строку каждый раз, когда создается новая путевая точка, затем обновляю скрытый ввод для координат путевой точки.

Затем данные сохраняются в базе данных, и когда карта загружается снова, я извлекаю строку координат, разделяю их обратно в массив и анализирую их как значения путевых точек для моей карты.

0 голосов
/ 19 марта 2018

Вы можете использовать методы lat () и lng (), например, так:

let latitude = event.latLng.lat ();

Подробности см. В этом ответе. gmaps v3 получить широту от event.latLng

0 голосов
/ 28 февраля 2012

Справочная документация по API Карт Google показывает только один конструктор для LatLng объекта

LatLng(lat:number, lng:number, noWrap?:boolean)

Так что, если вы просто передаете строку типа "(37.09024, -9571289)" или массив строк вLatLng конструктор, вы не можете ожидать, что он волшебным образом преобразует этот параметр в координаты.

Вы можете хранить координаты вашего маршрута в массиве 2d

var Points = [
    [11.2222, 22.3333],
    [33.4444, 44.5555]
    ];

и объектах contstruct new google.maps.LatLng(x,y)в цикле for, передавая каждый внутренний элемент массива Points.

..
ContstructedLatLng[i] = new google.maps.LatLng(Points[i][0],Points[i][2]);
..

Также вы можете использовать расширение Firebug для Mozilla Firefox для отладки вашего JavaScript во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...