MapWinGIS是一个不错的开源组件GIS项目,基于微软的COM思想编写,团队的开发人员主要来自爱荷华大学,而且开发团队中还有一位中国人。它的功能类似于AO(当然没有AO那么强大),其核心是一个名字为MapWinGIS的ActiveX控件,开发人员可以利用这个ActiveX组件在自己的系统中添加GIS的相关功能,例如地图显示;在图层上标绘点,线,图形;计算长度,存取GIS数据等相关工作。在MapWinGIS 的基础上,他们又开发了MapWindow GIS,这是一套桌面GIS系统,开发语言使用的是VB.NET。用户可以直接通过它浏览数据,并通过一系列插件来完成其他功能。还有一套MapWinX,是DOTNET平台下的一个辅助工具。
MapWinGIS开发环境是VC.NET2003,代码大约有15万行,注释很丰富。它的官方网站是 http://www.maporg/ ,在网站上提供了已经发布的控件下载,源代码下载,例子下载等,并且有相关的论坛和文档,资料算是比较丰富的。二次开发环境支持VB、.NET等,对VC的支持不是很好,不过我曾经看到过有人已经解决了在VC下使用MapWinGIS的问题,百度一下就可以找到解决方案。
MapWinGIS的主要功能包括:
直接打开,编辑,保存Image,Grid,Shapfile,TIN,DBF格式的文件。
在地图中对图形进行浏览,标注,支持矢量数据的符号化,栅格数据的透明显示。
在地图中对矢量数据进行空间数据查询。
动态的在图层上标绘空间数据。
存取地图中的相关数据。
对不同的格式进行转换,例如从TIN到GIRD等。
MapWinGIS中对Shapfile的操作并不是通过OGR来实现的,工程代码中有完整的打开、浏览、编辑SHP文件的代码,对想SHP格式的人来说,看MapWinGIS的代码也是个不错的选择,起码比看枯燥的shapefile白皮书强多了。同时在效率方面,个人感觉比用OGR要好一点。打开一个相对较大的图层,与ArcGIS相比几乎感觉不到差别。
对影像数据,MapWinGIS是使用GDAL来实现读取的。