diff --git a/GISDlg.cpp b/GISDlg.cpp
index 6dfc98d..dde85eb 100644
--- a/GISDlg.cpp
+++ b/GISDlg.cpp
@@ -191,7 +191,7 @@ CGISDlg::CGISDlg(CWnd* pParent /*=NULL*/)
 	//����Ӻ���
 	for (int i=0;i<20;++i)
 	{
-		for (int j=0;j<20;++j)
+		for (int j=0;j<255;++j)
 		{
 			m_subLineLayerID[i][j]=-1;
 			m_subLinePtLayerID[i][j]=-1;
@@ -4667,18 +4667,7 @@ void CGISDlg::DrawCopyFlyLine(const DrawLineDataStruct lineData)
 	//����������
 	int lineID = lineData.lineID-1;
 	//�Ӻ���������
-	int sublineID = lineData.pts[0].ch1-1;
-/*
-	map<long,long> subLineLayerIDs;
-	map<long,long> subLinePtLayerIDs;
-	if (m_subLineLayerID.find(lineData.lineID)!=m_subLineLayerID.end())
-	{
-		subLineLayerIDs = m_subLineLayerID[lineData.lineID];
-	}
-	if (m_subLinePtLayerID.find(lineData.lineID)!=m_subLinePtLayerID.end())
-	{
-		subLinePtLayerIDs = m_subLinePtLayerID[lineData.lineID];
-	}*/
+	int sublineID = lineData.pts[0].nV-1;
 
 	//û��Ŀ����SHPͼ�㣬������ͼ��
 	if (m_subLineLayerID[lineID][sublineID] ==-1)
@@ -4731,11 +4720,11 @@ void CGISDlg::DrawCopyFlyLine(const DrawLineDataStruct lineData)
 		//��ע��Ϣ
 		if ( 14 ==lineData.lineID)
 		{
-			strText.Format(_T("������½��(%d)") /*lineData.lineID, */ /*lineData.pts[i].nPt*/,lineData.pts[0].ch1);
+			strText.Format(_T("������½��(%d)") /*lineData.lineID, */ /*lineData.pts[i].nPt*/,lineData.pts[0].nV);
 		}
 		else
 		{
-			strText.Format(_T("%d(%d)-%d"), lineData.lineID,  lineData.pts[0].ch1,lineData.pts[i].nPt);
+			strText.Format(_T("%d(%d)-%d"), lineData.lineID,  lineData.pts[0].nV,lineData.pts[i].nPt);
 		}
 		
 		//����Labels
@@ -5239,10 +5228,10 @@ void CGISDlg::OnShowGivenLine(const CString strLineFileName)
 		}
 
 		m_lineFullPathName[lineDataGroup.lineID] = strLineFileName;
-		if (lineDataGroup.pts[0].ch1>1)
+		if (lineDataGroup.pts[0].nV>1)
 		{
 			//��������
-			ClearDrawedCopyLine(lineDataGroup.lineID-1,lineDataGroup.pts[0].ch1);
+			ClearDrawedCopyLine(lineDataGroup.lineID-1,lineDataGroup.pts[0].nV);
 
 			//��溽��
 			DrawCopyFlyLine(lineDataGroup);	
@@ -8667,7 +8656,7 @@ void CGISDlg::SaveMultiRouteLine(CString pathDirName,double heightInterval,vecto
 		{
 			if (j==0) //��һ�����ߴ洢���������Ӻ��ߺ�
 			{
-				fprintf(fp,"%d, %d, %.7f, %.7f, %.2f, 0, %02X, 03\n", line[j].nL, j+1,line[j].dX, line[j].dY,line[j].nH + heightInterval*(i+1),i+2);
+				fprintf(fp,"%d, %d, %.7f, %.7f, %.2f, %d, 00, 03\n", line[j].nL, j+1,line[j].dX, line[j].dY,line[j].nH + heightInterval*(i+1),i+2);
 			}
 			else
 				fprintf(fp,"%d, %d, %.7f, %.7f, %.2f, 0, 00, 03\n", line[j].nL, j+1,line[j].dX, line[j].dY,line[j].nH + heightInterval*(i+1));
diff --git a/GISDlg.h b/GISDlg.h
index a2e26dc..88b42d5 100644
--- a/GISDlg.h
+++ b/GISDlg.h
@@ -250,9 +250,9 @@ public:
 private:  // by Wu
 	//map<int,map<long,long>> m_subLineLayerID;	  //�Ӻ�����ͼ���
 	//map<int,map<long,long>> m_subLinePtLayerID;	  //�Ӻ��ߵ�ͼ���
-	long m_subLineLayerID[20][20]; //�Ӻ�����ͼ���
-	long m_subLinePtLayerID[20][20]; //�Ӻ��ߵ�ͼ���
-	bool m_pHaveDrawCopyLineFlag[20][20];
+	long m_subLineLayerID[20][255]; //�Ӻ�����ͼ���
+	long m_subLinePtLayerID[20][255]; //�Ӻ��ߵ�ͼ���
+	bool m_pHaveDrawCopyLineFlag[20][255];
 	bool m_bShowCopyLine;
 	map<int,CString> m_lineFullPathName;
 	//