解决高程分析崩溃bug,并优化距离航向标注样式

pull/9/head
zhaipx 2 years ago
parent 204c6699bb
commit 82b3161226

@ -2803,10 +2803,9 @@ void CGISDlg::MouseMoveMap1(short Button, short Shift, long x, long y)
//标注距离和方位 //标注距离和方位
AddPointShapeLayer(m_longLabelPlotID,_ptLon, _ptLat, str, _T("红色"), RGB(255,0,0)); AddPointShapeLayer(m_longLabelPlotID,_ptLon, _ptLat, str, _T("红色"), RGB(255,0,0));
} }
//高程分析时
if (g_bDemAnalysising && g_iDemPointNum>=1 ) if (g_bDemAnalysising && g_iDemPointNum>=1 )
{ {
return;
double lon = 0, lat = 0; double lon = 0, lat = 0;
m_map.PixelToProj(x, y, &lon, &lat); m_map.PixelToProj(x, y, &lon, &lat);
@ -2819,7 +2818,7 @@ void CGISDlg::MouseMoveMap1(short Button, short Shift, long x, long y)
m_map.RemoveLayer(g_lDemAltLayerID[g_iDemPointNum-1]); m_map.RemoveLayer(g_lDemAltLayerID[g_iDemPointNum-1]);
//创建线图层 //创建线图层
CreateEmptyShapfile(g_lDemAltLayerID[g_iDemPointNum-1], 1, RGB(0,0,255)); CreateEmptyShapfile(g_lDemAltLayerID[g_iDemPointNum-1], 1, RGB(255,255,255));
//绘制线段 //绘制线段
AddOnePoint2Shapfile(g_lDemAltLayerID[g_iDemPointNum-1], 1, g_dDemPtLon[g_iDemPointNum-1], g_dDemPtLat[g_iDemPointNum-1]); AddOnePoint2Shapfile(g_lDemAltLayerID[g_iDemPointNum-1], 1, g_dDemPtLon[g_iDemPointNum-1], g_dDemPtLat[g_iDemPointNum-1]);
@ -2827,14 +2826,7 @@ void CGISDlg::MouseMoveMap1(short Button, short Shift, long x, long y)
//显示线段的距离和方位(绘制标注) //显示线段的距离和方位(绘制标注)
DrawLineLabel(g_lDemAltLayerID[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);
//显示线段的距离和方位
/*
if (g_lDemAltDisLayerID[g_iDemPointNum-1]!=-1)
{
m_map.ClearDrawing(g_lDemAltDisLayerID[g_iDemPointNum-1]);
}
g_lDemAltDisLayerID[g_iDemPointNum-1] = m_map.NewDrawing(1);*/
//DrawLineLabel(g_lDemAltDisLayerID[g_iDemPointNum-1], g_dDemPtLon[g_iDemPointNum-1], g_dDemPtLat[g_iDemPointNum-1], lon, lat);
} }
} }
@ -2897,7 +2889,6 @@ void CGISDlg::AddTextToPointShapeLayer(long &drawLayerID, const double lon, cons
// ptLon2, ptLat2 第二个点的经纬度 // ptLon2, ptLat2 第二个点的经纬度
void CGISDlg::DrawLineLabel(long &drawLayerID, const double ptLon1, const double ptLat1, const double ptLon2, const double ptLat2) void CGISDlg::DrawLineLabel(long &drawLayerID, const double ptLon1, const double ptLat1, const double ptLon2, const double ptLat2)
{ {
double _dis, _angle; double _dis, _angle;
CalculateTwoPtsDistanceAzimuth(_dis, _angle, ptLon1, ptLat1, ptLon2, ptLat2, 3); CalculateTwoPtsDistanceAzimuth(_dis, _angle, ptLon1, ptLat1, ptLon2, ptLat2, 3);
@ -2918,42 +2909,22 @@ void CGISDlg::DrawLineLabel(long &drawLayerID, const double ptLon1, const double
//计算标注点坐标 //计算标注点坐标
TargetPos2LabelPos(textLon, textLat, (ptLon1 + ptLon2)/2, (ptLat1 + ptLat2)/2); TargetPos2LabelPos(textLon, textLat, (ptLon1 + ptLon2)/2, (ptLat1 + ptLat2)/2);
//判断点矢量图层是否已经存在,存在则删除
if (drawLayerID > 0)
{
//清除标绘的点矢量图层
ClearPointShape(drawLayerID);
drawLayerID = -1;
}
if (_T("") != str) if (_T("") != str)
{ {
//创建点图层
CreateEmptyShapfile(drawLayerID, 0, RGB(255,0,0)); //红色
//Label集合 //Label集合
CLabels labesPtr; CLabels labesPtr;
labesPtr = (m_map.GetShapefile(drawLayerID)).GetLabels(); labesPtr = (m_map.GetShapefile(drawLayerID)).GetLabels();
//labesPtr = m_map.GetDrawingLabels(drawLayerID);
labesPtr.SetFontColor(RGB(255,255,0)); labesPtr.SetFontColor(RGB(255,127,0));
labesPtr.SetFrameTransparency(0);
labesPtr.SetAlignment(1); labesPtr.SetAlignment(1);
labesPtr.SetFontBold(TRUE); labesPtr.SetFontBold(TRUE);
labesPtr.SetFontName(_T("Times New Roman")); labesPtr.SetFontName(_T("Times New Roman"));
labesPtr.SetFontSize(10); labesPtr.SetFontSize(15);
labesPtr.put_FontSize2(15);
//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);
labesPtr.AddLabel(str, textLon, textLat, 0, 0);
} }
//重绘 //重绘
m_map.Redraw(); m_map.Redraw();
} }

Loading…
Cancel
Save