分享

基于GeoServer的电子地图系统说明(四):空间数据库实现

 平平凤凤 2010-05-24

选择postgis作为sharpmap的数据源

Shapfile文件为ESRI公司的文件存储格式,并且得到了业界广泛的支持。Shapfile格式是一种简单的,用非拓朴关系的形式存储几何位置和地理特征的属性信息的格式。虽然GeoServer采用Shapfile文件可以快速的创建网上地图服务,但它的缺点确很明显:

  1、Shapefile只支持一个图层,在实际中没有意义。

  2、直接保用SHP文件不安全,Shapfile文件很容易被病毒或其他原因误删除。

  3、GeoServer中用Shapfile文件作数据源的效率是很低的。

  4、Shapfile中的汉字GeoServer不能解析,会出现乱码。

  5、数据库可以方便的对地理信息进行查询。

用PostGIS管理空间数据

         PostGIS支持GIST空间索引(附录1)、规范窗体,能很大的提高处理效率。

         OGC格式只提供二维的几何体,且相关联的SRID从未深入的用于输入输出请求,PostGIS支持OpenGIS组织"Simple Features for SQL"规范指定的所有GIS对象和函数,并进行了扩展,格式是EWKB、EWKT,其中增加了对3DZ,3DM和4D 坐标系的支持(当然三维、四维数据的OGC标准还未完全制定),深入引进了SRID信息。

  空间数据表结构:PostGIS中存在两个必需的元数据表格, SPATIAL_REF_SYS(空间参考表格) 和 GEOMETRY_COLUMNS(几何体属性列),两个表用于存储空间数据库使用的坐标系统数字ID和文本描述。

  PostGIS的shp2pgsql命令可以将Shapfile直接导入到数据库中也可以导出为SQL文件,推荐先导出为SQL文件再将此文件在SQL运行窗口中执行可将数据导入数据库。代码如下:


Shapfile到SQL语句:

  shp2pgsql    路径\shp数据文件名 新建的数据表名 > 路径\SQL文件名.sql

Shapfile直接入库:

  shp2pgsql -c 路径\shp数据文件名 新建的数据表名 数据库名|psql -d 数据库名


举例说明:

  如将一Shapfile文件“c:\road.shp”导入到数据表“road”中,数据库为“sjzmap”。

  1、运行“命令提示符”。

  2、切换至PostgreSQL数据库安装目录中的bin目录下。

  3、执行此目录下的shp2pgsql命令:“shp2pgsql c:\road.shp road > c:\road.sql”。

  4、如将此文件直接导入数据库(不推荐):“shp2pgsql -c c:\road.shp road sjzmap | psql -d sjzmap”。

       5、使用pgAdmin3 选择数据库,再导入表。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多