Мої дані знаходяться в базі даних PostGIS. Я хотів би створити файл запиту з запиту. Як я можу це зробити?
Мої дані знаходяться в базі даних PostGIS. Я хотів би створити файл запиту з запиту. Як я можу це зробити?
Відповіді:
Рекомендований спосіб зробити це за допомогою утиліти 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'"
Дивитися також
У мене не вистачає точок репутації, щоб коментувати відповідь 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'"
Залежно від даних, які ви хочете експортувати, інший спосіб - це використовувати qgis або подібний продукт: там ви відкриєте з'єднання postgis і вибираєте дані, які вас цікавлять; тоді ви зберігаєте як shapefile ...
Якщо ви хочете експортувати автоматично та / або велику частину даних, rudivonstaden дав відповідні рішення!
pgsql2shp
для експорту подання у файл форми?