У меня есть более ста слоев данных в формате шейп-файлов, которые я хочу загрузить в базу данных PostGIS. Все они находятся в одной проекции, но представляют разные слои данных, поэтому они не имеют одинаковую схему.
Каков наиболее эффективный способ массового преобразования всех этих файлов в мою базу данных PostGIS (в ОС Windows 7)?
ОБНОВЛЕНИЕ: Массовый импорт в pgAdmin3 «Загрузчик шейп-файлов PostGIS» (как отмечено ниже) теперь доступен по умолчанию в PostGIS 2.0 .
Ответы:
Если вы хотите придерживаться GUI, то в более новой версии pgAdmin есть Shapefile Loader, который можно использовать в качестве массовой загрузки.
источник
Если у вас есть компьютер с Windows, вы можете использовать good 'ol
CMD.EXE
с несколькими эзотерическими циклами for. Убедитесь, что вы делаете это в «вложенном» каталоге только с теми файлами shp / sql, которые вам нужно загрузить.Первый шаг, создайте файлы загрузчика SQL (я также предположил, что у вас есть данные Lat / Long WGS84 с 4326 .. обновите это до вашего SRS):
Затем проверьте файлы SQL, чтобы убедиться, что они хорошо выглядят, затем выполните аналогичный цикл:
bash
Эквивалент для POSIX народной (Linux, Mac OS X, и т.д.) что - то вроде:тогда
или обе части по конвейеру, если вам не нужно хранить промежуточные
.sql
файлы:источник
for f in *.shp do shp2pgsql -s 4326 %f public.'basename $f .shp' > 'basename $f .shp'.sql | psql -h myserver -d mydb -U myuser done
>
перенаправления, так как это разрывает|
часть канала), если вы уверены, что SQL, переданный в psql, верен. Я бы сказал, что это не лучше, так как нет записи данных в формате SQL.Вы также можете использовать эту единственную команду, которая помогает в зацикливании намного проще, а также не нужно создавать .sql отдельно,
источник
Возможно, вы также захотите взглянуть на SPIT , который является плагином PostGIS для QGIS.
источник