Клуб API Карт

(API 2.0) geocode как определить, если ничего не найдено в результатах поиска

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

Здрасте!

Почему, когда я ввожу несуществующий адрес геокодер всегда что-то находит

например, делаю запрос вида ("Томск, asdfdsdf"), а res.geoObjects.getLength() = 1

как можно узнать, что геокодер ничего не нашел?

 

function SearchStreetMap(street) {
    var search = "Томск, " + street;
    var myGeocoder = new ymaps.geocode(search, {
        results: 1
    }).then(function (res) {
        if (res.geoObjects.getLength()) {
            var point = res.geoObjects.get(0);
            var pointcoords = point.geometry.getCoordinates();
            myBalloon.geometry.setCoordinates(pointcoords);
            myMap.setCenter(pointcoords);
                ...
        }
    });
}

 

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

1. ymaps.geocode это функция, а не конструктор. Не надо писать new

 

var myGeocoder = new ymaps.geocode(search, {
    results: 1
}).then(

 

меняем на 

 

ymaps.geocode(search)
.then(

 

2. Геокодер пытается исправить запрос и/или угадать что его спрашивают.

В случае поиска домов можно смотреть на параметр precision 

 

в том то и проблема, что он пытается исправить сам...

я хотел так, если в запросе "Томск, деревня123", он ничего не находит, ищу в квадрате от центра Томска деревню123... а он корректирует запрос и выдает центр Томска