如何使用国际开源项目构建一个完整的GIS(地理信息)应用系统求答案

如何使用国际开源项目构建一个完整的GIS(地理信息)应用系统求答案,第1张

1、GIS内核 Geotools Geotools是一套基于Java平台的开源GIS API中间件,实现了完整的GIS底层功能。

2、空间数据导入/转换地理数据的获取 地理数据来自文件、数据库和WMS/WFS服务器。

文件方式:支持读取的地理数据文件:ESRI Shape、Mapinfo Tab/Mif、Geomedia Access等,建议使用Shape文件格式,Oracle和PostgreSQL提供Shape文件导入数据库的程序。

WMS/WFS服务器:Internet上有很多开放的GIS应用服务器,例如NASA、InterGraph、TerraServer等,通过它们获取各种免费地图资源。

Google Map资源:Google Map没有采用标准的WMS/WFS协议,可以通过调用开放的Google Map API,附加自定义的WMS/WFS图层,实现应用目的。例如:通过Google Map可以免费获取高分辨的Google Map卫星地图。

3、空间数据引擎

开源:PostgreSQL(PostGIS)、MySQL(4.1以上)

商业:Oracle、DB2、ArcSDE

开源商业空间数据库推荐使用PostgreSQL。

使用商业空间数据库引擎,例如Oracle Spatial、ArcSDE,可以非常方便的处理地理数据,更好的处理海量数据,以及与现有商业软件共享数据。

4、应用服务器 Geoserver Geoserver是一个基于J2EE的开放的GIS应用服务器,实现了OGC(Open Geospatial Consortium)制定的WMS和WFS(WFS-T)规范,Geoserver是整个GIS应用系统的中枢部分,承担大部分业务处理任务。(新版本(1.3.3)增加了对Google Earth KML/KMZ的支持。)

需要注意的是,Geoserver不只是WebGIS服务器,它可以为桌面应用程序(Udig、Mapinfo)或移动设备(支持J2ME的PDA、手机)提供地图支持。

5、桌面应用程序(C/S) Udig、GVSig

Udig 是一个使用Eclipse RCP和GeoTools构建的桌面地理信息系统,采用Eclipse SWT图形组件,具有更快的运行速度。Udig可以直接读取Shape文件,访问DB2或Oracle空间数据库,访问OGC WMS/WFS服务器。 Udig提供浏览、查询、编辑、测量等基本的GIS *** 作功能。

6、Web应用程序(B/S) Mapbuilder Mapbuilder是一个采用AJAX(Asynchronous JavaScript and XML)技术开发的WebGIS客户端,它的内部结构基于MVC(Model-View-Controller),具有良好的可读性和可扩展性,兼容 Firefox 1.0+, Internet Explorer 6.0+, Mozilla 1.3+, Navigator 6+等浏览器。

1.基本命令介绍

创建空间数据库,并且连接到数据库最少需要了解一下几个命令

C:\>psql --help (其实这个命令才是最常用,懒得记那么多命令行,这个命令一敲就出来了,--help参数最重要)

C:\>psql -U [用户名] -d [数据库名] (以连接到指定用户名和数据库)

C:\>createdb -T [模板] [数据库](以指定模板创建数据库)

C:\>createuser -U [超级管理员] -P [要创建的用户名] (以超级管理员的身份创建一个用户,并为其指定密码)

2.命令方式创建空间数据库

下面就演示如何通过命令行来创建空间数据库

(1)创建用户,并赋予其创建数据库的权限

C:\>createuser -U postgres -P wzl

为新角色输入的口令:

再输入一遍:

新的角色是否是超级用户? (y/n) n

新的角色允许创建数据库吗? (y/n) y

新角色允许创建其它新的角色吗? (y/n) n

(2)以上一步创建的用户来创建空间数据库

C:\>createdb -U wzl -T template_postgis my_spatial_db

口令:(指定口令,也可以通过-W参数来指定口令)

(3)连接到刚才创建的空间数据库

C:\>psql -U wzl -d my_spatial_db

用户 wzl 的口令:

my_spatial_db=>(到这一步说明一切都成功了,空间数据库创建成功)

下面就可以对新创建的数据库执行一些 *** 作了

--查看PostgreSQL的版本信息

my_spatial_db2=>select version()

version

-------------------------------------------------------------

PostgreSQL 9.0.2, compiled by Visual C++ build 1500, 32-bit

(1 行记录)

--查看PostGIS的版本信息

my_spatial_db2=>select postgis_full_version()

postgis_full_version

--------------------------------------------------------------------------------

POSTGIS="1.5.2" GEOS="3.2.2-CAPI-1.6.2" PROJ="Rel. 4.6.1, 21 August 2008" LIBXML="2.7.6" USE_STATS

(1 行记录)

当然也可以在连接到数据库的情况下利用SQL语句来创建空间数据库

my_spatial_db=>CREATE DATABASE my_spatial_db2 TEMPLATE=template_postgis

CREATE DATABASE

3.通过可视化界面创建空间数据库

无论是什么软件,一般空间数据和属性数据都是通过元素的ID来进行连接的。

例如ArcGIS,可以在打开一个地图后,看属性表,不同的数据文件有不同的规则,都有个类似ObjectID的字段做唯一的标识和联系。

mapinfo里面 选择表==》导出,格式是MIF,到时候会产生两个文件,一个是MIF一个是MID,MIF是记住空间数据的,MID是记住属性数据的。

你应该知道mapx的开发吧,mapx就是mapinfo的二次开发控件,它的开发流程

 假设MapX已经打开一个图层,图层名为"a",手头还有一个Access数据库a.mdb,数据库里面有个表X想和a图层绑定。我们保证a层属性里面有一个字段ID1与表X的一个字段ID2是匹配的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9653933.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存