張良紅, 楊 豪, 黃 雯, 彭振宇
(浙江省地質調查院,杭州 311203)
航點航跡圖是物化探野外調查質量監(jiān)控的重要資料,包括航跡和點位信息(點號、坐標、日期和時間),一般要求制作成A4版面[1-2],上部分為航點航跡圖,下部分為點位信息。野外調查獲得的航點航跡數(shù)據(jù)一般為GPX格式,為制作、輸出可編輯且與地理底圖匹配的航點航跡圖及點位信息,通常可利用Mapsource[3-4]、Global Mapper[5-6]等軟件及二次開發(fā)[7-8]將航點航跡數(shù)據(jù)投影轉換為Excel及MapGIS文件格式,然后在MapGIS中輸出航點航跡圖,并在Excel下編輯和整理點位信息,這些方法比較繁瑣,使用起來需要對坐標轉換方法比較熟悉。
近幾年,浙江各縣市土地質量地球化學調查工作陸續(xù)開展,快速制作航點航跡圖成為地質人員急需解決的問題。為了避免手工轉換過程中每次打開軟件時重復設置投影轉換和圖形參數(shù),以及手工創(chuàng)建和編輯航點點位信息。筆者在前人研究基礎上,利用VC基于MapGIS、Excel、MSXML二次開發(fā),實現(xiàn)了航點航跡圖的批量繪制并同時輸出Excel格式點位信息,為編制航點航跡圖冊提供了便利。
本系統(tǒng)為Visual C++6.0開發(fā)的MFC多文檔應用程序,二次開發(fā)實現(xiàn)的功能模塊主要包括存取投影及圖形參數(shù)、讀取GPX數(shù)據(jù)、坐標轉換、生成點線文件、輸出點位信息等部分,各模塊之間的關系及系統(tǒng)工作流程如圖1所示。

圖1 系統(tǒng)工作流程Fig.1 The flow chart
本系統(tǒng)操作的主要數(shù)據(jù)為航點和航跡數(shù)據(jù),一條航跡包括多個航跡點,每個航點包括時間、位置、點名等信息。為了讀取數(shù)據(jù)、坐標轉換、圖形繪制等的方便和航點航跡圖輸出成果的需要,系統(tǒng)設置航點和航跡數(shù)據(jù)結構,航點結構存放航點點名、時間、坐標等信息,所有測點組成一個數(shù)組,數(shù)組采用MFC提供的模板類CArray;航跡僅需包含航跡名稱和航跡坐標信息,點名和時間信息不使用故不用存儲。航點信息和航跡信息數(shù)據(jù)結構定義如下:
//航點信息
typedef struct
{
CString Name;//點名
CString Time;//時間
D_DOT xy;//坐標,MapGIS點線實體類型數(shù)據(jù)結構
}WAYPT;
typedef CArray
//航跡信息
typedef struct
{
CString Name;//航跡名稱
CArray
}TRACK;
為了避免每次打開軟件時重復設置投影轉換及圖形參數(shù),可以將參數(shù)保存起來,程序運行后先讀取將其作為默認參數(shù),為批量制作航點航跡圖提供便利。參數(shù)可以存儲在外部文件(如INI文件9-10])中,也可存儲在程序自身文件內。為了減少文件數(shù)量和交流的方便,本程序將參數(shù)數(shù)據(jù)附加在可執(zhí)行文件(PE)[11]尾部,附加數(shù)據(jù)偏移和大小可通過讀取PE文件最后一個節(jié)表中的PointerToRawData和SizeOfRawData數(shù)值來確定[12-13],具體實現(xiàn)方法如編程1。
編程1:獲取PE文件附加數(shù)據(jù)偏移和大小
//成功返回附加數(shù)據(jù)偏移,失敗返回0
DWORD GetOverlaySize(HANDLE hFile, PLARGE_INTEGER lpOverlaySize)
{
IMAGE_DOS_HEADER DosHeader;
DWORD dwOffset = 0, dwRead;
if (lpOverlaySize != NULL) lpOverlaySize->QuadPart = 0;
SetFilePointer(hFile, 0, NULL, FILE_BEGIN);//移到文件頭
ReadFile(hFile, &DosHeader, sizeof(DosHeader), &dwRead, NULL);
if (DosHeader.e_magic == IMAGE_DOS_SIGNATURE)//MZ
{
IMAGE_NT_HEADERS NtHeaders;
SetFilePointer(hFile, DosHeader.e_lfanew, NULL, FILE_BEGIN);
ReadFile(hFile, &NtHeaders, FIELD_OFFSET(IMAGE_NT_HEADERS, OptionalHeader), &dwRead, NULL);
if (NtHeaders.Signature == IMAGE_NT_SIGNATURE)//PE 主站蜘蛛池模板: 中文字幕第4页| 伊人激情综合网| 久久综合国产乱子免费| 久草青青在线视频| 午夜久久影院| 精品人妻无码中字系列| 情侣午夜国产在线一区无码| 2021亚洲精品不卡a| 日韩欧美91| 无码有码中文字幕| 亚洲色欲色欲www网| 国产成人乱无码视频| 亚洲无码高清免费视频亚洲| 日韩经典精品无码一区二区| 国产欧美日韩在线一区| 国产剧情无码视频在线观看| 亚洲国产精品一区二区第一页免| 欧美日韩另类在线| 高清色本在线www| 黄色三级毛片网站| 国产自产视频一区二区三区| 国产视频自拍一区| 久久精品人妻中文系列| 伊人国产无码高清视频| 中文字幕在线一区二区在线| 无码中文字幕乱码免费2| 在线国产欧美| 色男人的天堂久久综合| 亚洲最新在线| 538国产在线| 啪啪永久免费av| 日韩麻豆小视频| 国产精品亚洲а∨天堂免下载| 国产区91| 综合色在线| 欧美国产日产一区二区| 精品国产99久久| 欧美日韩激情在线| 热re99久久精品国99热| 欧美国产综合视频| 六月婷婷精品视频在线观看| 97久久精品人人| 色悠久久综合| 日本黄网在线观看| 久久无码av三级| 亚洲制服丝袜第一页| 亚洲视频欧美不卡| 国产成人啪视频一区二区三区| 精品欧美视频| 999精品在线视频| 另类综合视频| 日韩区欧美国产区在线观看| 91在线无码精品秘九色APP | 激情影院内射美女| 青青操国产| 国产免费a级片| 免费福利视频网站| 国产手机在线ΑⅤ片无码观看| 97av视频在线观看| 国产三级a| 中国一级特黄视频| 亚洲第一区欧美国产综合| 精品三级网站| 国产乱子精品一区二区在线观看| 国产精品对白刺激| 国产日韩AV高潮在线| 成人在线亚洲| 国产成人永久免费视频| 亚洲第一成年人网站| 日韩麻豆小视频| 中文字幕色站| 69视频国产| 18禁不卡免费网站| 日韩毛片免费视频| 九九九九热精品视频| 玩两个丰满老熟女久久网| 国产综合色在线视频播放线视| 日韩少妇激情一区二区| 另类重口100页在线播放| 亚洲人成成无码网WWW| 精品中文字幕一区在线| 国产97区一区二区三区无码|