SharpMap介绍及源码分析.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SharpMap介绍及源码分析

【转载】SharpMap介绍及源码分析 SharpMap 2007-11-10 02:12:22 阅读326 评论0 ??字号:大中小?订阅 本文转载于《3sNews新闻周刊》第一期【/archive/2006/02/24/337181.html】 SharpMap是一个基于.net 2.0使用C#开发的Map渲染类库,可以渲染各类GIS数据(目前支持ESRI Shape和PostGIS格式),可应用于桌面和Web程序。 其网址为:http://sharpmap.iter.dk/ SharpMap的发布许可(License)为GNU General Public License,开发者为Morten Nielsen(http://www.iter.dk/)。目前的稳定版本为0.8(9.0beta已发布),代码行数近10000行,实现了以下功能: 支持的数据格式: ?????( PostGreSQL/PostGIS,ESRI Shapefile ????? 支持WMS layers( ????? 支持ECW 和( JPEG2000 栅格数据格式 Windows Forms 控件,可以移动和缩放 通过HttpHandler支持ASP.net程序 点、线、多边形、多点、多线和多多边形等几何类型 几何集合(GeometryCollections)等OpenGIS Simple Features Specification 可通过Data Providers(增加数据类型支持)、Layer Types(增加层类型)和Geometry Types等扩展 图形使用GDI+渲染,支持anti-aliased等 专题图 可以看出,SharpMap目前可以算是一个实现了最基本功能的GIS系统,但一些很重要的功能,例如投影,比例尺,空间分析,图形的属性信息,查询检索等等,还没有或者还在开发中。一个好消息是,作者在SharpMap的网站写到:Diego Guidi(NetTopologySuite的开发者)已经创建了一个SharpMap和NTS之间的一个连接,这样,就可以在SharpMap中使用NTS的空间变换、缓冲区等功能。 笔者之所以在这里分析ShrapMap,出于以下原因: ????? SharpMap足够小(小于10000行),且具备了一个GIS软件的基本功能,容易下手;( ?????( 基于.net和C#开发; ????? 开放源码(不开放就没有办法分析,废话);( ?????( SharpMap还在开发中,可以通过跟踪其源码学习提高。 一项技术或者一个工具,知其然和知其所以然,对于应用的深度和熟练程度还是具有很大的影响,特别是程序开发。分析SharpMap,不一定是要使用SharpMap,是希望通过分析SharpMap,可以了解一个GIS系统的纵剖面,从而可以更好的进行GIS的应用和开发。 源码结构 以下是SharpMap在VS 2005下的Class视图和Solution视图,可以看出SharpMap由SharpMap和其他14个次级名称空间组成,其中SharpMap名称空间下的Map类为这个系统的核心所在。 Map类,位于SharpMap命名空间下,通过创建Map对象的实例来生成地图。Map对象由包含Layer对象组成Layers集合,通过GetMap方法来Render地图。 Converts名称空间,提供数据转换服务。 Forms名称空间,包含MapImage控件,一个简单的User Control(用户控件),封装了Map类,用于Windows Form编程。 Geometries名称空间,包括了SharpMap要使用到的各种几何类及其接口类,例如点、线、面等类。 是SharpMap的基础之一,所有几何对象都继承自Geometry这个抽象类,其中定义了几何对象应该具备的公共操作,例如大小、ID、外接矩阵、几何运算等等。 ? Layers名称空间,包括了ILayer接口,Layer集合类等,代表地图的图层。 ? Layer是一个抽象类,实现了ILayer接口,Layer目前有3个子类,分别是VectorLayer、LabelLayer和WmsLayer,分别代3种不同数据类型的图层。 Providers名称空间,包括了IProvider接口和Shape文件、PostGIS数据的读取实现。该名称空间为SharpMap提供数据读(写)支持,通过面向接口的设计,可以比较容易的增加各类数据格式。 Rendering名称空间,目前包括矢量渲染器类和几个专题图渲染器类,该类可以将几何对象根据其Style设置渲染为一个System.Drawing.Graphics对象。 Styles名称空间,该名

文档评论(0)

zhuwenmeijiale + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档