Страница 1 из 1

Какой формат слоя для хранения различной геометрии

Добавлено: 21 апр 2023, 11:38
Alekseevich
Здравствуйте.
Какой формат удобно использовать, чтобы работать со всеми типами геометрии в одном слое. И есть ли вообще такая возможность в QGIS? У меня точки,линии,полигоны..
Спасибо!

Re: Какой формат слоя для хранения различной геометрии

Добавлено: 21 апр 2023, 12:04
Константин Силкин
Добрый день! Таблицы MapInfo

Re: Какой формат слоя для хранения различной геометрии

Добавлено: 21 апр 2023, 12:16
Alekseevich
Спасибо.А при сохранении в шейп, в автомате создадутся файлы для точек,линий и т.д.?

Re: Какой формат слоя для хранения различной геометрии

Добавлено: 21 апр 2023, 12:31
Константин Силкин
Да, так задумано

Re: Какой формат слоя для хранения различной геометрии

Добавлено: 21 апр 2023, 13:57
tikhpetr
Можно также и в Global Mapper.

Re: Какой формат слоя для хранения различной геометрии

Добавлено: 27 апр 2023, 09:06
konst555
Скорее всего, ответ - никакой.
Есть много форматов файлов, которые позволяют в одном файле хранить различные типы геометрии (geopackage, tab). Но все-равно они останутся отдельными слоями как внутри файла, так и при работе в проекте.

Возможно, есть какая-то программа совмещающая при работе в одном слое некоторые типы, но это явно нелогично и неразумно. Может некоторые назовут Косметический слой MapInfo? Но скорее всего внутри проекта разные геометрии хранятся раздельно.

Если нужно компактное хранение локальных данных, то используйте geopackage.

Re: Какой формат слоя для хранения различной геометрии

Добавлено: 27 апр 2023, 10:42
gamm
konst555 писал(а): 27 апр 2023, 09:06Но скорее всего внутри проекта разные геометрии хранятся раздельно.
это не так, Мапинфа все хранит и обрабатывает вместе, в одном слое, геометрия хранится в одном общем файле. Стандарт пространственных данных позволяет хранить все вместе, в частности объединяя точки, линии и области в один составной объект (коллекцию). Насколько я в курсе, стандарт реализован в том же PostGIS тыц. Просто QGIS пошел по стопам Арки, в которой исторически все это разделялось, хотя нынче смысла в этом нет.

Re: Какой формат слоя для хранения различной геометрии

Добавлено: 27 апр 2023, 11:57
AlexRomantsov
Довольно много ГИС позволяют работать со слоем-солянкой (из точек, линий, полтигонов, коллекций, без геометрий вообще). И некоторые СУБД или форматы также предоставляют такую возможность, например Oracle Spatial может хранить в слое любую гремучую смесь из разных типов (там в заголовке объекта прописывается и класс геометрии, и система координат контура). Но на практике количество бардака, топологических и иных ошибок векторных описаний в таких системах сильно больше, чем в "классово чистых" ГИС (в которых слой - только полигоны). Сложнее стилизовать (стиль должен универсально описать все возможные варианты отображения точечных, линейных и полигональных объектов слоя. Сложнее автоподписывание (настройки подписей для точек, линий и полигонов ну очень разнятся). Есть проблемы например в поиске пересечений объектов таких слоев из точек, линий, полигонов. Неудобно обмениваться с другими ГИС. В общем, работать с простыми слоями одного класса геометрии - проще.

Re: Какой формат слоя для хранения различной геометрии

Добавлено: 27 апр 2023, 13:54
gamm
Работать и хранить это о разном. Никто не мешает сделать выборку по типу. А "сборная солянка" - это последствия увлечения одно время объектовыми базами данных, там вообще все, что угодно, в объект пихали :mrgreen:
Для нормальной работы достаточно не мешать разные типы в одном объекте. "Чистота типа" в слое нужна только в топологических покрытиях, там иначе никак

Re: Какой формат слоя для хранения различной геометрии

Добавлено: 27 апр 2023, 16:56
konst555
gamm писал(а): 27 апр 2023, 13:54Работать и хранить это о разном.
Действительно: работаем со слоями, а храним в таблицах (чаще всего).
gamm писал(а): 27 апр 2023, 10:42Стандарт пространственных данных позволяет хранить все вместе, в частности объединяя точки, линии и области в один составной объект (коллекцию). Насколько я в курсе, стандарт реализован в том же PostGIS тыц.
В приведенных примерах даже в одной таблице каждая запись (строчка) имеет стандартную, а не гибридную геометрию. Сама геометрия в этом случае должна хранится в одном поле и количество атрибутов у записей должно быть одинаково (ограничение можно обойти связыванием таблиц, но это другая, часто печальная история).
Ну запихнули в один файл, запихнули в одну таблицу, но потом будем извлекать отдельно и каждую своим отрисовщиком выводить (смотрите свой пример).
Получается, как ни старайся, а данные с различными геометриями при хранении не смешиваются. Они разделены на таблицы или записи (исключение, наверное, древовидные базы?).
gamm писал(а): 27 апр 2023, 13:54Для нормальной работы достаточно не мешать разные типы в одном объекте.
Если объектом считать выводимый слой, то полностью с вами согласен. Чаще всего так и происходит.
Бывает, конечно, что выводимый видимый слой формируется как совокупность отдельных геометрических объектов. Например, линия с точками - отметками пикетов. Но ведь можно заменить набором отрезков.
Возможно есть другие потребности в смешанных объектах, но все вполне решается.

Спасибо за обсуждение. Взгляды разные, но в целом все сходится.

Re: Какой формат слоя для хранения различной геометрии

Добавлено: 27 апр 2023, 19:10
gamm
1. Вы невнимательно смотрели пример. Там последний - коллекция, как раз сиесь
2. Все объекты, разного типа, лежат в одном слое. Что в мапинфе, что в pistgis
3. Вы смешиваете внешнее представление и структуру хранения и обработки. Это разное. Слой - это единица хранения на уровне таблицы базы данных или файла (набора файлов). Внутри может лежать произвольное число тематических "слоев", различаемых как по типу объектов, так и по атрибутам. Никто не мешает вообще все поместить в один слой, а для вывода в виде изображения или обработки использовать запросы.

Re: Какой формат слоя для хранения различной геометрии

Добавлено: 28 апр 2023, 09:32
konst555
Спасибо за замечания. Некоторые вещи упустил, но это ничего не меняет.

1. После ниже приведенной фразы поставьте запятую и добавьте слово "коллекция". Далее смысл не меняется. Или вы сможете мне показать тип POINTPOLYGON(...)? Будет очень интересно и познавательно.
konst555 писал(а): 27 апр 2023, 16:56В приведенных примерах даже в одной таблице каждая запись (строчка)

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

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