Подготовили примеры реализации прямого доступа из ГИС "Карта" к таблицам PostgreSQL для экспорта и импорта данных. Реализованы две отдельные задачи: Экспорт данных карты в базу PostgreSQL и Импорт на карту данных из базы PostgreSQL. Первая задача позволяет перегрузить в таблицу базы PostgreSQL выбранные на карте объекты (в базу экспортируются как атрибуты, так и метрика объектов). Вторая задача переносит объекты из таблицы PostgreSQL на карту. Пользователь может сам настроить, какие атрибуты выбранных объектов переносить из карты в базу и наоборот. Для работы функций нужно, чтобы в таблицах базы, куда выполняется перенос данных, было предусмотрено поле для хранения метрики. Задача позволяет выполнять последовательный перенос точечных, линейных и площадных объектов. За один вызов может быть перегружено любое количество объектов одного типа локализации.
Оба примера реализованы как потоковые задачи в среде Microsoft Visual Studio.
В данных примерах работа с метрикой объектов осуществляется согласно спецификации OpenGIS, т.е. используется WKB стандарт хранения метрики. Это стандартный способ работы с метрикой в PostgreSQL и мы решили начать именно с него. Мы планирум позже подготовить еще ряд примеров по работе с открытыми СУБД. Постараемся учесть и Ваше пожелание.
KFF написал: К слову. СУБД Postgres уникальна и своеобразна тем, что у неё есть следующие встроенные типы данных
Oracle Spatial ещё более уникален и своеобразен - в нём есть не только соответствующие типы данных, но и всё остальное, вплоть до редактора условных знаков.
Олег Касьянов написал: работа с метрикой объектов осуществляется согласно спецификации OpenGIS, т.е. используется WKB стандарт хранения метрики.
Немного поправлю. OpenGIS никак не регламентирует стандарты хранения метрики в БД. Поэтому все производители изобрели что-то свое. Ни один из форматов хранения географических координат - Oracle SD_GEOMETRY, PostgreSQL (PostGIS) GEOMETRY, MS SQL GEOGRAPHY, ArcSDE ST_GEOMETRY и т.д., - не соответствуют никаким стандартам. Поддержка стандартов OGC реализована через набор методов, предоставляющих метрику объектов в стандартизованном виде. Как храниться - это внутреннее дело производителя СУБД. Четко документирован внутренний формат хранения только для Oracle Spatial. У остальных это "черный ящик". Формат WKB - это действительно стандарт. Его поддерживают все СУБД. Но это не формат хранения метрики в них.
Цитата
KFF написал: СУБД Postgres уникальна и своеобразна тем, что у неё есть следующие встроенные типы данных
Сейчас в основном используются типы, предоставляемые расширением PostGIS. Во-первых, они наиболее приближены в части типов поддерживаемой геометрии к общепринятым стандартам. Во-вторых, расширение PostGIS - это не только типы, а еще и большой набор методов работы с ними - конструкторы, функции пространственного анализа, трансформирования и пр.
Цитата
LMM написал: Oracle Spatial ещё более уникален и своеобразен - в нём есть не только соответствующие типы данных, но и всё остальное, вплоть до редактора условных знаков.
Видимо, речь идет о Oracle Map Viewer? Это не совсем Oracle. К хранению и обработке данных это имеет опосредованное отношение. Просто грамотная политика Oracle позволяет предлагать под своим брэндом сразу весь спектр программных средств, необходимых пользователю. И СУБД, и так называемое Middleware ПО. Отдельным плюсом является подробное документирование внутреннего формата, качественная сетевая задача, реализованная внутри СУБД, геокодирование и пр.
Одним словом, все СУБД хороши. "Выбирай себе на вкус". А получать доступ к пространственным данным в них стандартным способом можно через представление в формате WKB (или WKT).