|
|
|
|
#include "stdafx.h"
|
|
|
|
|
#include "LineManage.h"
|
|
|
|
|
#include "Globe.h"
|
|
|
|
|
|
|
|
|
|
CLineManage::CLineManage(void)
|
|
|
|
|
{
|
|
|
|
|
PtStruct pt;
|
|
|
|
|
line.AddTail(pt);
|
|
|
|
|
line.RemoveAll();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CLineManage::~CLineManage(void)
|
|
|
|
|
{
|
|
|
|
|
//2015.11.27 <20><>ֹ<EFBFBD>ڴ<EFBFBD>й©
|
|
|
|
|
MakeListNull();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CLineManage::MakeListNull()
|
|
|
|
|
{
|
|
|
|
|
if (line.GetCount()>0)
|
|
|
|
|
{
|
|
|
|
|
line.RemoveAll();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//<2F><>ȡ<EFBFBD>ļ<EFBFBD><C4BC>еĺ<D0B5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺<EFBFBD><EBA3BA><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>strFileName
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD>pLineData
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>true<75><65><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ȡ<EFBFBD>ɹ<EFBFBD>
|
|
|
|
|
// false<73><65><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ȡʧ<C8A1><CAA7>
|
|
|
|
|
bool CLineManage::ReadLineDataFromFile(DrawLineDataStruct &pLineData, const CString strFileName)
|
|
|
|
|
{
|
|
|
|
|
int ptNum = 0;
|
|
|
|
|
|
|
|
|
|
//<2F><>ʼ<EFBFBD><CABC>
|
|
|
|
|
memset(&pLineData, 0, sizeof(DrawLineDataStruct));
|
|
|
|
|
|
|
|
|
|
//<2F>洢<EFBFBD><E6B4A2><EFBFBD>ߵĺ<DFB5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
PtStruct pts[257];
|
|
|
|
|
memset(pts, 0, sizeof(PtStruct)*257);
|
|
|
|
|
|
|
|
|
|
FILE *fpReadFlyLine = fopen(strFileName, "r");
|
|
|
|
|
|
|
|
|
|
if (fpReadFlyLine != NULL)
|
|
|
|
|
{
|
|
|
|
|
while (!feof(fpReadFlyLine))
|
|
|
|
|
{
|
|
|
|
|
if (!ReadLinePtAndCheckData(pts[ptNum], fpReadFlyLine))
|
|
|
|
|
{
|
|
|
|
|
BCGPMessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>\r\n<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߺ<EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD>ʾ<EFBFBD>ĺ<EFBFBD><EFBFBD>߲<EFBFBD>һ<EFBFBD><EFBFBD>"));
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
ptNum ++;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F>ر<EFBFBD><D8B1>ļ<EFBFBD>
|
|
|
|
|
fclose(fpReadFlyLine);
|
|
|
|
|
}
|
|
|
|
|
else //<2F><><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F>Զ<EFBFBD>ȡ<EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>
|
|
|
|
|
if (CheckFlyLine(pts, ptNum))
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD>
|
|
|
|
|
LinePoint2DrawLinePoints(pLineData, pts, ptNum);
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>;<3B><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>ܱ<EFBFBD><DCB1><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CLineManage::LinePoint2DrawLinePoints(DrawLineDataStruct &lineDataArr, const PtStruct *pLinePoints, const int linePointNum)
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>
|
|
|
|
|
lineDataArr.lineID = pLinePoints[0].nL;
|
|
|
|
|
|
|
|
|
|
//<2F>жϵ<D0B6>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊԭ<CEAA><D4AD>
|
|
|
|
|
if (pLinePoints[0].nPt == 0)
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
lineDataArr.pointNum = linePointNum-1;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
memcpy(lineDataArr.pts, pLinePoints+1, sizeof(PtStruct)*lineDataArr.pointNum);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ߵĺ<DFB5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
lineDataArr.linePointNum = linePointNum-1;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĺ<DFB5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
memcpy(lineDataArr.linePts, pLinePoints+1, sizeof(PtStruct)*lineDataArr.pointNum);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ݺ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3>жϺ<D0B6><CFBA>߱<EFBFBD>ע<EFBFBD>ıպ<C4B1><D5BA><EFBFBD>״<EFBFBD><D7B4><EFBFBD>ǡ<EFBFBD><C7A1>պϺ<D5BA>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>㡱
|
|
|
|
|
if ((pLinePoints[linePointNum-1].ch2 == 0x01)||(pLinePoints[linePointNum-1].ch2 == 0x0B))
|
|
|
|
|
{
|
|
|
|
|
/*
|
|
|
|
|
if (lineDataArr.lineID>11)
|
|
|
|
|
{
|
|
|
|
|
lineDataArr.linePts[lineDataArr.linePointNum] = pLinePoints[1];
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
lineDataArr.linePts[lineDataArr.linePointNum] = pLinePoints[linePointNum-1/ *1* /];
|
|
|
|
|
}*/
|
|
|
|
|
|
|
|
|
|
if (pLinePoints[linePointNum-1].ch1 == 0x02)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ĵ<EFBFBD><C4B5><EFBFBD><EFBFBD>ڶ<EFBFBD>λ<EFBFBD><CEBB>0x02<30><32>Ϊ<EFBFBD><CEAA><EFBFBD>պϱ<D5BA>־
|
|
|
|
|
{
|
|
|
|
|
lineDataArr.linePts[lineDataArr.linePointNum] = pLinePoints[linePointNum - 1];
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
lineDataArr.linePts[lineDataArr.linePointNum] = pLinePoints[1];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
|
|
|
|
lineDataArr.linePointNum ++;
|
|
|
|
|
}
|
|
|
|
|
// else if (pLinePoints[linePointNum-1].ch2&0X01 == 0x01) //<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
|
|
|
|
|
else if (pLinePoints[linePointNum-1].ch2 == 0x00) //<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD> 2016.02.20
|
|
|
|
|
{
|
|
|
|
|
lineDataArr.linePts[lineDataArr.linePointNum].dX = g_gcsLon;
|
|
|
|
|
lineDataArr.linePts[lineDataArr.linePointNum].dY = g_gcsLat;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
|
|
|
|
lineDataArr.linePointNum ++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
lineDataArr.pointNum = linePointNum;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
memcpy(lineDataArr.pts, pLinePoints, sizeof(PtStruct)*lineDataArr.pointNum);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ߵĺ<DFB5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
lineDataArr.linePointNum = linePointNum;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ߵĺ<DFB5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
memcpy(lineDataArr.linePts, pLinePoints, sizeof(PtStruct)*lineDataArr.pointNum);
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ݺ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD><D6A3>жϺ<D0B6><CFBA>߱<EFBFBD>ע<EFBFBD>ıպ<C4B1><D5BA><EFBFBD>״<EFBFBD><D7B4><EFBFBD>ǡ<EFBFBD><C7A1>պϺ<D5BA>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD><EFBFBD>ԭ<EFBFBD>㡱
|
|
|
|
|
if (pLinePoints[linePointNum-1].ch2 == 0)
|
|
|
|
|
{
|
|
|
|
|
lineDataArr.linePts[lineDataArr.linePointNum] = pLinePoints[0];
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
|
|
|
|
lineDataArr.linePointNum ++;
|
|
|
|
|
}
|
|
|
|
|
// else if (pLinePoints[linePointNum-1].ch2&0X01 == 1) //<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
|
|
|
|
|
else if (pLinePoints[linePointNum-1].ch2 == 0x01) //<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD><D4AD>
|
|
|
|
|
{
|
|
|
|
|
lineDataArr.linePts[lineDataArr.linePointNum].dX = g_gcsLon;
|
|
|
|
|
lineDataArr.linePts[lineDataArr.linePointNum].dY = g_gcsLat;
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1
|
|
|
|
|
lineDataArr.linePointNum ++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ij<EFBFBD><C4B3><EFBFBD><EFBFBD> //2017.07.05
|
|
|
|
|
int CLineManage::ReadAirLinePoint(FILE *fp, PtStruct &pt)
|
|
|
|
|
{
|
|
|
|
|
return fscanf(fp, "%d, %d, %lf, %lf, %lf, %d, %02X, %02X\n", &pt.nL,
|
|
|
|
|
&pt.nPt, &pt.dX, &pt.dY, &pt.nH, &pt.nV, &pt.ch1, &pt.ch2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>ȡ<EFBFBD><C8A1>·<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD><EFBFBD>Ը<EFBFBD><D4B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD>м<EFBFBD><D0BC><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺<EFBFBD><EBA3BA>·<EFBFBD>ļ<EFBFBD>ָ<EFBFBD><D6B8>fp
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pt
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>true<75><65><EFBFBD><EFBFBD><EFBFBD>ɹ<EFBFBD>
|
|
|
|
|
// false<73><65><EFBFBD><EFBFBD>ʧ<EFBFBD><CAA7>
|
|
|
|
|
bool CLineManage::ReadLinePtAndCheckData(PtStruct &pt, FILE *fp)
|
|
|
|
|
{
|
|
|
|
|
int redFlag = 0; //<2F><>·<EFBFBD>ļ<EFBFBD><C4BC>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ı<EFBFBD>ʶ
|
|
|
|
|
int nums = 8;
|
|
|
|
|
|
|
|
|
|
redFlag = ReadAirLinePoint(fp, pt);
|
|
|
|
|
|
|
|
|
|
if (redFlag != nums) //<2F><>·<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3>Ժ<EFBFBD>·<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺<EFBFBD><EBA3BA>·<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pts<74><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptNum
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD>·<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pts
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>true<75><65><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD>·<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ
|
|
|
|
|
// false<73><65><EFBFBD><EFBFBD><EFBFBD>ú<EFBFBD>·<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>ȷ
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// 1<><31><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA>߱<EFBFBD><DFB1><EFBFBD><EFBFBD>Ƿ<EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
// 2<><32><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>
|
|
|
|
|
// 3<><33><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>⣬<EFBFBD><E2A3AC><EFBFBD>ຽ<EFBFBD><E0BABD><EFBFBD>ĺ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA>㡱<EFBFBD><E3A1B1>
|
|
|
|
|
// 4<><34><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ĺ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>պϺ<D5BA>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ǹ<EFBFBD><C7B8>ijɡ<C4B3><C9A1>պϺ<D5BA>·<EFBFBD><C2B7>
|
|
|
|
|
bool CLineManage::CheckFlyLine(PtStruct *pts, const int ptNum)
|
|
|
|
|
{
|
|
|
|
|
//<2F><>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>ΧΪ[0,255]<5D><>256<35><36>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>ΧΪ<CEA7><CEAA>2,256<35><36>
|
|
|
|
|
if ((ptNum>257) || (ptNum<2))
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int i=0;
|
|
|
|
|
int j=0;
|
|
|
|
|
|
|
|
|
|
//<2F>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD>м<EFBFBD><D0BC><EFBFBD>
|
|
|
|
|
for (i=0; i<ptNum; i++)
|
|
|
|
|
{
|
|
|
|
|
if (!CheckOnePointValue(pts[i]))
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD>ĺ<EFBFBD><C4BA>߱<EFBFBD><DFB1>Ž<EFBFBD><C5BD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA>߱<EFBFBD><DFB1>Ų<EFBFBD>һ<EFBFBD><D2BB>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
int ptLineID = pts[0].nL;
|
|
|
|
|
for (i=1; i<ptNum; i++)
|
|
|
|
|
{
|
|
|
|
|
if (ptLineID != pts[i].nL)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F>Ժ<EFBFBD><D4BA>ߵĺ<DFB5><C4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ž<EFBFBD><C5BD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8><EFBFBD><EFBFBD>飬<EFBFBD>жϹ<D0B6><CFB9><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0<CEAA><30>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD>ε<EFBFBD><CEB5><EFBFBD>1
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ں<EFBFBD><DABA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD>Ϲ<EFBFBD><CFB9><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
if ( (pts[0].nPt != 0) && (pts[0].nPt != 1) )
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
int toComparePtId = pts[0].nPt + 1;
|
|
|
|
|
for (i=1; i<ptNum; i++)
|
|
|
|
|
{
|
|
|
|
|
if (pts[i].nPt != toComparePtId)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
toComparePtId++;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true; //2016.02.17
|
|
|
|
|
|
|
|
|
|
//-------------delete in 2016.02.17-------------------//
|
|
|
|
|
//<2F><><EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD><D6BD><EFBFBD><EFBFBD>ж<EFBFBD>
|
|
|
|
|
/*
|
|
|
|
|
// //<2F>Գ<EFBFBD><D4B3><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA>㡱<EFBFBD><E3A1B1>
|
|
|
|
|
// for (i=0; i<ptNum-1; i++)
|
|
|
|
|
// {
|
|
|
|
|
// if ((pts[i].ch2 & 0x02) == 0) //<2F><><EFBFBD>պϺ<D5BA>·<EFBFBD><C2B7>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>false
|
|
|
|
|
// {
|
|
|
|
|
// return false;
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Һ<EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>պϺ<D5BA>·<EFBFBD><C2B7>
|
|
|
|
|
// //<2F><><EFBFBD>ǡ<EFBFBD><C7A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>պϺ<D5BA>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
// if ((pts[ptNum-1].ch2 & 0x02) == 0)
|
|
|
|
|
// {
|
|
|
|
|
// //2015.12.02
|
|
|
|
|
// // if ((pts[ptNum-1].ch2 & 0x01) != 0) //<2F><>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǡ<EFBFBD><C7A1>պϺ<D5BA>·<EFBFBD><C2B7>
|
|
|
|
|
// // {
|
|
|
|
|
// // return false;
|
|
|
|
|
// // }
|
|
|
|
|
// // else //<2F><>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>պϺ<D5BA>·<EFBFBD><C2B7>
|
|
|
|
|
// // {
|
|
|
|
|
// // return true;
|
|
|
|
|
// // }
|
|
|
|
|
//
|
|
|
|
|
// return true;
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// return false;
|
|
|
|
|
// }*/
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD>Ч<EFBFBD><D0A7>Χ<EFBFBD><CEA7><EFBFBD>м<EFBFBD><D0BC><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺<EFBFBD><EBA3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pt
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>Χ<EFBFBD><CEA7>
|
|
|
|
|
// false<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
|
|
|
|
bool CLineManage::CheckOnePointValue(const PtStruct pt)
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD><DDB5><EFBFBD><EFBFBD>ݷ<EFBFBD>Χ<EFBFBD><CEA7><EFBFBD>м<EFBFBD><D0BC>飬<EFBFBD><E9A3AC><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA>
|
|
|
|
|
//<2F>Ե<EFBFBD><D4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD>ж<EFBFBD><D0B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͵<DEBE><CDB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><F3A3ACB2><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
if ( (pt.nL<1) || (pt.nL>14)
|
|
|
|
|
|| (pt.nPt<0) || (pt.nPt>255)
|
|
|
|
|
|| (pt.dX<-180) || (pt.dX>180)
|
|
|
|
|
|| (pt.dY<-90) || (pt.dY>90)
|
|
|
|
|
|| (pt.nH<-500) || (pt.nH>10000)
|
|
|
|
|
|| (pt.nV<0) || (pt.nV>360)
|
|
|
|
|
|| (pt.ch1<0) || (pt.ch1>255)
|
|
|
|
|
|| (pt.ch2<0) || (pt.ch2>255) )
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˻<EFBFBD><CBBB><EFBFBD>·<EFBFBD>ļ<EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺<EFBFBD><EBA3BA>·<EFBFBD>ļ<EFBFBD><C4BC>ľ<EFBFBD><C4BE><EFBFBD>·<EFBFBD><C2B7>str
|
|
|
|
|
// <09><><EFBFBD>߱<EFBFBD><DFB1><EFBFBD>nL:1<><31>2<EFBFBD><32>3<EFBFBD><33>4<EFBFBD><34>5
|
|
|
|
|
// <09><><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>Դ<EFBFBD><D4B4><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װ·<D7B0><C2B7><EFBFBD>ı<EFBFBD>ʶbFromLocalDir<69><72>true<75><65><EFBFBD><EFBFBD><EFBFBD>ǣ<EFBFBD>false<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <09><><EFBFBD>У<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װĿ¼<C4BF>¼<EFBFBD><C2BC>صĺ<D8B5><C4BA><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ҫ<EFBFBD><D2AA>ԭ<EFBFBD><D4AD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD>жϣ<D0B6><CFA3><EFBFBD><EFBFBD>ߵ<EFBFBD><DFB5>벻<EFBFBD><EBB2BB>Ҫ<EFBFBD>ж<EFBFBD>
|
|
|
|
|
// 2<><32><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>װĿ¼<C4BF>¼<EFBFBD><C2BC>صĺ<D8B5><C4BA><EFBFBD><EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>Ҫ<EFBFBD>Ժ<EFBFBD><D4BA><EFBFBD>ID<49><44><EFBFBD>м<EFBFBD><D0BC>飬<EFBFBD><E9A3AC><EFBFBD>ߵ<EFBFBD><DFB5>벻<EFBFBD><EBB2BB>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD><EFBFBD><EFBFBD>ĵij<C4B5>Աline<6E><65>
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>true
|
|
|
|
|
// ʧ<>ܡ<EFBFBD><DCA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>false
|
|
|
|
|
bool CLineManage::OpenFlyLineFile(const CString &str, const int &nL, const bool &bFromLocalDir)
|
|
|
|
|
{
|
|
|
|
|
MakeListNull(); //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
FILE* fp;
|
|
|
|
|
PtStruct pt;
|
|
|
|
|
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
fp = fopen(str, "r");
|
|
|
|
|
if (fp == NULL)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int linePtNum = 0;
|
|
|
|
|
while(!feof(fp))
|
|
|
|
|
{
|
|
|
|
|
if (!ReadLinePtAndCheckData(pt, fp))
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
return WrongLineDataProcess(fp);
|
|
|
|
|
}
|
|
|
|
|
AddPt(pt);
|
|
|
|
|
linePtNum++;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
//return true;
|
|
|
|
|
PtStruct *linePts = new PtStruct[LINEPTNUM];
|
|
|
|
|
memset(linePts, 0, sizeof(PtStruct)*LINEPTNUM);
|
|
|
|
|
ListData2ArrayData(linePts, linePtNum, 1);
|
|
|
|
|
|
|
|
|
|
//<2F>Ժ<EFBFBD><D4BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD>ϸ<EFBFBD><CFB8>ļ<EFBFBD><C4BC><EFBFBD>
|
|
|
|
|
if (CheckFlyLine(linePts, linePtNum))
|
|
|
|
|
{
|
|
|
|
|
if (bFromLocalDir) //<2F><><EFBFBD><EFBFBD>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>صĺ<D8B5><C4BA><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
if (CheckOrgPtIsExisted(linePts, linePtNum) &&
|
|
|
|
|
CheckFlyLineIDCorrect(linePts, linePtNum, nL))
|
|
|
|
|
{
|
|
|
|
|
fclose(fp);
|
|
|
|
|
if (linePts != NULL)
|
|
|
|
|
{
|
|
|
|
|
delete []linePts;
|
|
|
|
|
linePts = NULL;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (linePts != NULL)
|
|
|
|
|
{
|
|
|
|
|
delete []linePts;
|
|
|
|
|
linePts = NULL;
|
|
|
|
|
}
|
|
|
|
|
return WrongLineDataProcess(fp);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//<2F><>·<EFBFBD>ļ<EFBFBD><C4BC><EFBFBD>ȡ<EFBFBD>ɹ<EFBFBD><C9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֤<EFBFBD><D6A4><EFBFBD><EFBFBD>ȷ
|
|
|
|
|
if (linePts != NULL)
|
|
|
|
|
{
|
|
|
|
|
delete []linePts;
|
|
|
|
|
linePts = NULL;
|
|
|
|
|
}
|
|
|
|
|
fclose(fp);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (linePts != NULL)
|
|
|
|
|
{
|
|
|
|
|
delete []linePts;
|
|
|
|
|
linePts = NULL;
|
|
|
|
|
}
|
|
|
|
|
return WrongLineDataProcess(fp);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3>ļ<EFBFBD><C4BC><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>ȡ<EFBFBD>IJ<EFBFBD><C4B2><EFBFBD>
|
|
|
|
|
bool CLineManage::WrongLineDataProcess(FILE *fp)
|
|
|
|
|
{
|
|
|
|
|
//ɾ<><C9BE>ԭ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
MakeListNull();
|
|
|
|
|
//<2F>ر<EFBFBD><D8B1>ļ<EFBFBD>
|
|
|
|
|
fclose(fp);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
void CLineManage::AddPt(PTLIST *other)
|
|
|
|
|
{
|
|
|
|
|
MakeListNull();
|
|
|
|
|
|
|
|
|
|
POSITION pos = other->GetHeadPosition();
|
|
|
|
|
for (int i=0; i<other->GetCount(); i++)
|
|
|
|
|
{
|
|
|
|
|
PtStruct pt = other->GetNext(pos);
|
|
|
|
|
//<2F><><EFBFBD>߱<EFBFBD><DFB1>Ŷ<EFBFBD><C5B6><EFBFBD>Ϊ0
|
|
|
|
|
pt.nL = 0;
|
|
|
|
|
line.AddTail(pt); //<2F><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>
|
|
|
|
|
void CLineManage::AddPt(PtStruct pt)
|
|
|
|
|
{
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
line.AddTail(pt); //<2F><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ԭ<EFBFBD>㺽<EFBFBD><E3BABD>
|
|
|
|
|
void CLineManage::AddPt(const double &L, const double &B,const float& H, const int &ptId)
|
|
|
|
|
{
|
|
|
|
|
PtStruct pt;
|
|
|
|
|
memset(&pt,0,sizeof(PtStruct));
|
|
|
|
|
|
|
|
|
|
pt.ch2 = 0x03; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD><D0BA>㡱
|
|
|
|
|
pt.dX = L;
|
|
|
|
|
pt.dY = B;
|
|
|
|
|
pt.nPt = ptId;
|
|
|
|
|
pt.nH = H;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//WGS84<38><34><EFBFBD><EFBFBD>תBJ54<35><34><EFBFBD><EFBFBD>
|
|
|
|
|
if (ptId == 0) //ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
{
|
|
|
|
|
//wgs84AndBj54.Wgs84TransToBj54(&pt.dX, &pt.dY); //WGS84תBJ54<35><34><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
line.AddTail(pt); //<2F><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢<EFBFBD><E6B4A2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD>ָ<EFBFBD><D6B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>洢
|
|
|
|
|
// <20><>coordType=0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>wgs84<38><34><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
// <20><>coordType=1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bj54<35><34><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD>룺<EFBFBD><EBA3BA><EFBFBD><EFBFBD>ϵcoordType<70><65>0Ϊwgs84;1Ϊbj54<35><34><EFBFBD><EFBFBD>ϵ
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pts<74><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptNum
|
|
|
|
|
void CLineManage::ListData2ArrayData(PtStruct *pts, int &ptNum, const int &coordType)
|
|
|
|
|
{
|
|
|
|
|
ptNum = line.GetCount();
|
|
|
|
|
int i=0;
|
|
|
|
|
POSITION ps = line.GetHeadPosition();
|
|
|
|
|
for (i=0; i<ptNum; ++i)
|
|
|
|
|
{
|
|
|
|
|
pts[i] = line.GetNext(ps);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>WGS84<38><34><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5><EFBFBD><EFBFBD><EFBFBD>꣬<EFBFBD><EAA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>BJ54<35><34>WGS84<38><34><EFBFBD>ı任
|
|
|
|
|
if (coordType == 0)
|
|
|
|
|
{
|
|
|
|
|
for (i=0; i<ptNum; ++i)
|
|
|
|
|
{
|
|
|
|
|
//wgs84AndBj54.Bj54TransToWgs84(&pts[i].dX, &pts[i].dY);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>:<3A>жϺ<D0B6><CFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĵ<DDB5>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊԭ<CEAA><D4AD>
|
|
|
|
|
//<2F><><EFBFBD>룺<EFBFBD><EBA3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pts<74><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptNum
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
|
|
|
|
|
// false<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool CLineManage::CheckOrgPtIsExisted(const PtStruct *pts, const int &ptNum)
|
|
|
|
|
{
|
|
|
|
|
if (pts[0].nPt == 0) //ԭ<><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ0
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>:<3A>жϺ<D0B6><CFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵĺ<DDB5><C4BA>߱<EFBFBD><DFB1><EFBFBD><EFBFBD>Ƿ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>õĺ<C3B5><C4BA>߱<EFBFBD><DFB1><EFBFBD>
|
|
|
|
|
//<2F><><EFBFBD>룺<EFBFBD><EBA3BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pts<74><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ptNum
|
|
|
|
|
//<2F><><EFBFBD><EFBFBD>ֵ<EFBFBD><D6B5>true<75><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD>
|
|
|
|
|
// false<73><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
bool CLineManage::CheckFlyLineIDCorrect(const PtStruct *pts, const int &ptNum, const int &nL)
|
|
|
|
|
{
|
|
|
|
|
for (int i=0; i<ptNum; ++i)
|
|
|
|
|
{
|
|
|
|
|
if (pts[i].nL != nL)
|
|
|
|
|
{
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return true;
|
|
|
|
|
}
|