Клуб API Карт

Как получить список населенных пунктов на маршруте

Пост в архиве.
kalibrov
3 апреля 2013, 01:35

Есть задача: пользователь вводит пунтк отправления и пункт назначения, на карте строится маршрут со всеми населенными пунктами через которые он проходит. Я с помощью ymaps.route прокладываю маршрут. Но не могу получить список населенных пунктов на нём. Пытался разбирать координаты каждого сегмента на маршруте, по ним с помощью ymaps.geocode искать населенный пункт, но информация получается непредсказуемая, т.к. координат сегментов могут проскакивать крупные населенные пункты, если небыло в нем никаких поворотов или других действий по которым маршрут делится на эти сегменты. Есть ли возможность как-то адекватно получить список населённых пунктов на маршруте?
 

 

            ymaps.route([fromCity, toCity], {
                mapStateAutoApply: true // автоматически позиционировать карту
            }).then(
                function (route) {
                myMap.geoObjects.add(route);

                        $.each(route.getPaths().get(0).getSegments(), function(index, segment) {
                            console.log(segment.getCoordinates()[0]);
                            var myGeocoder = ymaps.geocode(segment.getCoordinates()[0], {kind: "locality", results: 1});
                            myGeocoder.then(
                            function (res) {
                            var nearest = res.geoObjects.get(0);
                            var name = nearest.properties.get("name");
                            nearest.properties.set("iconContent", name);
                            nearest.options.set("preset", "twirl#redStretchyIcon");
                            myMap.geoObjects.add(res.geoObjects);
$(self).find("#segment").append("
"+name+"
");
                            },
                            function (err) {
                               alert("Ошибка");
                            }
                            );
                           
                        });
                },
                function (error) {
                    alert("Возникла ошибка: " + error.message);
                }
            );