||
地理信息系统GIS(Geographic Information System)是储存和处理与地理空间分布有关信息的集合。在各行各业得到越来越广泛的应用,GIS以其混合数据结构和独特的地理空间分析功能独树一帜。用过几种商业化的GIS平台,SuperMap、ArcGis都很不错,可毕竟是商业的。自己开发还会得用开源地图引擎,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 等。
https://archive.codeplex.com/?p=mapwingis
一、MapWinGIS编译
MapWinGIS有很多版本,但是很奇怪,新版本有各种问题,地图加载不出来,所以推荐以前的稳定版本MapWinGIS-4.9.3+。
编译器采用VS2013,该软件的安装方法网上有很多,此次默认读者已经安装完成;
vs2013安装下载教程:https://www.jianshu.com/p/5bf32eedcfc0
1)下载source
各个版本下载链接:https://github.com/MapWindow/MapWinGIS/releases
选择MapWinGIS v4.9.3.6版本下载source
下载好代码后,解压目录结构如下
2)下载VS2013的GDAL库
由于MapWinGIS依赖gdal等相关库文件,所以先下载相关依赖项,地址如下:
选择以前的旧版本对应的VS2013的版本,这里选择gdal2.2.3版本;因为MapWinGIS对64位支持的不是很好,所以只需要选择win32就好了。
点击vs2013对应的win32以后,下载下面两个压缩文件:
release-1800-gdal-2-2-3-mapserver-7-0-7.zip里面包含bin文件夹
release-1800-gdal-2-2-3-mapserver-7-0-7-libs.zip里面包含lib和include文件夹
分别解压上面两个压缩文件
将release-1800-gdal-2-2-3-mapserver-7-0-7文件夹里面的bin文件夹中的所有文件复制到C:\Users\cugch\Documents\MapWinGIS-4.9.3.6\support\GDAL_SDK\v120\bin\win32目录中;
将release-1800-gdal-2-2-3-mapserver-7-0-7-libs文件家中的include和lib目录中的所有文件分别对应复制到C:\Users\cugch\Documents\MapWinGIS-4.9.3.6\support\GDAL_SDK\v120\include\win32目录和C:\Users\cugch\Documents\MapWinGIS-4.9.3.6\support\GDAL_SDK\v120\lib\Win32目录中;
3)打开MapWinGIS-4.9.3.6\support下的SupportLibs.sln,在vs2013下编译静态库cqlib.lib和spatialindex-mw.lib,有几个地方需要注意:
1、最好以管理员身份打开SupportLibs.sln
2、在解决方案上右键,打开属性页面,将默认的单启动项目改成多启动项目;
3、(这一步很关键,决定了是否能编译成功)在解决方案的右边属性中,活动配置设置为 Release|Win32
完成以上设置,就可以生成解决方案了,获得spatialindex-mw.lib和cqlib.lib,可以关闭软件。
4)编译MapWinGIS
以管理员身份打开MapWinGIS-4.9.3.6\src目录下面的MapWinGIS.sln
1、修改AngleHelper.cpp文件中的一行代码
s.Format(format + L"?, angle); //L"%.1f?
改成如下:
s.Format(format + L"%.1f", angle); //L"%.1f?
2、MapWinGIS右键打开属性页,链接器-->常规-->注册输出,改为 否,保存
3、直接生成解决方案(运行编译程序)
如果出现如下错误:cannot open file 'mfc120.lib'
这是因为缺少MFC库文件,关闭VS2013,下载安装对应的MFC版本Multibyte MFC Library for Visual Studio 2013
地址:http://www.microsoft.com/en-us/download/details.aspx?id=40770
完成MFC安装以后,重新打开MapWinGIS.sln,编译运行(需要一点时间,耐心等待),成功以后会在MapWinGIS-4.9.3.6\src\bin\Win32目录生成MapWinGIS.ocx
5)最后一步,将MapWinGIS进行注册
右键,管理员身份运行MapWinGIS-4.9.3.6\src\bin\Win32目录下面的regMapWinGIS.cmd文件,显示注册成功,大功告成。
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 01:52
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社