fix: 修复盘旋导引的bug

pull/27/head
cbwu 1 year ago
parent 8596f7f928
commit 4e03bfd5fa

@ -2579,6 +2579,12 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y)
break;
case 2:
{
if (m_CircleGuideLayer>=0)
{
m_map.ClearDrawing(m_CircleGuideLayer);
m_CircleGuideLayer = -1;
}
CCircleGuidence circleGuidenceDlg;
if (IDOK == circleGuidenceDlg.DoModal())
{
@ -2589,12 +2595,19 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y)
double radius = circleGuidenceDlg.g_radius/abs(2*M_PI*6371000*cos(m_guidePtInfo.guidePtLat*M_PI/180)/360);
/*
double oneUnit[1] = {1};
CUtils utilsPtr;
bool b = utilsPtr.ConvertDistance(mapWindow::tkUnitsOfMeasure::umMeters,mapWindow::tkUnitsOfMeasure::umKilometers,oneUnit);*/
m_map.DrawWideCircleEx(m_CircleGuideLayer,m_guidePtInfo.guidePtLon,m_guidePtInfo.guidePtLat,radius,RGB(248,252,55),false,2);
m_map.Redraw();
//×°¶©
m_struMapOut.cmd = MapCmd_Guide2;
m_struMapOut.lon = m_guidePtInfo.guidePtLon;
m_struMapOut.lat = m_guidePtInfo.guidePtLat;
m_struMapOut.height = circleGuidenceDlg.g_alt;
m_struMapOut.radius = circleGuidenceDlg.g_radius;
m_struMapOut.direction = circleGuidenceDlg.g_direction;
::SendMessage(GetParent()->GetSafeHwnd(),MESSAGE_B8MAP, (int)(&m_struMapOut),0);
}
else
{
@ -2610,16 +2623,6 @@ void CGISDlg::MouseDownMap1(short Button, short Shift, long x, long y)
//OnRemoveGuidePtDraw();
return;
}
m_struMapOut.cmd = MapCmd_Guide2;
m_struMapOut.lon = m_guidePtInfo.guidePtLon;
m_struMapOut.lat = m_guidePtInfo.guidePtLat;
m_struMapOut.height = circleGuidenceDlg.g_alt;
m_struMapOut.radius = circleGuidenceDlg.g_radius;
m_struMapOut.direction = circleGuidenceDlg.g_direction;
::SendMessage(GetParent()->GetSafeHwnd(),MESSAGE_B8MAP, (int)(&m_struMapOut),0);
}
break;
default:
@ -4739,6 +4742,8 @@ void CGISDlg::OnGuideMode2()
return;
}
m_map.SetCursorMode(mapWindow::tkCursorMode::cmNone);
m_guidePtInfo.guideMode = 2;
m_guidePointMode = 2;

Loading…
Cancel
Save