参考资料:
3.开源WebGIS分析与设计 测绘科学 魏波、王学华等
一、先说OpenGIS
OpenGIS基本架构可理解为五部分: 要素模型( Feature)、地图样式表 ( SLD, Styled Layer Descriptor)、OGC Filter 、Web地图服务和 Web要素服务等。
1. 要素由几何信息和属性信息组成。几何信息分为点、边缘、面和几何集合四种, 其中线 ( Linestring)属于边缘的子类, 而多边形 ( Polygon)是面的子类。
2. 地图样式表描述了要素到地图的映射。如不同比例尺显示。
3. OGC Filter 筛选要素,可通过XML定义。几何信息可由 Equals 、Disjoint 、Touches 、 Crosses 、Within和Overlaps等空间位置判断来筛选。属性信息通过比较操作符、逻辑操作符和表达式等来筛选。
4. Web地图服务获取地图服务器的基本信息、地图、要素的属性。
5. Web要素服务包括 Get Capbilities和用 OGC Filter创建 Request 、返回 GML数据的 GetFeature等。WFS服务器接收请求,返回 GML格式的地理信息数据。WMS是只读0 的, 而WFS则是读写的。
OpenGIS的实现从这几个方面进行:几何基础类库、数据源、中间件、WMS /WFS地图服务
器到客户端等。
1. 几何基础类库:主要以JTS、GDAL/OGR类库、 GEOS和 Sharp Map类库等为代表。JTS是纯java实现的系统;GDAL/OGR类库是由C、C + + 语言开发,其中GDAL提供了一整套读写不同栅格数据格式功能的抽象类库,支持 50多种栅格数据格式(哪些?),OGR是一个读写诸多矢量数据格式功能的抽象类库;采用 C 语言开发的坐标投影转换基础函数库;C++ 实现的 JTS基础函数库,较完善的实现了OGC规范中的简单几何要素对象拓扑模型操作;Sharp Map是C 开发的.NET框架 桌面GIS、WebGIS服务器,用于Web和桌面应用程序的易用的地图库, 可访问多种格式的 GIS数据, 提供对这些数据的空间搜索, 同时可绘制地图。
2. 数据源:体现在开源数据的扩展上,一个是对几何类型的支持,一个是SQL对空间关系查询的支持,产品有数据源实现以 Post GIS/PostgreSQL、MySQL Spatial为代表
3. 中间件:在系统中扮演连接数据和服务的角色, 以GeoTools(Java)为代表,从各种数据源读取数据并将数据标准化,Feature接口就定义在 GeoTools中, 不同数据源的数据读出后被统一成包含一个 Geometry成员 (定义在JTS中)的 Feature接口的实现。
4.地图服务器:扮演向网络中的客户端提供地图服务的角色, 比较成熟的WMS/WFS服务器以 MapServer GeoServer(遵循 OGC 开放标准的开源WFS-T和 WMS服务器)、DeeGree和 gvSIG等为代表。
5. 客户端分为浏览器和桌面客户端程序两种。相对成熟的客户端以OpenLayers 、MapBuilder、 mapbuilderlib、
uDig、msCross和 kaMap等为代表。
开发一个GIS系统都要从以上五个方面去思考所做的事情...