天天看點

資料轉換系列二--shp格式資料導入PostGIS資料庫之ogr2ogr指令

http://andrewzhuyl.spaces.live.com/blog/cns!6B52630A7A112B22!177.entry

PostGIS在對象關系型資料庫PostgreSQL上增加了存儲管理空間資料的能力,相當于Oracle的spatial部分。PostGIS最大的特點是符合并且實作了OpenGIS的一些規範,是最著名的開源GIS資料庫。

安裝配置好PostGIS後,下一步就是把各種GIS資料導入到PostGIS資料庫中,這樣可以統一資料的形式,友善管理。問題在于怎樣導資料?一個非常友善的方法是去www.gdal.org下載下傳一個FWTools的工具包【想了解FWTools,請連結--http://andrewzhuyl.spaces.live.com/blog/cns!6B52630A7A112B22!173.entry】,它可以直接運作不用繁瑣的編譯,既有Windows的,也有Linux下用的。

使用ogr2ogr指令轉換shp格式資料到PostgreSQL資料庫中,格式如下:

ogr2ogr -f "PostgreSQL" PG:"host=yourHost dbname=yourDbname user=*** password=***" yourFilePath

例如:現在要将一個位于D:\testdata路徑下的testdata.shp檔案導入到一個本地資料庫mydb中,需要使用如下指令:

ogr2ogr -f "PostgreSQL" PG:"host=localhost dbname=mydb user=zhuyl password=12345" D:\testdata\testdata.shp

P.S:

1、localhost可以使用IP位址(如192.168.*.*),推薦使用IP位址,因為這樣可以友善的通路非本地的;

2、zhuyl和12345分别是資料庫mydb的使用者【登入角色】和密碼;

3、此處僅介紹了利用ogr2ogr進行shp格式資料入庫,ogr2ogr還可以用于很多其他資料類型,待續……;

4、本人發現,某些*.shp資料,在FWTools中使用ogr2ogr并不能成功導入。具體原因還不能确定,可能是資料問題,也可能是軟體版本問題,還有可能是其他的什麼什麼。不過,shp格式資料轉換還是有解決辦法的,那就是使用shp2pgsql指令。shp2pgsql和pgsql2shp是PostGIS自身攜帶的一對在Shape檔案和PostGIS資料庫之間進

行轉換的工具。

有關shp2pgsql請看:資料轉換系列三--shp格式資料導入PostGIS資料庫之shp2pgsql指令

目前ogr能夠支援的資料格式包括:

Arc/Info Binary Coverage、DWG、ESRI Personal GeoDatabase、ArcSDE、ESRI

Shapefile、GML、GRASS、Mapinfo File、Microstation DGN、ODBC、Oracle Spatial和

PostgreSQL等。應該說,這就基本包括了我們平常用到的所有矢量型GIS檔案格式了。

Gdal支援的栅格資料格式參閱http: //www.gdal.org/formats_list.html

參考文獻:

【1】http://www.gispark.com/html/open%20source/2006/1024/389.html

【2】http://blog.sina.com.cn/s/blog_3dbf03df0100aop7.html

繼續閱讀