PostGIS Shapefile Import Manager не импортирует shp-файлы

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

PostGIS Shapefile Import Manager не импортирует shp-файлы

Сообщение BSvetlana » 15 ноя 2013, 15:38

Добрый день!
Пытаюсь импортировать shp-файл в PostGre с помощью утилиты PostGIS Shapefile Import/Export Manager. Но каждый раз импорт обрывается ошибкой

*.shp: dbf file (.dbf) can not be opened.
Shapefile import failed.

С shp-файлом все в порядке, насколько об этом можно судить по загрузке в ArcGIS, все таблицы открываются. На всякий случай удалила колонку с русским текстом. Остались только цифры. Импорт обрывается на первой же строчке вставки в таблицу.

Пробовала импортировать и с помощью утилиты shp2pgsql. После удаления колонки с русским текстом sql-файл создался, но при запуске скрипта ошибка "ошибка синтаксиса", указатель на первую же строчку вставки данных.

Помогите, пожалуйста

muta
Новоприбывший
Сообщения: 2
Зарегистрирован: 24 фев 2010, 12:19
Репутация: 0

Re: PostGIS Shapefile Import Manager не импортирует shp-файл

Сообщение muta » 15 ноя 2013, 16:00

shp2pgsql -d -W charset файл.shp наименование_таблицы.table файл.sql

попробуйте так, вместо charset напишите WINDOWS-1251 (насколько понятно у вас Виндовс)

BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

Re: PostGIS Shapefile Import Manager не импортирует shp-файл

Сообщение BSvetlana » 15 ноя 2013, 16:16

Сам sql-файл создается. Вот его вид

SET CLIENT_ENCODING TO UTF8;
SET STANDARD_CONFORMING_STRINGS TO ON;
BEGIN;
CREATE TABLE "house" (gid serial,
"id" int4,
"id_adr" int4,
"adr_drb" int4,
"typ_cod" int4,
"leg_num" int4,
"feature_id" int4,
"shape_area" numeric,
"shape_len" numeric,
"objectid" int4);
ALTER TABLE "house" ADD PRIMARY KEY (gid);
SELECT AddGeometryColumn('','house','geom','4326','MULTIPOLYGON',2);
COPY "house" ("id","id_adr","adr_drb","typ_cod","leg_num","feature_id","shape_area","shape_len","objectid",geom) FROM stdin;
38401 0 0 393 64 36507 3.56379349466e-008 1.08171069425e-003 36507 0106000020E61000000100000001030000000100000007000000EBEDB03825DF42408F5F70B480E74B40C049680525DF42409FC5D65C83E74B408ED803BA2ADF424001CFE14D83E74B4042B264B42CDF42404771AF4883E74B407D09455534DF42400D10B33483E74B407600A34F34DF424069EF26D480E74B40EBEDB03825DF42408F5F70B480E74B40
COMMIT;

Курсор ошибки указывает на начало первой копируемой строки, т.е. в моем случае на 38401. Я уже пробовала и название поля geom в кавычки брать, и без кавычек. И cp1251, и windows-1251. Пока только ошибки.

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: PostGIS Shapefile Import Manager не импортирует shp-файл

Сообщение Дмитрий Барышников » 15 ноя 2013, 23:46

Давайте ваш файл либо сюда либо в личку, можно часть файла (но только что бы на этой части тоже ошибка проявлялась).

BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

Re: PostGIS Shapefile Import Manager не импортирует shp-файл

Сообщение BSvetlana » 18 ноя 2013, 08:44

Спасибо за поддержку.
Вот весь текст файла


SET CLIENT_ENCODING TO UTF8;
SET STANDARD_CONFORMING_STRINGS TO ON;
BEGIN;
CREATE TABLE "allhouse" (gid serial,
"id" int4,
"id_adr" int4,
"adr_drb" int4,
"typ_cod" int4,
"leg_num" int4,
"feature_id" int4,
"shape_area" numeric,
"shape_len" numeric,
"objectid" int4);
ALTER TABLE "allhouse" ADD PRIMARY KEY (gid);
SELECT AddGeometryColumn('','allhouse','geom','4326','MULTIPOLYGON',2);
COPY "allhouse" ("id","id_adr","adr_drb","typ_cod","leg_num","feature_id","shape_area","shape_len","objectid",geom) FROM stdin;
38401 0 0 393 64 36507 3.56379349466e-008 1.08171069425e-003 36507 0106000020E61000000100000001030000000100000007000000EBEDB03825DF42408F5F70B480E74B40C049680525DF42409FC5D65C83E74B408ED803BA2ADF424001CFE14D83E74B4042B264B42CDF42404771AF4883E74B407D09455534DF42400D10B33483E74B407600A34F34DF424069EF26D480E74B40EBEDB03825DF42408F5F70B480E74B40
\.
COMMIT;


Сформирован автоматически с помощью утилиты shp2pgsql через файл *.bat

BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

Re: PostGIS Shapefile Import Manager не импортирует shp-файл

Сообщение BSvetlana » 18 ноя 2013, 10:36

Я поняла свою ошибку. Нельзя просто так загружать этот запрос в окно запросов. Но даже при использовании следующей строки из примера psql импорта не происходит. Ошибка появляется на строке Alter table.

SET PATH=C:\Program Files\PostgreSQL\9.3\bin
shp2pgsql -i -D -s 4326 -W windows-1251 allhouse.shp allhouse > allhouse.sql
psql -U postgres -f allhouse.sql -d mydb

Аватара пользователя
Дмитрий Барышников
Гуру
Сообщения: 2572
Зарегистрирован: 17 ноя 2009, 19:17
Репутация: 261
Откуда: Москва

Re: PostGIS Shapefile Import Manager не импортирует shp-файл

Сообщение Дмитрий Барышников » 18 ноя 2013, 20:53

Светлана, я так и не понял. Вы не можете загрузить ESRI shape file или вывод утилиты бог весть какой версии?
Если именно шейп файл, как и написано в теме, так приложите его, иначе все это офтопп.

BSvetlana
Участник
Сообщения: 69
Зарегистрирован: 28 окт 2010, 15:51
Репутация: 0

Re: PostGIS Shapefile Import Manager не импортирует shp-файл

Сообщение BSvetlana » 19 ноя 2013, 11:16

Вот такая инструкция у меня получилась.
1. Устанавливаю PostgreSQL 9.3.1
2. Устанавливаю надстройку PostGIS
3. Запускаю bat-файл со следующим содержанием

SET PATH=C:\Program Files\PostgreSQL\9.3\bin
shp2pgsql -i -D -s 4326 -W windows-1251 house.shp house > house.sql

4. Из получившегося house.sql извлекаю фрагмент создания таблицы, добавляю в создание строку with oids.
5. Запускаю bat-файл со следующим содержанием:

SET PATH=C:\Program Files\PostgreSQL\9.3\bin
shp2pgsql -a -i -D -s 4326 -W windows-1251 house.shp house > house.sql
psql -U postgres -f house.sql -d mydb

6. Получаю результат

То есть тему я создала из-за того, что шейп-файл действительно не импортировался ни встроенной утилитой PostGIS, ни утилитой shp2pgsql. Только после разбиения процесса на 2 этапа (создание таблицы, добавление строк в уже существующую таблицу) я получила результат.
Но теперь у меня другая проблема. Я не могу отобразить полученный PostGIS-слой на карте. Я уже создала очередную тему. Возможно, я не знаю, как донастроить PostgreSQL. PostgreSQL пока запущен на локальном компе.
Если знаете решение, помогите, пожалуйста.

Аватара пользователя
rhot
Гуру
Сообщения: 1727
Зарегистрирован: 25 янв 2011, 17:50
Репутация: 194
Ваше звание: доктор
Откуда: Архангельск

Re: PostGIS Shapefile Import Manager не импортирует shp-файл

Сообщение rhot » 19 ноя 2013, 12:32

дайте ссылку на новую тему
___________(¯`·.¸(¯`·.¸ Scientia potentia est _/ {SILVA}:::{FOSS}:::{GIS} \_ Знание сила ¸.·´¯)¸.·´¯)___________

Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя