Чи можете ви сказати, як я можу завантажувати дані геоданих у PostGIS, не встановлюючи додатки Esri?
Я знайшов рішення в Інтернеті про використання ArcGIS для перетворення GDB в SHP, а потім імпорту SHP в PostGIS.
Чи можете ви сказати, як я можу завантажувати дані геоданих у PostGIS, не встановлюючи додатки Esri?
Я знайшов рішення в Інтернеті про використання ArcGIS для перетворення GDB в SHP, а потім імпорту SHP в PostGIS.
Відповіді:
Я роблю це постійно для своїх клієнтів.
Завантажте свої дані у FileGDB або Shapefiles та виконайте таку команду:
Для ESRI Shapefiles:
ogr2ogr -f "PostgreSQL" PG: "dbname = mydbname user = postgres" myshapefile.shp
Для FileGDB:
ogr2ogr -f "PostgreSQL" PG: "dbname = mydbname user = postgres" myFileGDB.gdb
Для FileGDB вам потрібно переконатися, що встановлений драйвер FileGDB. Ви робите це:
ogrinfo --формати
який повинен десь показувати FileGDB, щоб повідомити, що він встановлений.
ogr2ogr -f "PostgreSQL" PG:"dbname=mydbname user=postgres" SanDiegoData.gdb -sql "GetLayerDefinition Parcels"
скидає метадані ESRI XML в поле в цьому db
Я не пробував цього, тому не можу перевірити, чи працює він, але API File Geodatabase може дозволити вам експортувати дані з файлу Geodatabase до SHP (а звідси PostGIS). Документація говорить:
With the API you can... Read and write data
API файлу geodatabase файлів Esri працює лише з файлами баз даних геоданих, створеними за допомогою 10.x - старіші версії не працюватимуть з GDAL, QGIS або будь-яким іншим, що залежить від відкритого файлу API geodatabase . Старі персональні бази даних геоданих залежать від MS Access, і є читачі та код.
Якщо у вас є 10.x база даних геоданих, ви можете прочитати шар з FileGDB і завантажити в PostGIS за допомогою однієї команди ogr2ogr ( див. Документацію ):
ogr2ogr -overwrite -skipfailures -f "PostgreSQL" PG:"host=myhost user=myuser dbname=mydb password=mypass" "C:\somefolder\BigFileGDB.gdb" "MyFeatureClass"
Для цього мені також довелося завантажити експрес-версію VS2010 та створити власний GDAL, ogr плагін та 1.3 відкритого файлу API геоданих баз даних.
Те, що я не міг зробити, - це перемістити старіший файл 9.x geodatabase без використання програм esri (не доступне для мене в атм) - я не можу пройти повз ...
HRESULT = -2147220965, errorText = "Цей випуск бази даних GeoData є недійсним або застарілим."
... при спробі відкрити 9.x "gdb" з відкритим API, який підтримує лише 10.x "gdb".
Поки я ще не пробував цього, я просто натрапив на цей підручник (який є shapefile -> PostGIS), який використовує програмне забезпечення GeoETL з відкритим кодом під назвою " Інтегратор просторових даних ". Я не впевнений, підтримує він програму Esri GDB чи ні, але, можливо, варто додатково вивчити, чи можна використовувати цей продукт для здійснення подібного перетворення з GDB в PostGIS без використання продуктів ESRI.
Інші пакети ETL, про які я чув, - це FME від Safe Sofware ($, дуже популярний) та GeoKettle (з відкритим кодом), а також багато інших посилань на сторінці Вікіпедії Spatial ETL .
EDIT : Після копання трохи далі, схоже, SDI не підтримує зчитування EsriGDB , але може читати доступні формати файлів OGR .
Робота FWIW триває над створенням GDB для завантажувача постгігів. Це залежить від останнього магістралі GDAL, який має прив'язки до GDB. У мене не було можливості скласти і спробувати себе, але сподіваюсь, що поки не вийде PostGIS 2.0.
перевірити - http://trac.osgeo.org/postgis/browser/spike/pramsey/postgis2fgdb
Ви, напевно, можете повідомити Полу на групу новин PostGIS, щоб дізнатись, де він з цим. http://www.postgis.org/mailman/listinfo/postgis-users
У форматі Personal GeoDatabase GDAL може прочитати це чудово, і саме це я зазвичай використовую для експорту даних із особистого geodb.
Відповідаючи на моє власне питання тут, я опублікував тут деякий час назад ...
Ще один варіант, який я знайшов в Інтернеті (на додаток до вищезазначених пропозицій), - це використовувати pgdbf ( https://github.com/kstrauser/pgdbf ), який скидає сценарій SQL, який ви можете використовувати для введення в поштові повідомлення вручну.