|
|
|
@ -2803,7 +2803,7 @@ 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 )
|
|
|
|
|
{
|
|
|
|
|
double lon = 0, lat = 0;
|
|
|
|
@ -2818,20 +2818,15 @@ void CGISDlg::MouseMoveMap1(short Button, short Shift, long x, long y)
|
|
|
|
|
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, 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);
|
|
|
|
|
//显示线段的距离和方位(绘制标注)
|
|
|
|
|
DrawLineLabel(g_lDemAltLayerID[g_iDemPointNum-1], g_dDemPtLon[g_iDemPointNum-1], g_dDemPtLat[g_iDemPointNum-1], lon, lat);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -2888,20 +2883,16 @@ 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);
|
|
|
|
@ -2918,45 +2909,22 @@ 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();
|
|
|
|
|
//labesPtr = m_map.GetDrawingLabels(drawLayerID);
|
|
|
|
|
|
|
|
|
|
labesPtr.SetFontColor(RGB(255,255,0));
|
|
|
|
|
labesPtr.SetFontColor(RGB(255,127,0));
|
|
|
|
|
labesPtr.SetFrameTransparency(0);
|
|
|
|
|
labesPtr.SetAlignment(1);
|
|
|
|
|
labesPtr.SetFontBold(TRUE);
|
|
|
|
|
labesPtr.SetFontName(_T("Times New Roman"));
|
|
|
|
|
labesPtr.SetFontSize(10);
|
|
|
|
|
|
|
|
|
|
//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.SetFontSize(15);
|
|
|
|
|
labesPtr.put_FontSize2(15);
|
|
|
|
|
|
|
|
|
|
<<<<<<< HEAD
|
|
|
|
|
labesPtr.AddLabel((LPCTSTR)str, textLon, textLat, 0, 0); //4.9版本此处有问题,会导致程序崩溃
|
|
|
|
|
=======
|
|
|
|
|
//labesPtr.AddLabel(str, textLon, textLat, 0, 0);
|
|
|
|
|
>>>>>>> master
|
|
|
|
|
labesPtr.AddLabel(str, textLon, textLat, 0, 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//重绘
|
|
|
|
|
m_map.Redraw();
|
|
|
|
|
}
|
|
|
|
@ -6608,13 +6576,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;
|
|
|
|
|
}
|
|
|
|
|