Подтвердить что ты не робот

Получение всех координат вдоль маршрута, созданного службой Directions в Google Maps Apiv3

Мое приложение позволяет пользователю выбрать две точки на карте и найти маршрут между ними с помощью службы маршрутов карт Google Apiv3. Затем координаты по этому маршруту должны быть сохранены в базе данных. Я мог бы успешно написать весь код для этого. Однако я не имею проблемы.

Я знаю, что есть несколько других вопросов в StackOverflow- Один, Два на том же самом, но Я думаю, что либо они, либо я пропустили что-то здесь.

Пример кода:

function getCoordinates(result) {
            var currentRouteArray = result.routes[0];  //Returns a complex object containing the results of the current route
            var currentRoute = currentRouteArray.overview_path; //Returns a simplified version of all the coordinates on the path


            obj_newPolyline = new google.maps.Polyline({ map: map }); //a polyline just to verify my code is fetching the coordinates
            var path = obj_newPolyline.getPath();
            for (var x = 0; x < currentRoute.length; x++) {
                var pos = new google.maps.LatLng(currentRoute[x].kb, currentRoute[x].lb)
                latArray[x] = currentRoute[x].kb; //Returns the latitude
                lngArray[x] = currentRoute[x].lb; //Returns the longitude
                path.push(pos);
            }
      }

Приведенный выше код работает отлично, за исключением того, что свойства kb и lb пути обзора, которые, как представляется, содержат координаты lat и lng, не всегда одинаковы. В последний раз, когда я сделал код, он был kb и lb в течение нескольких дней, а затем он изменился на mb, nb и сегодня jb и kb.

Я не вижу никаких других свойств в объекте, которые могут предоставить мне latlng, кроме указанного выше. Ответы на другие подобные вопросы не упоминают эту проблему. Я что-то упустил? Любые надежные решения, пожалуйста.

4b9b3361

Ответ 1

не используйте kb и lb, которые являются мини-именами и недокументированными. Используйте только документальные свойства .lat() и .lng()

Ответ 2

Другой вариант - декодировать строку "points":

http://home.provide.net/~bratliff/routes/

Это намного быстрее, чем использование методов lat()/lng() для каждой отдельной точки.