Как получить список путевых точек маршрута, отображаемых на картах Google, через их API V3? - PullRequest
4 голосов
/ 27 мая 2011

Класс API карт Google GDirections помог мне "отобразить" маршрут между двумя указанными координатами.

Теперь я хочу получить список ALL координатна этом маршруте.

Любые советы о том, как получить это?

РЕДАКТИРОВАТЬ Только что обнаружен http://code.google.com/apis/maps/documentation/javascript/reference.html#DirectionsRoute

Его Overview_path Свойство дает список ВСЕХ путевых точек маршрута.Является ли DirectionsRoute подходящим классом для этой проблемы Или мне не хватает некоторой точки?

РЕДАКТИРОВАТЬ - 2

С помощью thisссылка показана mkram0 ниже, я изменил код следующим образом:

Карта отображается.Маршрут отображается.

Я думал о размещении маркеров на первых четырех координатах маршрута.Эти маркеры не отображаются.Любая помогает?Пожалуйста.

directionsService.route (request, 
                            function (result, status) 
                            {
                                if (status == google.maps.DirectionsStatus.OK)
                                {
                                    directionsDisplay.setDirections (result);

                                    for (var route in result.routes) 
                                    {
                                        for (var leg in route.legs) 
                                        {
                                            for (var step in leg.steps) 
                                            {
                                                for (var latlng in step.path) 
                                                {
                                                    pointsArray.push(latlng);
                                                }
                                            }
                                        }
                                    }

                                    var point1 = new google.maps.Marker ({
                                        position:pointsArray[0],
                                        draggable:true,
                                        map:map,
                                        flat:true
                                        });

                                    var point2 = new google.maps.Marker ({
                                        position:pointsArray[1],
                                        draggable:true,
                                        map:map,
                                        flat:true
                                        });

                                    var point3 = new google.maps.Marker ({
                                        position:pointsArray[2],
                                        draggable:true,
                                        map:map,
                                        flat:true
                                        });

                                    var point4 = new google.maps.Marker ({
                                        position:pointsArray[3],
                                        draggable:true,
                                        map:map,
                                        flat:true
                                        });
                                }
                            });

Ответы [ 3 ]

6 голосов
/ 31 мая 2011

Решил это сам :) Overview_path был правильным методом для отображения координат: просто для проверки, действительно ли это показывает что-то, я отобразил маркеры на полученных первых четырех координатах.

directionsService.route (request, 
                            function (result, status) 
                            {
                                alert(status);
                                if (status == google.maps.DirectionsStatus.OK)
                                {
                                    directionsDisplay.setDirections (result);

                                    var pointsArray = [];

                                    pointsArray = result.routes[0].overview_path;

                                    var point1 = new google.maps.Marker ({
                                        position:pointsArray[0],
                                        draggable:true,
                                        map:map,
                                        flat:true
                                        });

                                    var point2 = new google.maps.Marker ({
                                        position:pointsArray[1],
                                        draggable:true,
                                        map:map,
                                        flat:true
                                        });

                                    var point3 = new google.maps.Marker ({
                                        position:pointsArray[2],
                                        draggable:true,
                                        map:map,
                                        flat:true
                                        });

                                    var point4 = new google.maps.Marker ({
                                        position:pointsArray[3],
                                        draggable:true,
                                        map:map,
                                        flat:true
                                        });
3 голосов
/ 30 мая 2011

В файле Overview_path указано, что он возвращает

Массив LatLngs, представляющий весь курс этого маршрута.Путь упрощен для того, чтобы сделать его подходящим в тех случаях, когда требуется небольшое количество вершин.

Я не понимаю, что это означает то же самое, что возвращать массив всех путевых точек намаршрут.И в вашем вопросе мне не ясно, хотите ли вы указывать точки или координаты (широта) или и то, и другое.На вашем месте я бы также рассмотрел legs, который возвращает

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

В пределах DirectionsLeg, я думаю, вам также следует взглянуть на steps и via_waypoints.

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