Клуб API Карт

Массив координат пути

Пост в архиве.

Правильно ли я получаю массив координат пути?

 

    //Получить массив координат маршрута

    function GetCoordByRoute(paramRoutes) {

        var coord = [];

        for (var i = 0; i < paramRoutes.getPaths().getLength() ; i++) {

            way = paramRoutes.getPaths().get(i);

            segments = way.getSegments();

            for (var j = 0; j < segments.length; j++) {

                coord.push(segments[j].getCoordinates());

            }

        }

    }

3 комментария

Для чего Вам эти координаты?

В целом немного коряво вплане всех этих вложенных циклов и глобальных переменных. Можно и попроще:

 

var coords = [];res.getPaths().each(function (path) {    path.getSegments().forEach(function (segment) {        coords.push.apply(coords, segment.getCoordinates());    });       });

 

В случае если у вас только 2 маршрутные точки, то вам не надо перебирать пути, и все еще проще – можно использовать Array.prototype.map в контексте массива сегментов

Моджно пример выше сказанного?

Можно, только кажется у IE6-7 не реализован этот метод, но это решается использованием jQuery:

var coords = $.map(route.getPaths().get(0).getSegments(), function (segment) {

    return segment.getCoordinates();

});