经纬度随鼠标在地图上移动随时显示
2006-11-26 22:40
316 查看
在GIS开发中,地图上的位置信息是很重要的,很多时候都想随时知道某一点的具体地理位置信息。
下面的代码用来实现当鼠标在地图上移动时随时将经纬度显示在状态栏上。
/////1在事件槽中加入事件/////////////////////
ON_EVENT(CSampView, IDC_MAP, DISPID_MOUSEMOVE,OnMouseMoveInMap,VTS_I2 VTS_I2
VTS_XPOS_PIXELS VTS_YPOS_PIXELS)
////2在头文件中加入函数定义///////////////
BOOL OnMouseMoveInMap(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
///3加入实现函数////////////////////////////////
//鼠标在地图上移动时随时将经纬度显示在状态栏上
BOOL CSampView::OnMouseMoveInMap(short Button, short Shift, OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y)
{
/*#if DO_TRACE
TRACE("OnMouseMoveInMap/r/n");
TRACE("Button = %d/r/n",Button);
TRACE("Shift = %d/r/n",Shift);
TRACE("X = %g/r/n",x);
TRACE("Y = %g/r/n",y);
#endif//DO_TRACE
*/
//if(m_ctrlMapX.GetCurrentTool() == miArrowTool)
//{
float fXn,fYn;
double dfXn,dfYn;
CPoint pt;
GetCursorPos(&pt);
fXn = (float)pt.x;
fYn = (float)pt.y;
m_ctrlMapX.ConvertCoord(&fXn,&fYn,&dfXn,&dfYn,miScreenToMap);
CString str;
CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
CStatusBar* pStatusBar = &(pMainFrame->m_wndStatusBar);
if(NULL != pStatusBar)
{
str.Format("longitude = %f latitude = %f",dfXn,dfYn);
// CClientDC dc(this);
// CSize sz=dc.GetTextExtent(str);
pStatusBar->SetPaneInfo(1,ID_ONMAP_CURRENT_LOCATION,SBPS_NORMAL,sz.cx);
pStatusBar->SetPaneText(1,str);
}
//}
return TRUE;
}
下面的代码用来实现当鼠标在地图上移动时随时将经纬度显示在状态栏上。
/////1在事件槽中加入事件/////////////////////
ON_EVENT(CSampView, IDC_MAP, DISPID_MOUSEMOVE,OnMouseMoveInMap,VTS_I2 VTS_I2
VTS_XPOS_PIXELS VTS_YPOS_PIXELS)
////2在头文件中加入函数定义///////////////
BOOL OnMouseMoveInMap(short Button, short Shift, OLE_XPOS_PIXELS x, OLE_YPOS_PIXELS y);
///3加入实现函数////////////////////////////////
//鼠标在地图上移动时随时将经纬度显示在状态栏上
BOOL CSampView::OnMouseMoveInMap(short Button, short Shift, OLE_XPOS_PIXELS x,
OLE_YPOS_PIXELS y)
{
/*#if DO_TRACE
TRACE("OnMouseMoveInMap/r/n");
TRACE("Button = %d/r/n",Button);
TRACE("Shift = %d/r/n",Shift);
TRACE("X = %g/r/n",x);
TRACE("Y = %g/r/n",y);
#endif//DO_TRACE
*/
//if(m_ctrlMapX.GetCurrentTool() == miArrowTool)
//{
float fXn,fYn;
double dfXn,dfYn;
CPoint pt;
GetCursorPos(&pt);
fXn = (float)pt.x;
fYn = (float)pt.y;
m_ctrlMapX.ConvertCoord(&fXn,&fYn,&dfXn,&dfYn,miScreenToMap);
CString str;
CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);
CStatusBar* pStatusBar = &(pMainFrame->m_wndStatusBar);
if(NULL != pStatusBar)
{
str.Format("longitude = %f latitude = %f",dfXn,dfYn);
// CClientDC dc(this);
// CSize sz=dc.GetTextExtent(str);
pStatusBar->SetPaneInfo(1,ID_ONMAP_CURRENT_LOCATION,SBPS_NORMAL,sz.cx);
pStatusBar->SetPaneText(1,str);
}
//}
return TRUE;
}
相关文章推荐
- 经纬度随鼠标在地图上移动随时显示
- 【原创】随鼠标移动显示地图经纬度
- 随鼠标移动在状态栏显示地图坐标
- Android移动开发-通过自定义算法代码来纠偏地图由GPS定位到的经纬度在地图上显示或解析位置时出现偏移的问题
- 随鼠标移动在状态栏显示地图坐标(转载)
- Silverlight4下bing map实现鼠标移动时显示地图上的经纬坐标
- 随鼠标移动在状态栏显示地图坐标(转载)
- jsp页面显示中国省份区域地图+鼠标移动变色
- 鼠标移动到控件上显示提示信息
- 开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
- DataGrid实现过多信息鼠标移动到记录上显示,可分页
- Windows 7/8 中 ,QQ靠边自动隐藏后,鼠标移动到QQ上显示下拉后又自动缩上去,或者只显示一半,必须要拖动鼠标才能全部显示出来。
- Jquery创建层显示标题和内容且随鼠标移动而移动
- 开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
- 开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]
- iOS根据该地经纬度在地图上显示该地的大头针
- 鼠标在按钮上移动、按下或者弹起时显示按钮功能提示文本
- 自己写的基于JavaScript DOM 仿一些页面的鼠标移动显示相应区块内容
- 自己写的基于JavaScript DOM 仿一些页面的鼠标移动显示相应区块内容
- 开机黑屏 仅仅显示鼠标 电脑黑屏 仅仅有鼠标 移动 [已成功解决]