高程分析bug修复

pull/9/head
zhaipx 2 years ago
parent 4236fe86ba
commit c1e02ae88a

@ -2744,9 +2744,10 @@ void CGISDlg::MouseMoveMap1(short Button, short Shift, long x, long y)
//标注距离和方位
AddPointShapeLayer(m_longLabelPlotID,_ptLon, _ptLat, str, _T("红色"), RGB(255,0,0));
}
// 高程分析选点移动时
if (g_bDemAnalysising && g_iDemPointNum>=1)
{
return;
double lon = 0, lat = 0;
m_map.PixelToProj(x, y, &lon, &lat);
@ -2765,8 +2766,8 @@ void CGISDlg::MouseMoveMap1(short Button, short Shift, long x, long y)
AddOnePoint2Shapfile(g_lDemAltLayerID[g_iDemPointNum-1], 1, g_dDemPtLon[g_iDemPointNum-1], g_dDemPtLat[g_iDemPointNum-1]);
AddOnePoint2Shapfile(g_lDemAltLayerID[g_iDemPointNum-1], 1, lon, lat);
//显示线段的距离和方位
DrawLineLabel(g_lDemAltDisLayerID[g_iDemPointNum-1], g_dDemPtLon[g_iDemPointNum-1], g_dDemPtLat[g_iDemPointNum-1], lon, lat);
//显示线段的距离和方位(绘制标注)
DrawLineLabel(g_lDemAltLayerID[g_iDemPointNum-1], g_dDemPtLon[g_iDemPointNum-1], g_dDemPtLat[g_iDemPointNum-1], lon, lat);
}
}
@ -2823,20 +2824,17 @@ void CGISDlg::AddTextToPointShapeLayer(long &drawLayerID, const double lon, cons
m_map.Redraw();
}
//功能:显示两点所连线段的距离和方位
//功能显示两点所连线段的距离和方位标注Label
// drawLayerID 绘制标注的图层ID
// ptLon1, ptLat1 第一个点的经纬度
// ptLon2, ptLat2 第二个点的经纬度
void CGISDlg::DrawLineLabel(long &drawLayerID, const double ptLon1, const double ptLat1, const double ptLon2, const double ptLat2)
{
//没有加载地图,返回
if (!m_bHaveAddMap)
{
return;
}
double _dis, _angle;
CalculateTwoPtsDistanceAzimuth(_dis, _angle, ptLon1, ptLat1, ptLon2, ptLat2, 3);
CString str = _T("");
if ( _dis < 1000)
{
str.Format(_T("%.1fm/%.1f°"), _dis, _angle);
@ -2852,33 +2850,17 @@ void CGISDlg::DrawLineLabel(long &drawLayerID, const double ptLon1, const double
//计算标注点坐标
TargetPos2LabelPos(textLon, textLat, (ptLon1 + ptLon2)/2, (ptLat1 + ptLat2)/2);
//判断点矢量图层是否已经存在,存在则删除
if (drawLayerID > 0)
{
//清除标绘的点矢量图层
ClearPointShape(drawLayerID);
drawLayerID = -1;
}
if (_T("") != str)
{
//创建点图层
CreateEmptyShapfile(drawLayerID, 0, RGB(255,0,0)); //红色
//Label集合
CLabels labesPtr;
labesPtr = (m_map.GetShapefile(drawLayerID)).GetLabels();
CLabelCategory labelCategory = labesPtr.AddCategory(_T(""));
labelCategory.SetFontColor(RGB(255,255,0));
labelCategory.SetAlignment(1);
labelCategory.SetFontBold(TRUE);
labelCategory.SetFontName(_T("Times New Roman"));
labelCategory.SetFontSize(10);
//labesPtr.AddLabel(str, textLon, textLat, 0, 0);
}
TRACE(str);
//Label集合
CLabels labesPtr;
labesPtr = (m_map.GetShapefile(drawLayerID)).GetLabels();
CLabelCategory labelCategory = labesPtr.AddCategory(_T(""));
labelCategory.SetFontColor(RGB(255,255,0));
labelCategory.SetAlignment(1);
labelCategory.SetFontBold(TRUE);
labelCategory.SetFontName(_T("Times New Roman"));
labelCategory.SetFontSize(10);
// labesPtr.AddLabel(str, textLon, textLat, 0, 0);
//重绘
m_map.Redraw();
@ -6454,13 +6436,17 @@ afx_msg LRESULT CGISDlg::OnZoomToLocation(WPARAM wParam, LPARAM lParam)
return 0;
}
// 右键菜单-高程分析-高程分析
void CGISDlg::OnMenuLightRegion()
{
/*if (m_dlgLightRegion.GetSafeHwnd())
{
m_dlgLightRegion.ShowWindow(TRUE);
}*/
if(!m_bHaveAddMap){
AfxMessageBox( _T( "请先加载地图!"));
return;
}
g_bDemAnalysising = true;
g_iDemPointNum = 0;
}

Loading…
Cancel
Save