开源地图SharpMap源码解析-(1)简介
1.简介
SharpMap最新版基于.NET Framework 4,采用C#开发的地图渲染引擎,非常易于使用。我这次研究的是比较稳定发布的V1.1版本。可以在GitHub下载该源码,地址:https://github.com/SharpMap/SharpMap。不想下载的可以在我文章后的链接下载我调试好的源码并且源码中也有一些我自己写的注释(注意如果使用GitHub的源码时要使用VS2013以上的Nuget还原,建议直接下载我调试好的)。
SharpMap实现功能:
(1)符合OpenGIS的简单要素规范,支持点、线、面、多点、多线、多面、集合对象集合等要素集合。
(2)支持常规的地图操作,例如旋转、平移、缩放等。
(3)实时的地图投影转换。
(4)使用异步委托实现效率最大化,可编制展示复杂的地图主体渲染。
(5)支持Web地图展示,支持AJAX地图控件,支持WMS服务。
(6)有很好的接口支持数据格式和图层的扩展。
SharpMap支持的格式:
(1)支持矢量数据格式:例如ESRI Shape File、PostGIS、Oracle、Microsoft SQLServer、SQLite等。
(2)支持栅格数据格式:例如.bmp、.gif、.tif、.png、.dem等格式。
(3)WMS地图服务。
SharpMap使用的第三方开源库:
BruTile:这是基于C#开发的支持GIS瓦片(tile)的开源代码库地址为:https://github.com/BruTile/BruTile
NetTopoLogySuite:基于.net平台处理GIS空间数据及其空间关系的类库。开源代码库地址为:https://github.com/NetTopologySuite/NetTopologySuite。还使用了该团队的其他开源项目GeoAPI,实现.net与GIS互操作开源代码库地址为:https://github.com/NetTopologySuite/GeoAPI有兴趣的话可以研究一下。
ProjNET:基于.Net开源的地图投影库,支持基准面转换,支持大地坐标系,地心坐标系以及投影坐标系。开源代码库地址为:http://projnet.codeplex.com/。
SharpMap源码结构
延伸阅读
学习是年轻人改变自己的最好方式