xBB – бесплатные скрипты PHP и доки для вебмастеров | |||||||||||||
ДокументацияМетки (все метки)bbcode, html, php, xbb, базы данных, интернет, компьютер, программирование, сайт, софт
Подписаться через RSS2Email.ru
|
Глава 4. Использование PostGISСодержание
4.1. Объекты ГИСОбъекты ГИС, поддерживаемые PostGIS, являются надмножествами "Простых возможностей", определенных Консорциумом OpenGIS (OGC). Начиная с версии 0.9, PostGIS поддерживает все объекты и функции, определенные OGC в спецификации "Простые возможности SQL". PostGIS расширяет стандарт поддержкой координат 3DZ, 3DM и 4D. 4.1.1. OpenGIS WKB и WKTСпецификация OpenGIS определяет два стандартных способа передачи пространственных объектов: в форме Well-Known Text (WKT) и в форме Well-Known Binary (WKB). WKT и WKB оба включают информацию о типе объекта и координаты расположения объекта. Примеры текстового представления (WKT) пространственных объектов приведены ниже:
Кроме того, спецификация OpenGIS требует, чтобы внутренний формат хранения пространственных объектов включал систему идентификаторов пространственных ссылок (spatial referencing system identifier - SRID) для вставки в базу данных. Ввод/вывод в этих форматах доступен с использованием следующих интерфейсов: bytea WKB = asBinary(geometry); text WKT = asText(geometry); geometry = GeomFromWKB(bytea WKB, SRID); geometry = GeometryFromText(text WKT, SRID); Например, правильный запрос insert для создания и вставки пространственного объекта OGC может быть таким: INSERT INTO geotable ( the_geom, the_name )
VALUES ( GeomFromText('POINT(-126.4 45.32)', 312), 'A Place');
4.1.2. PostGIS EWKB, EWKT и Канонические формыФормат OGC поддерживает только 2d геометрии, и соответствующие SRID-ы никогда не вставляются в вводимые/выводимые представления. PostGIS расширяет форматы текущего набора OGC (всякий валидный WKB/WKT является валидным EWKB/EWKT), но это может измениться в будущем, если OGC выпустит новый формат, противоречащий нашим. Таким образом, вам НЕ СЛЕДУЕТ пользоваться этой возможностью! В PostGIS-овский EWKB/EWKT добавлена поддержка координат 3dm, 3dz, 4d и встроена информация SRID. Примеры текстовых представлений (EWKT) пространственных объектов, расширенных описанными возможностями:
Ввод/вывод в этих форматах возможен с использованием следующих интерфейсов: bytea EWKB = asEWKB(geometry); text EWKT = asEWKT(geometry); geometry = GeomFromEWKB(bytea EWKB); geometry = GeomFromEWKT(text EWKT); Пример правильного запроса insert для создания и вставки пространственного объекта PostGIS: INSERT INTO geotable ( the_geom, the_name )
VALUES ( GeomFromEWKT('SRID=312;POINTM(-126.4 45.32 15)'), 'A Place' )
"Канонические формы" типов в PostgreSQL позволяют вам получить представления с помощью простых запросов (без вызова каких либо функций) и гарантируют выполнение простых insert-ов, update-ов или копирования. Эти формы для PostGIS-овского типа "geometry": - Вывод
- binary: EWKB
ascii: HEXEWKB (EWKB в 16-ричной форме)
- Ввод
- binary: EWKB
ascii: HEXEWKB|EWKT
Например, следующий запрос читает EWKT и возвращает HEXEWKB в процессе канонического ввода/вывода ascii: =# SELECT 'SRID=4;POINT(0 0)'::geometry; geometry ---------------------------------------------------- 01010000200400000000000000000000000000000000000000 (1 row) 4.1.3. SQL-MM Часть 3Пространственная спецификация мультимедийных приложений SQL расширяет простые возможности спецификации SQL, определяя несколько криывых, интерполированных дугами. Определения SQL-MM определяют координаты 3dm, 3dz и 4d, но не позволяют включать информацию о SRID. Известные текстовые расширения поддерживаются еще не полностью. Ниже показаны примеры некоторых простых криволинейных геометрий:
ЗамечаниеВ настоящее время PostGIS не поддерживает использование составных кривых в криволинейном полигоне. ЗамечаниеВсе числовые сравнения с плавающей точкой выполняются в SQL-MM в пределах допустимой точности, - в настоящее время - 1E-8.
Последнее редактирование: 2008-03-14 20:44:42 Метки материала: PostGIS, ГИС, OpenGIS, WKB, WKT, EWKB, EWKT, Канонические формы, SQL-MM, map Оставьте свой комментарий: |
||||||||||||
© 2007-2010, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.