SharpMap+的世界地图连续漫游研究与实现.pdf
上传人:qw****27 上传时间:2024-09-11 格式:PDF 页数:7 大小:420KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

SharpMap+的世界地图连续漫游研究与实现.pdf

SharpMap+的世界地图连续漫游研究与实现.pdf

预览

在线预览结束,喜欢就下载吧,查找使用更方便

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

http://www.paper.edu.cn基于SharpMap的世界地图连续漫游研究与实现刘力赟北京邮电大学计算机科学与技术学院,北京(100876)E-mail:liyunliu@bupt.cn摘要:SharpMap是一个可应用于桌面和Web程序的简单易用的Map渲染类库,它是基于.Net2.0Framework用C#语言开发的。本文结合源代码对0.9版本SharpMap的体系架构进行描述。采用世界国家地图文件渲染实例说明了SharpMap渲染Shapefile文件的机制。通过研究SharpMap渲染机制,分析了SharpMap对于世界地图应用的特殊需求的不足,设计了地图缝合技术,最后开发实现了世界地图连续漫游的功能。关键词:SharpMap;开放源码;视窗;连续漫游;地图缝合中图分类号:TP3171.引言Unix从1969年诞生,随后商业化导致自由软件的诞生,到Linux诞生并加入GNU成为自由软件[1]运动的分水岭,最后,“开放源码软件”的概念在1997年由美国程序员EricStevenRaymond在短文《大教堂与市集》(CathedralandtheBazaar)中被提出[2]。10多年来,开源社区规模加速扩大,涌现出了大量优秀开源的软件,如:Apache,Linux,Mozilla,Ubuntu。开源软件打破了商业软件的局限性,并在互联网的发展的推动下,在全世界范围合作团体和社区中发展。开源软件朝着更高质量、更稳定、更可靠的方向发展。基于开源软件产品,缩短了开发者定制本地化软件的周期,更加灵活、有效。本文介绍的SharpMap项目[3]是一个基于.Net2.0FrameWork用C#语言开发的开源的GIS引擎项目。本文结合源代码描述了0.9版本的SharpMap的体系架构。用世界国家地图实例说明了渲染Shapefile文件的机制。通过研究SharpMap渲染机制,分析了对于世界地图应用的特殊需求的不足,设计了地图缝合技术,最后开发实现了世界地图连续漫游的功能。2.SharpMap介绍2.1SharpMap概要SharpMap是一个可应用于桌面和Web程序的简单易用的Map渲染类库,它基于.Net2.0Framework用C#语言开发,以GNULGPL(LesserGeneralPublicLicense)[4]授权协议发布。目前的稳定版本为0.9(2.0版本正在开发),本文就是基于0.9版本进行研究。SharpMap实现了如下功能:支持渲染包括:ESRIShape、PostGreSQL/PostGIS、OLEDB(pointsonly)、MicrosoftSQLServer等Vector数据格式,以及WMSServers数据格式,并且通过第三方扩展可渲染更多Vector、Raster类型的GIS数据格式。SharpMap提供了空间索引技术搜索图元数据。①支持的数据格式:Vector数据包括:ESRIShapefilesformat,PostGreSQL/PostGIS,OLEDB(pointsonly),MicrosoftSQLServer;WMSServers;通过第三方扩展支持其它多种Vector数据格式和栅格数据格式(这一部分不发布在0.9版本中)。-1-http://www.paper.edu.cn②WindowsForms控件MapImage,使桌面应用更加简单,提供基本的放大、缩小、移动、标尺等基本地图操作工具。③通过HttpHandler支持ASP.net程序,在Web中实现地图渲染。④提供点、线、多边形、多点、多线和多多边形等几何类型和几何集合等OpenGISSimpleFeaturesSpecification。⑤可通过DataProviders(增加数据类型支持)、LayerTypes(增加层类型)和GeometryTypes等扩展。⑥图形使用GDI+渲染,支持anti-aliased等,使地图渲染效果更加漂亮。⑦专题图,用户可以灵活定制本地化需求的地图。2.2SharpMap体系结构DisplayViewsMapImageAjaxMapControlCustomViewMapStandardToolsZoom,Pan,QueryCustomToolsPresentationGeometryRendereLabelRendererCustomRendererThemingCustomVectorRendererThemeReprojection(ProjNET)FeatureLayersVectorLayerLabelLayerWms