Преимущества Multipart Особенности?


28

Составные точки, линии и многоугольники используются практически в каждой ГИС, но какие преимущества они дают?

В реляционной базе данных атрибуты, совместно используемые различными объектами, могут быть сохранены один раз, а идентификаторы используются для связи их с отдельными записями геометрии. Итак, являются ли многокомпонентные функции наследием плоских файловых данных?

альтернативный текст

Ответы:


35

Если ваше программное обеспечение не поддерживает функции, состоящие из нескольких частей, вам, возможно, придется пойти на необычные и сложные шаги для выполнения пространственных операций. Например, пересечение двух многоугольников, как правило, может иметь более одного связного компонента. Как алгоритмически, так и концептуально удобно предположить, что такое пересечение возвращает один объект (многоугольник), а не произвольное число многоугольников. (По тем же причинам полезно поддерживать различные формы нулевых и вырожденных объектов - например, полигоны, имеющие экстент, но нулевую площадь, или даже полигоны с местоположениями, но не экстент или площадь. Эти вещи могут возникнуть в результате геометрических операций; их поддержка устраняет много суетной постобработки и может предотвратить исчезновение полезной информации.)

С точки зрения реляционной базы данных многокомпонентные функции делают возможной нормализацию: когда атрибут неотделим от коллекции полигонов, вы хотите представить эту коллекцию как один объект. Хорошим примером может служить функция, представляющая практически любую страну в мире, имеющую береговую линию, поскольку эта страна, вероятно, включает в себя несколько островов. Вы действительно хотите заставить свою СУРБД делать одну копию атрибутов страны для каждого маленького острова? Скорее всего нет. Вы даже не хотите (или не нуждаетесь) поддерживать несколько копий указателя на атрибуты.

Как бы вы представили сеть или ветвящееся дерево, если бы не координированная мультиполилиния?

С точки зрения математики или алгоритмических структур данных, использование многокомпонентной функции является упрощением, а не усложнением. Чтобы поддерживать многосвязные многоугольники (кольца и многоугольники с «дырками»), вам уже нужен аппарат для представления многочастных многоугольников.

Наконец, «векторные» объекты и их типичное «представление спагетти» берут свое начало в теории симплициальных комплексов . (Только благодаря этой несколько сомнительной связи с теорией топологии термин «топология» превратил ее в ГИС, которая в остальном практически ничего не использует из этой теории.) Эта теория требует и извлекает пользу из многокомпонентных функций. Фактически наличие только одного компонента не является частью определения симплициального комплекса, а скорее оказывается особым свойством, которым обладают некоторые из них (что определяется рангом их нулевой группы гомологий).). Таким образом, «одиночная часть» не является определяющим свойством, а представляет собой просто топологическое качество в том же смысле, что наличие кольца или «дыры» в многоугольнике является топологическим качеством (связанным с рангом первой группы гомологий). ,


1
Очень хороший ответ. Я не уверен на 100% в использовании многокомпонентных функций для нормализации базы данных - у каждого многоугольника все еще есть уникальные свойства, такие как площадь и длина, и на такой вопрос, как «какая часть Греции состоит из островов», становится трудно ответить без давая каждому полигону атрибуты.
география

2
@geographika Ваш хороший пример того, почему нужно гибко представлять объекты (пространственные или нет) с базами данных. Чтобы еще больше его растянуть, можно также утверждать, что отдельные полигоны необходимо «взорвать» в их наружных и внутренних кольцах, чтобы ответить на такие вопросы, как «сколько территории Греции состоит из озер?» Любая данная структура базы данных сделает определенные запросы более легкими, а другие - более сложными; поэтому часть хорошего дизайна базы данных должна включать рассмотрение предполагаемого использования базы данных. Хорошая (пространственная) СУБД обеспечит механизмы для преобразования между различными структурами.
whuber

2
+1 Отличный ответ. Возможно, стоит обсудить недостатки производительности для многокомпонентных функций. Возьмите полиномиальный класс объектов автомобильных дорог США, где элементы шоссе разделены на границах штатов. Создайте второй класс объектов, растворившись по названию шоссе, в результате чего I-10 охватит весь континент. Теперь сравните производительность инструмента Идентифицировать. Если стратегия пространственной индексации ESRI не изменилась, она будет медленнее в классе многокомпонентных объектов, поскольку существует намного больше MBR, которые перекрывают друг друга. Каждая координата каждого объекта, MBR которого перекрывает точку, проверяется.
Кирк Куйкендалл

@ Кирк Хороший вопрос. Ваши примеры указывают на недостатки в технологии ESRI больше, чем на принципиальные проблемы. Идентификация объекта с помощью достаточно эффективной, но простой пространственной структуры данных, такой как дерево квадрантов, должна иметь производительность O (log (N)) (после первоначального кэширования сохраненной структуры данных). Разделение каждого из N признаков (предположительно больших) на среднее число K кусков (предположительно, умеренное или небольшое по сравнению с N) увеличивает log (N) до log (N) + log (K), что - с учетом предположений - практически незаметный.
uuber

1
@Dandy Спасибо за то, что подчеркнули различие между геометрией из нескольких частей и простой коллекцией деталей. Я не думаю, что все типы объектов, состоящие из нескольких частей, обязательно «ограничивают» свои компоненты; это, вероятно, зависит от реализации - что указывает на то, что понятие «составной части» содержит некоторые тонкие изменения.
whuber

12

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.