Як я можу отримати форм-файл із запиту на постгізі?


44

Мої дані знаходяться в базі даних PostGIS. Я хотів би створити файл запиту з запиту. Як я можу це зробити?

Відповіді:


86

Рекомендований спосіб зробити це за допомогою утиліти pgsql2shp , яку слід встановити за допомогою PostGIS. Зверніть увагу, що ви повинні включити стовпчик геометрії до запиту.

$ pgsql2shp -f <path to output shapefile> -h <hostname> -u <username> -P <password> databasename "<query>"

Приклад (створюється qds_cnt.shpв поточному каталозі):

$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"

Initializing... 
Done (postgis major version: 2).
Output shape: Polygon
Dumping: XXXXXXXXXXXXXXXXXXXX [1947 rows].

Якщо ви хотіли зберегти цілу таблицю як файл форми, просто використовуйте назву таблиці як запит.

Ви також можете скористатися утилітою ogr2ogr , але вона має більше залежностей, тому це не повинно бути першим варіантом. Якщо ви визначені, еквівалентною командою буде:

$ ogr2ogr -f "ESRI Shapefile" qds_cnt.shp PG:"host=localhost user=postgres dbname=gisdb password=password" -sql "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"

Дивитися також


Чи можна використовувати pgsql2shpдля експорту подання у файл форми?
Рікардо Баррос Луренцо

8

У мене не вистачає точок репутації, щоб коментувати відповідь rudivonstaden, але я додам, що написання sql команд великими літерами має значення pgsql2shp.

Наприклад, це не працює:

$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "Select sp_count, geom from grid50_rsa where province = 'Gauteng'"

тоді як це спрацює:

$ pgsql2shp -f qds_cnt -h localhost -u postgres -P password gisdb "SELECT sp_count, geom FROM grid50_rsa WHERE province = 'Gauteng'"

7

Залежно від даних, які ви хочете експортувати, інший спосіб - це використовувати qgis або подібний продукт: там ви відкриєте з'єднання postgis і вибираєте дані, які вас цікавлять; тоді ви зберігаєте як shapefile ...

Якщо ви хочете експортувати автоматично та / або велику частину даних, rudivonstaden дав відповідні рішення!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.