Импортировать .shp в PostgreSQL?


14

Я хочу импортировать файл shp в postgreSQL. Сначала я создаю файл sql, а затем запускаю PostgreSQL. Чтобы создать файл sql, я запускаю эту команду в Windows cmd:

shp2pgsql -s 4326 worldCountries.shp worldcountries postgres > worldcountries.sql

а затем запустите:

psql -d postgres -U postgres -p 4321 -f worldcountries.sql

но результат таков:

psql: worldcountries.sql: 21: ОШИБКА: функция addGeometrycolumn (неизвестно, неизвестно, неизвестно, неизвестно, неизвестно, целое число) не существует

Ответы:


13
ERROR: **function addGeometrycolumn**(unknown, unknown, unknown, unknown,unknown, integer) does not exist

Кажется, что PostGIS еще не установлен. PostGIS - это расширение Postgres, которое позволяет использовать географические файлы.

Установите его, и ваш импорт будет работать нормально.


3
И команда это "CREATE EXTENSION postgis;"postgis.net/docs/… .
— user30184

1
@ user30184 Абсолютно правильно, но учтите, что это предполагает PostgreSQL 9.1 или выше. (По моему мнению, очень мало причин использовать что-то более старое.)
— jpmc26


1

Вы можете использовать встроенный плагин для импорта, который устанавливается при установке расширения PostGis в PostgreSQL. Вы можете найти его в разделе «Плагины» в меню. Он называется PostGIS Shapefile и DBF loader.

посмотрите это видео на YouTube в качестве примера


0

У вас есть другая проекция в вашем PSQL; и иметь проекцию не обязательно. Есть ли схема, к которой вы хотите добавить файл формы?

Это должно работать:

shp2pgsql -s 4326 -I worldcountries.shp schema.worldcountries > dr_worldcountries.sql

psql -f worldcountries.sql -h [host] -d [database] -U postgres

3
-pfor psqlсообщает ему порт сервера, а не проекцию. Проекция становится встроенной в сценарий SQL. См. Прекрасное руководство для psqlповедения. В этом случае порт, который указывает OP, не является портом по умолчанию, поэтому он является обязательным. Я бы также вообще не советовал хранить фигуру без проекции. Это ограничивает вашу способность изменять прогнозы, что может быть полезно для получения более точных расчетов.
— jpmc26
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.