mapx之vc自定义测距工具(PolyToolUsed事件)

原创 2004年04月26日 10:52:00

【功能】:mapx之vc自定义测距工具(PolyToolUsed事件)
【环境】:VC6+mapx4.5+win2000
【原创】: www.51gis.com

//1.定义常量
#define MYTOOL_DISTANCE 100 //1~999

//2.创建工具
m_ctrlMap.CreateCustomTool(MYTOOL_DISTANCE,miToolTypePoly,miCrossCursor);

//3.响应事件
void CMapXSampleView::OnPolyToolUsedMap(short ToolNum, long Flags, LPDISPATCH Points,
BOOL bShift,BOOL bCtrl,BOOL FAR* EnableDefault)
{
//计算距离
if(Flags==miPolyToolInProgress) {//这句可有可无
if(ToolNum==MYTOOL_DISTANCE)
{
CMapXPoints pts;
long n;
long i;
try{
pts.AttachDispatch (Points, FALSE); // Get points Object
double dDistanceTot=0.0;
n=pts.GetCount ();
for (i=1; i<n;i++)
{
CMapXPoint pt1=pts.Item(i);
CMapXPoint pt2=pts.Item(i+1);
double d=m_ctrlMapX.Distance (pt1.GetX(),pt1.GetY(),pt2.GetX (),
pt2.GetY ());
dDistanceTot+=d;
}
CString str;
str.Format ("总距离为:%f",dDistanceTot);
//在状态栏输出距离
((CMainFrame*)AfxGetMainWnd())->m_wndStatusBar.SetPaneText(0,str);
}
catch (COleDispatchException *e){
e->ReportError ();
e->Delete ();
}
catch (COleException *e){
e->ReportError ();
e->Delete ();
}
}
}//if(Flags==miPolyToolInProgress)
}

//4.调用工具
void CMapXSampleView::OnMapToolDistancetool()
{
m_ctrlMapX.SetCurrentTool(MYTOOL_DISTANCE); //

}

==================MapX专家论坛(www.51gis.com)===================

Mapx中创建测距工具、自动滚屏、图元的拖拽

 Mapx中创建测距工具示例首先创建测距工具global const calculatedistance=1Private Sub Form_Load()map1.CreateCustomTool(c...
  • netnok
  • netnok
  • 2008年11月26日 14:23
  • 2906

制作MapX自定义工具--测距工具

     制作自定义工具是MapX编程中一个很重要的部分,其步骤比较简单,但很多人很容易忽略其中的部分步骤,使得此功能难以实现。具体可以按以下步骤来做,本人在做这一功能时花费时间颇多,因为大部分介绍这...
  • chjun522
  • chjun522
  • 2006年11月21日 20:19
  • 1189

VC6.0制作MapX自定义工具(测距工具)

申明: 本人在网上找了很多例子,就这个比较完整,经过调试无误,遂贴出来供大家参考,让大家少走弯路(注意要先加载地图)。 参考博客:http://blog.csdn.net/fengrx/archi...
  • pinghegood
  • pinghegood
  • 2012年07月20日 09:52
  • 1620

Mapx的VC开发实践

摘  要  阐述了在VC环境下引入MapX控件的方法,以及在文档视图架构下如何使用MapX控件的问题,介绍了MapX数据绑定的方法及其与MapX专题图创建的关系,阐明了创建MapX专题图的一般方法,并...
  • zhihu008
  • zhihu008
  • 2012年07月23日 21:50
  • 8701

用VC++进行MapX二次开发

Writer:Bluedy  er-huang@163.com 1.1 地理信息系统概念 地理信息系统(Geographical Information System),简称GIS,是一种决策支持...
  • zhangjie_xiaoke
  • zhangjie_xiaoke
  • 2008年03月05日 18:32
  • 618

MAPX开发(一)

1:创建地图。CMapX.Create(NULL,WS_VISIBLE,CRect(0,0,300,300),this,IDC_MAP),其中CRect指明地图所占区域大小,IDC_MAP是控件ID,...
  • playboy1
  • playboy1
  • 2012年05月29日 11:33
  • 684

VC+mapX5.0 在指定经纬度显示车辆图标

VC+mapX5.0开发训练:在指定经纬度显示车辆图标 我正在学习利用vc实现mapx控件的功能,已经能够在vc的程序框架中实现地图显示,并且可以实现了放大、缩小、漫游以及图层控制等功能了。现...
  • zhihu008
  • zhihu008
  • 2012年07月23日 22:06
  • 10326

我使用的MapX小心得

0 申明变量  CMapX           m_ctrlMapX;  CMapXLayer    m_objLayer;//运动目标图层  CMapXLayer    m_traceL...
  • tiger9991
  • tiger9991
  • 2012年08月16日 00:01
  • 2356

Mapx 具体使用方法

MapX5.0地图量测代码 2008年11月13日 星期四 22:13 利用多边形工具:wMap.CurrentTool = ( MapXLib.ToolConstants ...
  • meeweed
  • meeweed
  • 2012年04月26日 12:43
  • 3725

如何在在MapX中画线

响应组建的按下事件,下面是具体的实现代码。 void CMapView::OnMouseDownMap(short Button, short Shift, float X, float Y) ...
  • playboy1
  • playboy1
  • 2012年05月28日 14:20
  • 934
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mapx之vc自定义测距工具(PolyToolUsed事件)
举报原因:
原因补充:

(最多只允许输入30个字)