Интернет, компьютеры, софт и прочий Hi-Tech

Подписаться через RSS2Email.ru
Руководство по PostGIS. Глава 4. Использование PostGIS. 4.3. Загрузка данных ГИС
Назад Вперед

4.3. Загрузка данных ГИС

Однажды создав пространственную таблицу, вы можете загружать данные ГИС в базу. В настоящее время существуют два способа положить данные в базу PostGIS/PostgreSQL: использование команд в формате SQL или использование загрузчика/дампера шейп-файлов.

4.3.1. Использование SQL

Если вы можете конвертировать ваши данные в текстовое представление, то для загрузки данных в PostGIS проще всего использовать формат SQL. Как и в случае Oracle и других баз SQL данные могут быть загружены через терминал SQL из большого текстового файла, содержащего SQL-запросы "INSERT".

Файл (roads.sql для примера) с загружаемыми данными может выглядеть так:

BEGIN;
INSERT INTO roads (road_id, roads_geom, road_name)
  VALUES (1,GeomFromText('LINESTRING(191232 243118,191108 243242)',-1),'Jeff Rd');
INSERT INTO roads (road_id, roads_geom, road_name)
  VALUES (2,GeomFromText('LINESTRING(189141 244158,189265 244817)',-1),'Geordie Rd');
INSERT INTO roads (road_id, roads_geom, road_name)
  VALUES (3,GeomFromText('LINESTRING(192783 228138,192612 229814)',-1),'Paul St');
INSERT INTO roads (road_id, roads_geom, road_name)
  VALUES (4,GeomFromText('LINESTRING(189412 252431,189631 259122)',-1),'Graeme Ave');
INSERT INTO roads (road_id, roads_geom, road_name)
  VALUES (5,GeomFromText('LINESTRING(190131 224148,190871 228134)',-1),'Phil Tce');
INSERT INTO roads (road_id, roads_geom, road_name)
  VALUES (6,GeomFromText('LINESTRING(198231 263418,198213 268322)',-1),'Dave Cres');
COMMIT;

Данные из файла могут быть легко загружены в PostgreSQL с помощью терминального экрана SQL "psql":

psql -d [database] -f roads.sql

4.3.2. Использование загрузчика

Загрузчик данных shp2pgsql конвертирует шейп-файлы ESRI в соответствующий SQL для вставки в базу данных PostGIS/PostgreSQL. Загрузчик имеет несколько рабочих режимов, задаваемых флагами командной строки:

-d

Удалить таблицу базы данных перед созданием новой таблицы с данными из шейп-файла.

-a

Добавить данные из шейп-файла в таблицу базы данных. Заметим, что для использования этой опции при загрузке множества файлов, эти файлы должны иметь одинаковые атрибуты и одинаковые типы данных.

-c

Создать новую таблицу и заполнить ее из шейп-файла. Этот режим включен по умолчанию.

-p

Произвести только код SQL для создания таблицы без добавления данных. Может быть использована, если вам нужно разделить шаги по созданию таблицы и загрузке данных.

-D

Использовать формат PostgreSQL "dump" для вывода данных. Эта опция может быть скомбинирована с -a, -c и -d. Это позволит ускорить загрузку по сравнению с умолчальным форматом SQL "insert". Используйте ее для очень больших наборов данных.

-s <SRID>

Создает и заполняет геометрические таблицы с указанным SRID.

-k

Сохранять регистр идентификаторов (столбец, схема и атрибуты). Заметим, что все атрибуты в шейп-файлах имеют ВЕРХНИЙ регистр.

-i

Привести все целые числа к стандартным 32-битным целым, не создавать 64-битных bigint-ов, даже если заголовочное описание DBF будет требовать другого.

-I

Создает индекс GiST на геометрическом столбце.

-w

Вывести формат WKT для использования в старых (0.x) версиях PostGIS. Заметим, что это приведет к изменению координат и удалению значений M из шейп-файла.

-W <кодировка>

Указывает кодировку вводимых данных (в файле DBF). При ее использовании все атрибуты в DBF будут конвертироваться из указанной кодировки в UTF8. Результирующий вывод SQL будет содержать команду SET CLIENT_ENCODING to UTF8. Таким образом, данные будут конвертированы из UTF8 в любую внутреннюю кодировку, с которой вы сконфигурировали базу данных.

Заметим, что -a, -c, -d и -p взаимно исключают друг друга.

Посмотрите пример сессии использования загрузчика для создания файла ввода и его загрузки:

# shp2pgsql shaperoads myschema.roadstable > roads.sql
# psql -d roadsdb -f roads.sql

В UNIX конвертация и загрузка могут буть выполнены за один шаг с помощью команды:

# shp2pgsql shaperoads myschema.roadstable | psql -d roadsdb

Назад Выше Вперед
4.2. Использование стандартов OpenGIS Начало 4.4. Восстановление данных ГИС
Биржа долевых инвестиций SIMEX.

Последнее редактирование: 2010-03-09 13:56:06

Метки материала: postgis, гис, руководство, база данных, postgresql, sql, запросы, pgsql, учебник, server, системное администрирование, открытое по, map, manual, данные, геоинформационные системы, open source, бд, базы данных, it, gis

Оставьте, пожалуйста, свой комментарий к публикации

Представиться как     Антибот:
   

Просьба не постить мусор. Если вы хотите потестить xBB, воспользуйтесь кнопкой предварительного просмотра на панели инструментов xBBEditor-а.


© 2007-2017, Дмитрий Скоробогатов.
Разрешается воспроизводить, распространять и/или изменять материалы сайта
в соответствии с условиями GNU Free Documentation License,
версии 1.2 или любой более поздней версии, опубликованной FSF,
если только иное не указано в самих материалах.