Клуб API Карт

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

Костерин Максим
30 ноября 2014, 20:27

Пытаюсь найти в каком полигоне появляется результат поиска. Но на строчке 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());

Костерин Максим
1 декабря 2014, 16:14

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

Костерин Максим
5 декабря 2014, 22:38

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