Клуб API Карт

Скрипт перестаёт выполняться

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

Пытаюсь найти в каком полигоне появляется результат поиска. Но на строчке myMap.geoObjects.searchInside(ttk_polygon.geometry); выполнение кода останавливается. Отладчик не выдает ни одной ошибки. 

Не совсем понимаю, какой объект использовать для вызова searchInside.

 

mySearchControl.events.add('resultselect', function (e) {
        var index = e.get('index');
        mySearchControl.getResult(index).then(function (res) {
            mySearchResults.add(res);           
            objectsInTTk = myMap.geoObjects.searchInside(ttk_polygon.geometry);
            objectsInMoscow = myMap.geoObjects.searchInside(mkad_polygon.geometry);
            if (objectsInTTk.length) {

                // Адрес внутри ТТК
                console.log('внутри ттк');

            } else if (objectsInMoscow.length) {

                // Адрес внутри МКАД
                console.log('внутри мкад');

            } else {

                // Адрес за МКАД
                // Расчет расстояния до адреса
                console.log('за мкад');       
            }

 

 

Помогите разобраться. Спасибо!

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

 searchInside  это метод geoQuery, а не геоколлекции.

objectsInTTk = geoQuery(res).searchInside(ttk_polygon);

Проще решить через метод contains геометрии полигона

ttk_polygon.geometry.contains(res.geometry.getCoordinates());

Костерин Максим
27 января 2016, 23:24

Спасибо, попробую!

Костерин Максим
27 января 2016, 23:24

Да, это сработало. Спасибо огромное!