Страница 1 из 1
PostGIS Shapefile Import Manager не импортирует shp-файлы
Добавлено: 15 ноя 2013, 15:38
BSvetlana
Добрый день!
Пытаюсь импортировать shp-файл в PostGre с помощью утилиты PostGIS Shapefile Import/Export Manager. Но каждый раз импорт обрывается ошибкой
*.shp: dbf file (.dbf) can not be opened.
Shapefile import failed.
С shp-файлом все в порядке, насколько об этом можно судить по загрузке в ArcGIS, все таблицы открываются. На всякий случай удалила колонку с русским текстом. Остались только цифры. Импорт обрывается на первой же строчке вставки в таблицу.
Пробовала импортировать и с помощью утилиты shp2pgsql. После удаления колонки с русским текстом sql-файл создался, но при запуске скрипта ошибка "ошибка синтаксиса", указатель на первую же строчку вставки данных.
Помогите, пожалуйста
Re: PostGIS Shapefile Import Manager не импортирует shp-файл
Добавлено: 15 ноя 2013, 16:00
muta
shp2pgsql -d -W charset файл.shp наименование_таблицы.table файл.sql
попробуйте так, вместо charset напишите WINDOWS-1251 (насколько понятно у вас Виндовс)
Re: PostGIS Shapefile Import Manager не импортирует shp-файл
Добавлено: 15 ноя 2013, 16:16
BSvetlana
Сам 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. Пока только ошибки.
Re: PostGIS Shapefile Import Manager не импортирует shp-файл
Добавлено: 15 ноя 2013, 23:46
Дмитрий Барышников
Давайте ваш файл либо сюда либо в личку, можно часть файла (но только что бы на этой части тоже ошибка проявлялась).
Re: PostGIS Shapefile Import Manager не импортирует shp-файл
Добавлено: 18 ноя 2013, 08:44
BSvetlana
Спасибо за поддержку.
Вот весь текст файла
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
Re: PostGIS Shapefile Import Manager не импортирует shp-файл
Добавлено: 18 ноя 2013, 10:36
BSvetlana
Я поняла свою ошибку. Нельзя просто так загружать этот запрос в окно запросов. Но даже при использовании следующей строки из примера 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
Re: PostGIS Shapefile Import Manager не импортирует shp-файл
Добавлено: 18 ноя 2013, 20:53
Дмитрий Барышников
Светлана, я так и не понял. Вы не можете загрузить ESRI shape file или вывод утилиты бог весть какой версии?
Если именно шейп файл, как и написано в теме, так приложите его, иначе все это офтопп.
Re: PostGIS Shapefile Import Manager не импортирует shp-файл
Добавлено: 19 ноя 2013, 11:16
BSvetlana
Вот такая инструкция у меня получилась.
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 пока запущен на локальном компе.
Если знаете решение, помогите, пожалуйста.
Re: PostGIS Shapefile Import Manager не импортирует shp-файл
Добавлено: 19 ноя 2013, 12:32
rhot
дайте ссылку на новую тему