Клуб API Карт

Обратное геокодирование - поиск объектов в видимой области

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

При обратном геокодировании есть параметр, который позволяет задать тип искомого топонима. Если его не задавать, то производится поиск по всем топонимам, начиная от дома, заканчивая страной.

Возможно ли как-либо ограничить область поиска или видимой областью карты или же не одним топонимом, а несколькими (например, дом и улица)

Пробовал задавать в качестве значения kind массив строк - не срабатывает

Пробовал пытаться ограничивать область поиска через boundedBy: map.getBounds() - тоже не помогло 

10 комментариев
Александр Новиков
28 января 2016, 05:06
Ограничение по видимой части должно работать.
Видимо что-то не так делаете... Пример кода есть?

YMaps.Events.observe(map, map.Events.Click,function(map, e) {

    var geopoint = e.getGeoPoint(),

        geocoder = new YMaps.Geocoder(geopoint, {boundedBy: map.getBounds(), strictBounds: true}); 

            YMaps.Events.observe(geocoder, geocoder.Events.Load, function() {

                setPoints(geocoder);

            });

        });

}

Если я кликнул в дом, то в geocoder, который передается в setPoints() будут дом, улица, город, страна

Нужно, чтобы в него попадали только топонимы, входящие в видимость карты - улица и дом

только 2-мя запросами с разными kind

А boundedBy при обратном геокодировании работает? Ну то есть есть смысл оставлять его, или нет?

И возможно ли объединить ответы от Geocoder в группу, чтобы добавлять на карту можно было сразу оба типа топонимов

геокодер итак всегда возвращает группу

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

map.addOverlay(new YMaps.Geocoder("Москва", {results: 1, boundedBy: map.getBounds()}));

Нет, я имел в виду объединить две группы от двух разных ответов геокодера после двух запросов топонимов разного типа

конечно можно. только геокодирование - асинхронный процесс

ответ каждого из геокодеров появится в разное время

скорее всего не работает

смысла в нем нету