问题描述
就是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那样,我就是那么做的