Выделение пересекающихся объектов.
При проведении выборки через контекстное меню инструмента "выбрать объекты" на полигон случайно обратил внимание на нестандартную реакцию. Пока пытался вычислить причину обнаружил ещё несколько несуразностей. Собрал всё в единый глюкодром, что приложен в аттачмент. Написанное ниже проще понять, глядя в него.
Начну с простого.
1. функция считает пересекающимися стыкованные полигоны, имеющие общую границу. Чисто теоретически пересекающимися они не являются, проверку на отсутствие пересечений соответствующим инструментом проходят, однако имеют узлы с одинаковыми координатами. Не уверен, что это не правильно, но всё же... (в примерах полигоны озера и кустарника)
2. функция не уверенно срабатывает на полигонах сложной конфигурации. В глюкодроме они собраны в рамку направленного текста "Не правильно"
-пример 1. Применение на полигон леса вызывает выделение полилинии "граница гор. района", но пропускает пересечение с "крупной дорогой"
Применение на полигон кустарника находит дорогу и озеро, но пропускает границу...
-пример 2. Применение на кустарник лес ловит, а обратное применение на лес - кустарник не видит.
-пример 3. сгенерирован из 1. Применение на кустарник пропускает и дорогу и границу, но выделяет озеро, с которым не пересекается...
-пример 4. смоделирован. Дорога не поймалась. Применение на черном полигоне, не выходящем за границы большего, лесного, - тоже не сработало.
Закономерность возникновения ошибок понятна, может быть воспроизведена "на чистом листе". Есть, что пилить.
Дальше - интересней. Причину этого видения не осознал, поэтому просто перечислю обнаруженные особенности поведения. Фрагмент изъят из исходника, удалены объекты застройки и улицы. На "чистом листе" смоделировать подобное не удалось.
На глюкодроме зона выноса мозга "огорожена железной дорогой".
Применение на лес ведет к выделению полилинии границы гор. района, вообще никак с ним не связанной...
Изначально она была одна. Имеет Label "Глюк". Две остальные - клонированы и перемещены (полная смена координат). При этом клон1 выделяется, а клон2 - нет.
Если утянуть клон2 вниз, в нишу железной дороги - будут выделяться все три. (влияет выступ полигона?)
Увеличил расстояние до леса - выделение пропало. Подвинул - вернулось.
Возможно изменение конфигурации линии (растянул клон1), выделение сохраняется.
Если разомкнуть линию - выделение пропадает.(!)
Фантастика... Проверил на трех разных машинах под ХР и 7 + portable 547 и 546. Воспроизводится.
При просмотре польского текста ничего подозрительного не обнаружил. Может плохо смотрел...
Все выше перечисленное воспроизводится и посредством продвинутого выбора по типу и пересечению. Это понятно. Алгоритм один.
Добавлено спустя 10 минут 35 секунд:
Пока перечитывал, появилась мысль. Проверил - получилось.
Есть ещё одна обязательная закономерность. Линия "граница" должна быть самопересеченной!!! Смоделировал!
