Клуб API Карт

определение ближайщего метро

hp1999
5 мая 2016, 18:12

добрый день.

есть необходимость определить для адреса расстояние до ближайего метро.

насколько я понял апи нужно

1. через геокодер по адресу получить координаты например так https://geocode-maps.yandex.ru/1.x/?geocode=Москва, тверская, 4

можно получить что то типа

<Point xmlns="http://www.opengis.net/gml">

<pos>37.612703 55.75896</pos>

</Point>

2.  и вызвать  ymaps.geoQuery с этими координатами

var obj = ymaps.geoQuery(ymaps.geocode(coords, { kind: 'metro' }));
            obj.then(function () {
                
                metro = obj.getClosestTo(coords, 3000);
                var mcoord = metro.geometry.getCoordinates();

                map.geoObjects
                    .add(pic);
            });

в методе                 metro = obj.getClosestTo(coords, 3000);

указан параметр - радиус поиска. но сколько ни ставь, то все равно что то находиться.

а ведь например в радиусе 1 метра объекта никакого метро нет, то  есть вызов в методе                 metro = obj.getClosestTo(coords, 1); ничего не должен возвращать.

а он возвращает - отчего ? и можно ли этой функцией получить несколько ближайщих метро?

так же вопрос по обратному геокодированию геокодера 

вот такой вызов

https://geocode-maps.yandex.ru/1.x/?geocode=37.492078 55.777707&kind=metro&result=5
 возвращает метро - а какие он считает ближайшими - по расстоянию?

как я понял, чтобы вычислить это расстояние, нужно найденные точки добавить на карту и по ней подсчитать расстояние? в ответе расстояния до метро получаетя нет.

1 комментарий
Подписаться на комментарии к посту
Этот параметр "radius" не делает ничего, спасибо за сообщение, в ближайшее время мы удалим его из документации.


Вы можете написать собственный фильтр с помощью geoQuery.search
http://jsfiddle.net/j0mmyn15/2/



Для определения расстояния можно использовать метод coordSystem.getDistance
Никаких объектов при этом добавлять на карту не надо, он работает только с координатами