選擇postgis作為sharpmap的數(shù)據(jù)源 Shapfile文件為ESRI公司的文件存儲格式,并且得到了業(yè)界廣泛的支持。Shapfile格式是一種簡單的,用非拓樸關(guān)系的形式存儲幾何位置和地理特征的屬性信息的格式。雖然GeoServer采用Shapfile文件可以快速的創(chuàng)建網(wǎng)上地圖服務(wù),但它的缺點確很明顯: 1、Shapefile只支持一個圖層,在實際中沒有意義。 2、直接保用SHP文件不安全,Shapfile文件很容易被病毒或其他原因誤刪除。 ?。场eoServer中用Shapfile文件作數(shù)據(jù)源的效率是很低的。 4、Shapfile中的漢字GeoServer不能解析,會出現(xiàn)亂碼。 ?。?、數(shù)據(jù)庫可以方便的對地理信息進(jìn)行查詢。 用PostGIS管理空間數(shù)據(jù) PostGIS支持GIST空間索引(附錄1)、規(guī)范窗體,能很大的提高處理效率。 OGC格式只提供二維的幾何體,且相關(guān)聯(lián)的SRID從未深入的用于輸入輸出請求,PostGIS支持OpenGIS組織"Simple Features for SQL"規(guī)范指定的所有GIS對象和函數(shù),并進(jìn)行了擴(kuò)展,格式是EWKB、EWKT,其中增加了對3DZ,3DM和4D 坐標(biāo)系的支持(當(dāng)然三維、四維數(shù)據(jù)的OGC標(biāo)準(zhǔn)還未完全制定),深入引進(jìn)了SRID信息。 空間數(shù)據(jù)表結(jié)構(gòu):PostGIS中存在兩個必需的元數(shù)據(jù)表格, SPATIAL_REF_SYS(空間參考表格) 和 GEOMETRY_COLUMNS(幾何體屬性列),兩個表用于存儲空間數(shù)據(jù)庫使用的坐標(biāo)系統(tǒng)數(shù)字ID和文本描述。 PostGIS的shp2pgsql命令可以將Shapfile直接導(dǎo)入到數(shù)據(jù)庫中也可以導(dǎo)出為SQL文件,推薦先導(dǎo)出為SQL文件再將此文件在SQL運行窗口中執(zhí)行可將數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫。代碼如下:
shp2pgsql 路徑\shp數(shù)據(jù)文件名 新建的數(shù)據(jù)表名 > 路徑\SQL文件名.sql Shapfile直接入庫: shp2pgsql -c 路徑\shp數(shù)據(jù)文件名 新建的數(shù)據(jù)表名 數(shù)據(jù)庫名|psql -d 數(shù)據(jù)庫名
如將一Shapfile文件“c:\road.shp”導(dǎo)入到數(shù)據(jù)表“road”中,數(shù)據(jù)庫為“sjzmap”。 1、運行“命令提示符”。 ?。病⑶袚Q至PostgreSQL數(shù)據(jù)庫安裝目錄中的bin目錄下。 ?。?、執(zhí)行此目錄下的shp2pgsql命令:“shp2pgsql c:\road.shp road > c:\road.sql”。 ?。?、如將此文件直接導(dǎo)入數(shù)據(jù)庫(不推薦):“shp2pgsql -c c:\road.shp road sjzmap | psql -d sjzmap”。 5、使用pgAdmin3 選擇數(shù)據(jù)庫,再導(dǎo)入表。 |
|