Как редактировать полилинию в Картах Google? - PullRequest
0 голосов
/ 09 ноября 2011

Я использую Службу маршрутов API Карт Google V3 и хочу сократить длину одного из шагов на 1 м (скажем, последний шаг).

Проблема: directionResult можно увидеть здесь . Полилиния определяется путаницей символов. Как мне извлечь координаты (при необходимости) и укоротить ломаную линию на 1 м?

Пример определения полилинии

"polyline" : {
    "points" : "eir~FdezuOhFIF?HAdFG"
 },

Код Javascript

Не содержит кода для сокращения полилинии. Отображает набор маркеров в начале каждого шага

for(var i = 0; i < markers.length; i++) {
    var start = target_latlng;
    var end = markers[i].getPosition();
    var request = {
        origin: start,
        destination: end,
        travelMode: google.maps.TravelMode.WALKING
    };
    directionsService.route(request, function(directionResult, status) {
        if (status == google.maps.DirectionsStatus.OK) {
            route = directionResult.routes[0].legs[0];
            for(var i = 0; i < route.steps.length; i++) {
                var marker = new google.maps.Marker({
                    position: route.steps[i].start_location,
                    map: map
                });


                route.steps[i].polyline.points.getPath(); // does not work!


            }
        }
    });
}

Ответы [ 2 ]

1 голос
/ 14 ноября 2011

.getPath() должно работать. Спасибо!

0 голосов
/ 23 июля 2012

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

result.routes[current_route].legs[0].steps[current_step].path

Я знаю, что это работает, потому что я успешно использую его.

Дайте мне знать, если это не сработает.

AXS

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