Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 编程语言 > .NET > C#.NET > 基于.NET 2.0的GIS开源项目SharpMap分析手记(二):源代码总体结构分析
【标  题】:基于.NET 2.0的GIS开源项目SharpMap分析手记(二):源代码总体结构分析
【关键字】:.NET,2.0,GIS,SharpMap
【来  源】:http://blog.csdn.net/suen/archive/2006/12/05/1431269.aspx

基于.NET 2.0的GIS开源项目SharpMap分析手记(二):源代码总体结构分析

Your Ad Here  
通过前面的“第一次亲密接触”,我们对SharpMap的功能已经有一个总体的了解,现在我们再来分析SharpMap的源代码总体结构。
解压下载的0.9版源代码,有两个文件夹:SharpMap和SharpMap.UI,如图1所示。
 
图1 SharpMap源代码结构
 
其中SharpMap.UI是用户界面相关命名空间,如窗体Forms、Ajax等。SharpMap工程是主体,包括数据转换、坐标、数据、几何体、图层等命名空间,下面分别介绍:
SharpMap命名空间,包括Map类,通过创建Map对象的实例来生成地图。Map对象由包含Layer对象组成Layers集合,通过GetMap方法来Render地图。
Converts命名空间,提供数据转换服务。
CoordinateSystems命名空间,提供坐标系统及其投影和转换。
Data命名空间,提供对各种数据支持,现在包括MSSQL和ShapeFile支持。
Providers名称空间,包括了IProvider接口和Shape文件、PostGIS数据的读取实现。该名称空间为SharpMap提供数据读(写)支持,通过面向接口的设计,可以比较容易的增加各类数据格式。
Geometries命名空间,包括了SharpMap要使用到的各种几何类及其接口类,例如点、线、面等类。是SharpMap的基础之一,所有几何对象都继承自Geometry这个抽象类,其中定义了几何对象应该具备的公共操作,例如大小、ID、外接矩阵、几何运算等等。
Layers命名空间,提供各种图层支持,包括注记层、矢量层等。Layer是一个抽象类,实现了ILayer接口,Layer目前有3个子类,分别是VectorLayer、LabelLayer和WmsLayer,分别代3种不同数据类型的图层。
Rendering命名空间,目前包括矢量渲染器类和几个专题图渲染器类,该类可以将几何对象根据其Style设置渲染为一个System.Drawing.Graphics对象。
Styles命名空间,该命名空间主要提供了图层的样式设置类,例如线样式、点样式、填充样式等。
Utilities名称空间包括Algorithms类(目前仅实现了一个方法);Providers类,是Provider的一个Helper,应用了反射机制;Surrogates主要用于系统的Pen和Brush的序列化;Transform提供了从图片坐标到地理坐标的互相变换,也即桌面GIS的二次开发中经常使用的屏幕坐标和地理坐标的转换,主要用于地图的渲染、交互操作等。
Utilities.SpatialIndexing用于对象的空间索引, Web名称空间实现了HttpHandler和Caching类,用于网络环境。
Web命名空间,包括对网络支持如HTTP等,Web.Wms提供对WMS的支持。
SharpMap.UI工程包括:
Forms名称空间,包含MapImage控件,一个简单的User Control(用户控件),封装了Map类,用于Windows Form编程。
Web.UI.Ajax提供对Ajax支持。
 
 
在C#中获取文本框中光标所在位置:【上一篇】
项目实作的好导师——北京邮电大学研究生热评章老师新书!:【下一篇】
【相关文章】
  • ASP.NET 2.0入门经典(第4版) - Web站点常见任务的简单解决方案
  • 在Asp.Net 2.0中使用Css Tab Design样式美化菜单
  • 从小处看C#.net垃圾回收
  • 文章推荐:ASP.NET AJAX Under the Hood Secrets及其他
  • 基于.NET的CMS软件的选择
  • 讲座展示:TechEd Europe DEV 411 - AJAX Patterns with ASP.NET AJAX(1)
  • PageFlakes.com创建者写的《ASP.NET AJAX 之内幕揭密》
  • Lucene.Net Research
  • [原创]NickLee.Framework.2.0.1.2
  • ASP.NET之上传文件管理策略
  • 【随机文章】
  • 终于折腾完毕
  • Make 使用方法
  • 怎样让SQL只显示用户表
  • 转EXCEL和WORD时候出现的问题(死亡历险)
  • 应用程序开发步骤!
  • 用VB实现应用程序在局域网络上自动更新
  • Javascript制作浮动的工具条
  • Solaris 数据备份命令
  • ERP平稳前行--也谈ERP市场形势和热点问题
  • Xml 的几种调用方法
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.