开源WebGIS实施方案(三):Shapefile数据导入到PostGIS
PostGIS新版中提供了一个可视化的工具,用于Shapefile数据的导入和导出,极大的方便了使用者的操作。
创建空间数据库
以具有创建用户权限的账号登录pgAdminIII,连接到数据库
创建一个数据库
对于空间数据的存储,需要为该数据库指定postgis模板。
如果有postgis模板,直接指定就行;但不幸的是,这个版本并没有对应的postgis模板。所以需要手动处理一下:先建立普通类型的数据库,再按照下列SQL扩展该数据库,以支持PostGIS。
-- Enable PostGIS (includes raster) CREATE EXTENSION postgis; -- Enable Topology CREATE EXTENSION postgis_topology; -- Enable PostGIS Advanced 3D -- and other geoprocessing algorithms -- sfcgal not available with all distributions CREATE EXTENSION postgis_sfcgal; -- fuzzy matching needed for Tiger CREATE EXTENSION fuzzystrmatch; -- rule based standardizer CREATE EXTENSION address_standardizer; -- example rule data set CREATE EXTENSION address_standardizer_data_us; -- Enable US Tiger Geocoder CREATE EXTENSION postgis_tiger_geocoder; CREATE EXTENSION ogr_fdw; CREATE EXTENSION pgrouting; CREATE EXTENSION pointcloud; CREATE EXTENSION pointcloud_postgis;
扩展之后,执行以下语句,确认是否成功。
select postgis_full_version();
导入Shapefile数据
启动PostGIS下的该GUI工具,连接到目标空间数据库,连接成功会有相关提示信息。
导入shp数据,点击Add File,在对话框中选择对应的Shapefile;设置相关参数后,点击Import将Shapefile导入到PostGIS数据库。导入成功时,会有相应提示信息。
值得注意的是:使用该工具进行Shapefile入库时,Shapefile完整的路径名称中不可以含有中文字符,但Shapefile内部数据信息(如字段名、属性值)是可以使用中文字符的。
在PostgreSQL中查询
uDig中加载PostGIS中图层效果