chaoshu的个人博客分享 http://blog.sciencenet.cn/u/chaoshu

博文

MapWinGIS-4.9.3.6编译方法

已有 3893 次阅读 2019-7-31 11:03 |个人分类:GIS|系统分类:科研笔记

地理信息系统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

image.png


下载好代码后,解压目录结构如下

image.png


2)下载VS2013的GDAL库

由于MapWinGIS依赖gdal等相关库文件,所以先下载相关依赖项,地址如下:

http://www.gisinternals.com/

image.png

选择以前的旧版本对应的VS2013的版本,这里选择gdal2.2.3版本;因为MapWinGIS对64位支持的不是很好,所以只需要选择win32就好了。

image.png

点击vs2013对应的win32以后,下载下面两个压缩文件:

image.png

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,有几个地方需要注意:

image.png

1、最好以管理员身份打开SupportLibs.sln

2、在解决方案上右键,打开属性页面,将默认的单启动项目改成多启动项目;

image.png

image.png

3、(这一步很关键,决定了是否能编译成功)在解决方案的右边属性中,活动配置设置为 Release|Win32

image.png

完成以上设置,就可以生成解决方案了,获得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?

image.png

2、MapWinGIS右键打开属性页,链接器-->常规-->注册输出,改为 否,保存

image.png


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

image.png


5)最后一步,将MapWinGIS进行注册

右键,管理员身份运行MapWinGIS-4.9.3.6\src\bin\Win32目录下面的regMapWinGIS.cmd文件,显示注册成功,大功告成。

image.png

image.png



https://blog.sciencenet.cn/blog-858128-1191836.html

上一篇:[转载]SLAM领域牛人、牛实验室、牛研究成果梳理
下一篇:使用ActiveX Control Test Container工具调式MapWinGIS
收藏 IP: 119.79.228.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-23 01:52

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部