如何用vc++调用mapinfo

问题描述

就是vc++调用mapinfo(OLE嵌入)做一个界面,显示数字地图,有对地图的操作(例如:放大缩小移动地图回复地图原来大小量距离量面积等等)要具体的步骤,有码源更好!!等待好心高人帮我解答!!本人新手,诚心求助!!

解决方案

解决方案二:
mark
解决方案三:
要安装MAPX5.0或MapXtreme2004以上版本才行。如果是MAPX5.0,可以直接作为ActiveX控件调用。
解决方案四:
第一步:用MFC应用程序向导新建一个单文档的工程,名字就不妨取为:mapxdemo第二步:Project>AddToProject>Files,选择MapX.cpp和MapX.h。同时还要手工将Mapx.h和Mapx.cpp这两个文件复制到你的工程目录中去,不然编译时会报错的 第三步:在mapxdemoView.h文件中包括它:    #include"MapX.h"另外还要在视图类(mapxdemoView.h)中定义一个对象:classCMapxdemoView:pubicCView{......CMapXm_ctrlMapX;//这是要添加的...........}第四步::声明一个常量。View>ResourceSymbols>New>name为IDC_MAP。   第五步:在类向导(ctrl+W)中为mapxdemoView创建WM_SIZE和WM_CREATE的处理消息:voidCMapxSampleView::OnCreate(UINTnType,intcx,intcy){m_ctrlMapX.Create(NULL,WS_VISIBLE,CRect(0,0,100,100),this,IDC_MAP);}voidCMapxSampleView::OnSize(UINTnType,intcx,intcy){CView::OnSize(nType,cx,cy);m_ctrlMapX.MoveWindow(0,0,cx,cy,TRUE);}第六步:在类向导中为CMapXSampleView创建WM_SETFOCUS的处理消息,以确保当窗口处于活动状态时得到焦点。voidCMapxSampleView::OnSetFocus(CWnd*pOldWnd){CView::OnSetFocus(pOldWnd);m_ctrlMapX.SetFocus();}然后编译运行。就可以看到USA的地图了!如果没有就再试试。如果想让程序运行时不显示任何地图数据,需要将gst清空,方法如下:intCMapxSampleView::OnCreate(LPCREATESTRUCTlpCreateStruct){if(CView::OnCreate(lpCreateStruct)==-1)return-1;//创建mapx控件CRectrc(0,0,100,100);if(!m_ctrlMapX.Create(NULL,WS_VISIBLE,rc,this,IDC_MAP))return-1;//清空gst地图m_ctrlMapX.SetGeoSet("");return0;}当然如果想显示自己的地图的话,在m_ctrlMapX.SetGeoSet("");中写入路径就可以了。如m_ctrlMapX.SetGeoSet("asia.gst");或m_ctrlMapX.SetGeoSet("maps\asia.gst");这说明maps文件夹是在工程目录下的.在地图显示出来后,用户通常要以各种比例查看地图的全局、局部或细部,必须提供诸如放大、缩小和漫游等功能。采用MapX通用工具,可以非常方便地实现上述功能。设定MapX使用标准工具的方法很简单,只需设定地图对象的CurrentTool属性。下面的例子是用标准放大工具实现放大功能。添加新菜单项资源,输入标题“工具”,在“工具”下添加子菜单,输入标题“放大”及ID为ID_ZOOM_IN。打开类向导,选择视图类CMapXSampleView,为菜单项ID_ZOOM_IN添加COMMAND消息映射函数OnZoomIn(),并编辑码如下。voidCMapXSampleView::OnZoomIn(){m_ctrlMapX.SetCurrentTool(miZoomInTool);//miZoomInTool为放大工具常量}编译运行程序,选择“工具|放大”,就会看到此时光标变为放大镜,单击鼠标就会实现放大功能。可用相同方法实现其他标准工具的功能。MapX提供的可用标准工具如下表。
解决方案五:
对不起,图实在贴不上,简单说:工具常数说明添加线条miAddLineTool将线条图元添加到插入图层中。添加点miAddPointTool单击该工具可将点图元添加到插入图层中。添加折线miAddPolyLineTool将折线图元添加到插入图层中。添加区域miAddRegionTool将区域图元添加到插入图层中。箭头miArrowTool单击标题或注释此外,在可编辑图层中移动选定图元或调整选定图元的大小。居中miCenterTool单击该工具可以重新将地图居中。加标签miLabelTool在一个图元上单击可以给该图元加标签。平移miPanTool拖动该工具可以重新将地图居中。多边形选择miPolygonSelectTool单击该工具可以绘制一个多边形;该多边形内的对象将被选定。半径选择miRadiusSelectTool拖动该工具可以选择半径内的图元。矩形选择miRectSelectTool拖动该工具可以选择矩形内的图元。选择工具miSelectTool单击该工具可以选择图元。符号miSymbolTool放置符号注释。文本miTextTool放置文本注释。放大miZoomInTool放大。缩小miZoomOutTool缩小。
解决方案六:
我还是个新手,看到这些东西感觉很好!
解决方案七:
LZ,我也刚刚接触这个,单位领导要用mapinfo编一个电子地图的界面。刚好学习学习。不知道这方面有没有教程之类的东西?
解决方案八:
还不如用Mapserver+Openlayers呢,做成跟googlemap那样,我就是那么做的

时间: 2024-07-29 05:59:02

如何用vc++调用mapinfo的相关文章

代码-如何用VC读取注册表二进制值,比如ShutdownTime?求助~

问题描述 如何用VC读取注册表二进制值,比如ShutdownTime?求助~ 用RegQueryValueEx读取数据,应该放在哪种数据类型中呢,求有效代码~ 下面这段是自己的提取TypedURLsTime的代码.不知问题在哪.. int main() { HKEY hKey; DWORD lpType = REG_BINARY; BYTE time[64]; DWORD timeSize = sizeof(time); RegOpenKeyEx(HKEY_CURRENT_USER, "Soft

如何用VC++抓取网页内容.

问题描述 请教一下,如何用VC++抓取网页内容,就是类似网页源文件这种东西. 解决方案 解决方案二:你google一下VC,httpclient,一大堆的例子.如果要更熟悉一下底层,可以读一读http协议的规范.解决方案三:引用1楼iihero的回复: 你google一下VC,httpclient,一大堆的例子.如果要更熟悉一下底层,可以读一读http协议的规范. 你好,我这里有一个例子,但是自己很多地方还不懂,想请教下你.////////////////////////////////////

mfc如何调用mapinfo的符号库

问题描述 mfc如何调用mapinfo的符号库 不需要mapinfo其他的功能,只想画出它默认的点线面状符号 解决方案 最简单的是截图,然后导入资源调用. 解决方案二: VC++通过MapX调用MapInfo

网页页面中如何用Javascript调用Flash动画?

flash动画|javascript|网页|页面 问:网页页面中如何用Javascript调用Flash动画? 答: 在<HEADE>区加入  程序代码 <script src="js/flash.js" type="text/javascript"></script> 在调用FLASH处加入  程序代码 <script language="JavaScript" type="text/java

VC调用外部程序接口

(1) system() 函数名: system 功 能: 发出一个DOS命令 用 法: int system (char *command); 备 注: system函数已经被收录在标准c库中,可以直接调用 返回值 =-1:出现错误 =0:调用成功但是没有出现子进程 >0:成功退出的子进程的id 样 例: system("D:\\game.exe"); system("mmc.exe \"c:\\windows\\system32\\gpedit.msc\&

VC调用有关PID仿真COM组件的问题

问题描述 VC调用有关PID仿真COM组件的问题 求大神只招!!!!我就是在MATLAB上编写了一个自适应模糊PID控制的仿真,现在把它COM化,然后在VC上设计一个界面,需要有关Kp0,Ki0,Kd0,以及传递函数的输入,得到不同的仿真图, 解决方案 vc调用 com+组件 求助VC调用COM组件VC调用COM组件 解决方案二: 你定义com接口.然后把需要的数据作为接口参数传递进去调用

如何用java调用bartender打印条码

问题描述 如何用java调用bartender打印条码 如何用java调用bartender打印条码如何用java调用bartender打印条码如何用java调用bartender打印条码 解决方案 java调用条码打印机指令进行打印 解决方案二: 同求.............

comtech-请问如何用VC远程遥控COMTECH解调器,最好有源程序

问题描述 请问如何用VC远程遥控COMTECH解调器,最好有源程序 我需要用VC程序遥控改变comtech的cdm600调制解调器的频率.带宽等参数请问如何做 解决方案 http://download.csdn.net/download/J_N_N/2778221

nvoke-请教一个VC调用JS的问题

问题描述 请教一个VC调用JS的问题 请教一个问题,我用VC调用JS, 我用的是WEBSOCKET长连接,我第1次调用SendData,会收到1个返回data, 第2次用,却会收到2个返回(正确的应该只有1个),第3次收到3个返回... 这个HTML在浏览器中使用是正常的,而我用VC调用的时候就不正常了,这是为什么? JS代码: //接收服务器返回值 socket.on('message', function(data){alert(data);}; //发送数据 function SendDa