Выборка по расположению: 3D отношения

Пример разницы между результатами выборки 2D и 3D

Далее представлен пример различных результатов, полученных при использовании выборки по пространственному расположению В пределах расстояния (WITHIN_A_DISTANCE в Python) или В пределах расстояния 3D (WITHIN_A_DISTANCE_3D в Python) для 3D-данных. Входной класс пространственных объектов – это комнаты (фиолетовые кубы), а Вспомогательный объект выборки– маленький желтый круг. Поставленный вопрос: Какие комнаты попадают в заданное расстояние от определенных значений координат x,y,z (желтая точка). Полученные результаты отличаются, в зависимости от использованных Отношений Если выбрано отношение В пределах расстояния (WITHIN_A_DISTANCE в Python), то все комнаты, находящиеся в пределах указанного расстояния (в координатах x,y), выбраны – от нижнего до самого верхнего этажа здания.

Результат выборки комнат с использованием отношения В пределах расстояния от желтой точки

Однако если используется отношение В пределах расстояния 3D, измерение расстояний между точкой с координатами x,y,z (желтая точка) и отдельными комнатами производится в трехмерном пространстве, а поэтому выбраны будут только несколько комнат, действительно находящихся на заданном 3D-расстоянии от точки.

Результат выборки комнат с использованием отношения В пределах расстояния 3D от желтой точки

Корректные входной слой и вспомогательный слой выборки.

Слои, удовлетворяющие следующему критерию, являются корректными в качестве входных слоев и вспомогательных слоев выборки:

  • Слой из класса пространственных объектов со следующими типами геометрии: точка, мультиточка, линия, мультипатч, полигон.
  • Слой, использующий базовую высоту и/или вытягивание.
  • Слой, ссылающийся на файл слоя (.lyrx) и удовлетворяющий перечисленным выше критериям, тоже является корректным. Эта информация может быть полезна при запуске операции в автономном скрипте python.

Получение лучшего результата

При использовании мультипатчей при определении соответствия 3D-отношению используется поверхность геометрии, независимо от того, является ли мультипатч замкнутым или нет. К примеру, при вычислении 3D-расстояния от конкретного точечного объекта до объекта мультипатч, например, тетраэдра определяется расстояние до поверхности тетраэдра, независимо от того, лежит ли точка в пределах тетраэдра или нет.

Использование отношения В пределах расстояния 3D на данных, находящихся в географической системе координат (то есть, не в системе координат проекции), может дать плохие или некорректные результаты по следующим причинам:

  • Преобразование десятичных градусов в линейные единицы измерения может давать некорректные значения при больших географических экстентах.
  • Расстояния, использующиеся в географических системах координат, не учитывают кривизну земной поверхности (все измерения производятся на плоскости).
Для достижения лучших результатов запускайте операцию в системе координат проекции, которая сводит к минимуму искажение расстояний для данных.