基于MapWinGis开发探索(一)
地理信息系统(GIS)是储存和处理与地理空间分布有关信息的集合。在各行各业得到越来越广泛的应用,GIS以其混合数据结构和独特的地理空间分析功能独树一帜。用过几种商业化的GIS平台,SuperMap、ArcGis都很不错,可毕竟是商业的,而且之前开发一个系统是基于SuperMap二次开发的。SuperMap自身存在着一些问题。找了几种开源地图引擎,MapWinGis其效率是相当不错的,研究了一段时间也比较喜欢。下面先介绍下:
MapWinGis 是一个相当高效的地图引擎,放大、缩小、漫游速度很快,被誉为开源中的ArcGis 。开发语言是VC,基于微软的COM思想编写。系统来说,MapWinGis 是一套类似于AO的二次开发组件库(只是没有AO那么强大),其核心库是一个名字为MapWinGis的 ActiveX控件,开发人员可以利用这个ActiveX组件在自己的系统中添加GIS的相关功能,例如:地图显示;在图层上标绘点、线、图形;计算长度,存取GIS数据等相关工作。ESRI在AO的基础之上开发了ArcGIS的桌面产品,类似的,他们也在MapWinGis 这套组件库的基础上,二次开发了MapWindow GIS,这是一套桌面GIS系统,相当于一个简化版的ArcMap,桌面GIS系统的开发语言使用的是VB.NET。用户可以直接通过它浏览数据,并通过一系列插件来完成其他功能。还有一套MapWinX,是DOTNET平台下的一个辅助工具。
二次开发环境支持VB、C#、VB.NET 等。
MapWinGis 的主要功能包括:
1、直接打开,编辑,保存Image,Grid,Shapfile,TIN,DBF格式的文件。
2、在地图中对图形进行浏览,标注,支持矢量数据的符号化,栅格数据的透明显示。
3、在地图中对矢量数据进行空间数据查询。
4、动态的在图层上标绘空间数据。
5、存取地图中的相关数据。
自我感觉MapWinGis存在的缺点也是相当大的:
1.首先只支持点、线、面、至于矢量图片等貌似不支持,需自行扩展。
2.MapWinGis渲染的效果始终感觉没有被的GIS引擎好。
3.空间数据库只能由PostGreSQL支持。
4.最大的一个缺点感觉就是必须本地必须存在几个文件(.shp .dbf .shx .mwsr)。当有多个客户端时,必须通过服务器下载更新,无法直接操作PostGreSQL数据库,这个相对于SuperMap实在弱了一点。
5.数据量大的问题。速度比较慢,这是每个GIS引擎必然遇到的。
6.当前的官方版本不支持中文路径的读取,不过这个通过改源代码已经解决。MapWinGis.ocx。通过注册这个主键即可。
当然MapWinGis优点也是很多的,对.Net的二次开始相当支持。速度、效率总体不错。当前开发的系统就是基于MapWinGis的网络资源管理系统,效果相当不错。一直想深入研究,希望能向其他GIS爱好者学习学习。未完待续……