MapWinGIS4.9.4.2EZ体育网站搭建安装及开发事项

1、 MapWinGIS4.9.4.2EZ体育网站搭建安装论坛:haozbbs.com Q1446595067

        因MapWinGIS目前对64位的支持不是很好,因此这里只对32位置MapWinGIS安装及使用进行说明。

        首先安装MapWinGIS-only-v4.9.4.2-Win32.exe,下载地址:https://github.com/MapWindow/MapWinGIS/releases。运行exe文件,默认安装(可以更改安装位置,设置自己想要安装的路径)。在初次安装时会出现一个安装Microsoft Visual C++ 2013 Redistributable(x86)的运行库(根据自己电脑安装运行库的情况)的提示:

        点击“I agree to thelicense terms and conditions”,然后点击“Install”进行安装。

首次安装后,找到安装路径,这里采用默认安装路径“C:\dev\MapWinGIS”,找到控件MapWinGIS.ocx对其进行注册。

注册方式有两种。方式一,选中MapWinGIS.ocx,鼠标右键弹出如下图所示:


        点击Register OCX进行注册。

        方法二,使用命令行进行注册,利用cd命令切换到MapWinGIS安装目录下,使用命令“Regsvr32MapWinGIS.ocx”进行注册,如图:

2、MFC框架下使用MapWinGIS(VS2010下)

        这里使用基于对话框的MFC应用程序进行讲述。首先创建一个基于对画框MFC应用程序的项目,在创建的对话框上进行部署MapWinGIS控件。选中想要部署的对话框,右键,选择“插入ActiveX控件(X)”,弹出控件选择框,找到“Map Control”控件,点击确定后,会在对话框中添加一个MapWinGIS的显示控件,对其进行拖拽设置,部署成自己想要的位置和大小。


        选中刚刚添加的Map Control控件,右键->添加变量,弹出如下:

        填好变量名称如m_map,注意会生成“.h”和“.cpp”文件,一般情况下,默认的文件名为“map1”,名称可以自己修改。

        编译项目,会发现出现一系列的错误,大致分为两类类:一类是语法错误,另一个类是未声明的标识符、缺少类型说明符。

       在项目的stdafx.h文件中添加语句:#import "MapWinGIS_SDK\MapWinGIS.ocx"rename_namespace("mapWindow"rename("GetObject","GISGetObject"),然后将MapWinGIS的安装路径下的“C:\dev\MapWinGIS”拷贝到项目路径下,并将文件夹名称改为MapWinGIS_SDK(实际上只用到部分内容,主要是MapWinGIS.ocx文件)。

       再编译一下,发现错误少了很多,提到max和min宏的错误。原因是在生成的mapwingis.tlh文件中有一个min和max的定义,这里应该是和vc下的stdlib.h中的max/min重定义了。

    HRESULT max (

        doublex,

        doubley,

        doubleZ );

    HRESULT min (

        doublex,

        doubley,

        doubleZ );

 为了解决这个问题,在#import "MapWinGIS_SDK\MapWinGIS.ocx" rename_namespace("mapWindow")rename("GetObject", "GISGetObject")语句前后增加了几行代码。分别是:

(1)  #undef max

            #undef min

2  #ifndef max

           #define max(a,b)           (((a) > (b))? (a) : (b))

           #endif

           #ifndef min

           #define min(a,b)           (((a) < (b))? (a) : (b))

           #endif


         先将max/min去定义,然后在importMapWinGIS后再重新定义一下(如果用不到的话也可不再重新定义)。

        再次编译一下,又发现许多错误,出现了非常多未声明的标识符。错误的地点都发生在添加控件变量生成的map1.h文件中。打开mapwingis.tlh文件(在项目路径中的Debug或者Release下,由import MapWinGIS后生成的),发现那些未声明的标识符都在这个文件中,里边定义了一个命名空间mapWindow。

        将“using namespace mapWindow;添加到map1.h文件中,最后编译一边,发现成功。运行项目,如图:

        接下来,就可以在此项目中自由的开发了……

猜你喜欢

转载自blog.csdn.net/qq_42626472/article/details/80943394
今日推荐