Использование утилиты shp2pgsql
- Игорь Черниенко
- Активный участник
- Сообщения: 137
- Зарегистрирован: 28 мар 2009, 01:05
- Репутация: 11
- Откуда: Хабаровск, Южно-Сахалинск
Использование утилиты shp2pgsql
Пытаюсь пользоваться ПостГис. Из перевода руководства пользователя, из английской документации, так и не понял как пользоваться дампером. В связи с этим имею следующие вопросы:
1) как задать путь к шейп-файлу?
2) как задать название итоговой таблицы?
3) имеется ли возможность задать тип данных в итоговой таблице (может, я хочу весь слой как мультиполигон в таблицу закинуть:о)|||)?
4) И наконец: shp2pgsql точно входит в дистрибутив постгис под виндоуз?!
Заранее благодарю.
1) как задать путь к шейп-файлу?
2) как задать название итоговой таблицы?
3) имеется ли возможность задать тип данных в итоговой таблице (может, я хочу весь слой как мультиполигон в таблицу закинуть:о)|||)?
4) И наконец: shp2pgsql точно входит в дистрибутив постгис под виндоуз?!
Заранее благодарю.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Использование утилиты shp2pgsql
Здравствуйте, Игорь.
Если ещё не читали, то гляньте вот эту статью: http://gis-lab.info/qa/postgis-work.html. Если останутся вопросы - пишите. Буду рад помочь, чем смогу.
Если ещё не читали, то гляньте вот эту статью: http://gis-lab.info/qa/postgis-work.html. Если останутся вопросы - пишите. Буду рад помочь, чем смогу.
Spatial is now, more than ever, just another column- The Geometry Column.
- Игорь Черниенко
- Активный участник
- Сообщения: 137
- Зарегистрирован: 28 мар 2009, 01:05
- Репутация: 11
- Откуда: Хабаровск, Южно-Сахалинск
Re: Использование утилиты shp2pgsql
Спасибо, я читал эту статью. Вопросы есть, и они, должно быть, примитивные. Для начала вот:
SET PATH="C:\Program Files\PostgreSQL\8.3\bin" это путь к shp2pgsql.exe, который там находится, или к шейп-файлу, которого там нет?!
SET PATH="C:\Program Files\PostgreSQL\8.3\bin" это путь к shp2pgsql.exe, который там находится, или к шейп-файлу, которого там нет?!
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Использование утилиты shp2pgsql
Хорошо, тогда буду отвечать в обратном порядке.
Команда:
добавляет в переменную PATH соответствующий путь для того, чтобы при запуске shp2pgsql не указывать полный путь до исполняемого файла. То есть при написании какой-либо команды в консоли, система ищет её по адресам, указанным в переменной окружения PATH. Чтобы каждый раз не писать SET PATH="C:\Program Files\PostgreSQL\8.3\bin" просто откройте "Мой компьютер", щелкните правой кнопкой мыши, выберите "Свойства", затем перейдите на вкладку "Дополнительно" и нажмите "Переменные среды". Внизу выберите системную переменную "Path" и нажмите "Изменить". В открывшейся строке через ; добавьте C:\Program Files\PostgreSQL\8.3\bin. Все, теперь свободно можете заходить в консоль (Пуск - Выполнить - cmd) и писать shp2pgsql. Если все сделали правильно, то все должно заработать. А путь до shape-файла пишется как обычно, только при этом не забывайте заключать его в двойные кавычки: "C:\shapefiles\town.shp", например.
А теперь относительного первого поста.
Команда:
Код: Выделить всё
SET PATH="C:\Program Files\PostgreSQL\8.3\bin"
А теперь относительного первого поста.
Путь до шейп-файла ничем не отличается от пути до любого другого типа файлов. Только не забудьте заключить его в кавычки.1) как задать путь к шейп-файлу?
Согласно синтаксису shp2pgsql имя таблицы следует сразу же за именем шейп-файла.2)как задать название итоговой таблицы?
При загрузке данных из шейп-файлов любого типа, например полигонального (POLYGON), в PostGIS по умолчанию они будут иметь тип мультиполигон (MULTIPOLYGON) даже если состоят из одинарных полигонов. Аналогична ситуация и при загрузке линейных объектов, которые по умолчанию загружаются как мультилинии. Дальнейшее изменение типов данных возможно средствами PostGIS.3) имеется ли возможность задать тип данных в итоговой таблице (может, я хочу весь слой как мультиполигон в таблицу закинуть:о)|||)?
Да, входит. А у Вас разве нет?4) И наконец: shp2pgsql точно входит в дистрибутив постгис под виндоуз?!
Последний раз редактировалось Denis Rykov 29 мар 2009, 09:43, всего редактировалось 1 раз.
Spatial is now, more than ever, just another column- The Geometry Column.
- Игорь Черниенко
- Активный участник
- Сообщения: 137
- Зарегистрирован: 28 мар 2009, 01:05
- Репутация: 11
- Откуда: Хабаровск, Южно-Сахалинск
Re: Использование утилиты shp2pgsql
Большое спасибо, разобрался. Я просто только-только установил постгресс, и не сразу откуда что запускается.)|||
-
- Интересующийся
- Сообщения: 16
- Зарегистрирован: 07 апр 2009, 16:58
- Репутация: 0
Re: Использование утилиты shp2pgsql
Статью прочитал, шейп файл скачал (который в статье указывается), правда куда сувать его не знаю, составляю этот bat файл и ничего(
Что я делаю не так ?
Всё, разобрался)
Что я делаю не так ?
Всё, разобрался)
- Игорь Черниенко
- Активный участник
- Сообщения: 137
- Зарегистрирован: 28 мар 2009, 01:05
- Репутация: 11
- Откуда: Хабаровск, Южно-Сахалинск
Re: Использование утилиты shp2pgsql
кладете шейп-файл в любую папку, например D:\sp2pg. Запускаете командную строку (Пуск>PostgreSQL 8.3>Командная строка), там будет С:\Program Files\PostgreSQL\8.3\bin>
вводите shp2pgsql2 "D:\sp2pg\myshape.shp" myshape>myshape.sql (или, как там файл называется и где он лежит:о) В С:\Program Files\PostgreSQL\8.3\bin создается файл myshape.sql (или как назовете), который можно перекатать в таблицу постгис, например открыть в пгадмине через редактор запросов, или через командную строку. Удачи!
вводите shp2pgsql2 "D:\sp2pg\myshape.shp" myshape>myshape.sql (или, как там файл называется и где он лежит:о) В С:\Program Files\PostgreSQL\8.3\bin создается файл myshape.sql (или как назовете), который можно перекатать в таблицу постгис, например открыть в пгадмине через редактор запросов, или через командную строку. Удачи!
-
- Интересующийся
- Сообщения: 47
- Зарегистрирован: 13 апр 2009, 14:34
- Репутация: 0
- Откуда: Астрахань
- Контактная информация:
Re: Использование утилиты shp2pgsql
У меня sql-файл создается, но пустой...Почему так???
-
- Новоприбывший
- Сообщения: 3
- Зарегистрирован: 07 май 2009, 12:13
- Репутация: 0
Re: Использование утилиты shp2pgsql
Пустой sql файл - значит,произошла какая-то ошибка, поставьте в конце .bat-файла pause и посомтрите какая.
- Игорь Черниенко
- Активный участник
- Сообщения: 137
- Зарегистрирован: 28 мар 2009, 01:05
- Репутация: 11
- Откуда: Хабаровск, Южно-Сахалинск
Re: Использование утилиты shp2pgsql
а что писали в строке?
-
- Интересующийся
- Сообщения: 47
- Зарегистрирован: 13 апр 2009, 14:34
- Репутация: 0
- Откуда: Астрахань
- Контактная информация:
Re: Использование утилиты shp2pgsql
Файл создался, но теперь не загружается в базу postgis. Привожу содержимое командной строки:
C:\Program Files\PostgreSQL\8.3\bin>shp2pgsql "C:\geoserver-1.7.3\привязанный пр
оект\streets.shp" streets.shp>streets.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
C:\Program Files\PostgreSQL\8.3\bin>psql -U postgres -f "C:\Program Files\Postgr
eSQL\8.3\bin\streets.sql" -d postgis
Password for user postgres:
BEGIN
psql:C:/Program Files/PostgreSQL/8.3/bin/streets.sql:4: ERROR: schema "streets"
does not exist
psql:C:/Program Files/PostgreSQL/8.3/bin/streets.sql:5: ERROR: current transact
ion is aborted, commands ignored until end of transaction block
psql:C:/Program Files/PostgreSQL/8.3/bin/streets.sql:6: ERROR: current transact
ion is aborted, commands ignored until end of transaction block
psql:C:/Program Files/PostgreSQL/8.3/bin/streets.sql:7: ERROR: current transact
ion is aborted, commands ignored until end of transaction block
psql:C:/Program Files/PostgreSQL/8.3/bin/streets.sql:8: ERROR: current transact
ion is aborted, commands ignored until end of transaction block
ROLLBACK
C:\Program Files\PostgreSQL\8.3\bin>shp2pgsql "C:\geoserver-1.7.3\привязанный пр
оект\streets.shp" streets.shp>streets.sql
Shapefile type: Arc
Postgis type: MULTILINESTRING[2]
C:\Program Files\PostgreSQL\8.3\bin>psql -U postgres -f "C:\Program Files\Postgr
eSQL\8.3\bin\streets.sql" -d postgis
Password for user postgres:
BEGIN
psql:C:/Program Files/PostgreSQL/8.3/bin/streets.sql:4: ERROR: schema "streets"
does not exist
psql:C:/Program Files/PostgreSQL/8.3/bin/streets.sql:5: ERROR: current transact
ion is aborted, commands ignored until end of transaction block
psql:C:/Program Files/PostgreSQL/8.3/bin/streets.sql:6: ERROR: current transact
ion is aborted, commands ignored until end of transaction block
psql:C:/Program Files/PostgreSQL/8.3/bin/streets.sql:7: ERROR: current transact
ion is aborted, commands ignored until end of transaction block
psql:C:/Program Files/PostgreSQL/8.3/bin/streets.sql:8: ERROR: current transact
ion is aborted, commands ignored until end of transaction block
ROLLBACK
- Игорь Черниенко
- Активный участник
- Сообщения: 137
- Зарегистрирован: 28 мар 2009, 01:05
- Репутация: 11
- Откуда: Хабаровск, Южно-Сахалинск
Re: Использование утилиты shp2pgsql
А открыть sql файл через pgAdmin и там выполнить?
-
- Интересующийся
- Сообщения: 47
- Зарегистрирован: 13 апр 2009, 14:34
- Репутация: 0
- Откуда: Астрахань
- Контактная информация:
Re: Использование утилиты shp2pgsql
Спасибо за помощь, все загрузилось!!!
- Игорь Черниенко
- Активный участник
- Сообщения: 137
- Зарегистрирован: 28 мар 2009, 01:05
- Репутация: 11
- Откуда: Хабаровск, Южно-Сахалинск
Re: Использование утилиты shp2pgsql
не за что, сам мучился :о)
-
- Активный участник
- Сообщения: 168
- Зарегистрирован: 08 апр 2009, 14:44
- Репутация: 18
- Откуда: Кострома
Re: Использование утилиты shp2pgsql
Здравствуйте, возникла проблема с добавлением sql файла в PostgreSQL 8.4 (PostGis 1.5), как написано в статье http://gis-lab.info/qa/postgis-work.html при помощи SHP2PGSQL создал файл bnd-political-boundary-a.sql, но в БД файл не добавился, попробовал выполнить запрос постгрессе, вылезла ошибка:
Подскажите пожалуйста в чем может быть проблема ???
Код: Выделить всё
ERROR: syntax error at or near "1"
LINE 17: 1 FA001 Administrative Area KHABAROVSKIY KRAY RS Russia A As...
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 29 гостей