張良紅, 楊 豪, 黃 雯, 彭振宇
(浙江省地質調查院,杭州 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 主站蜘蛛池模板: 色婷婷在线播放| 欧美a√在线| 九九香蕉视频| 婷婷六月综合| 日本道中文字幕久久一区| 色综合天天综合中文网| 国产成人91精品免费网址在线| 曰AV在线无码| 日韩精品一区二区三区swag| 欧美一区精品| 99久久婷婷国产综合精| 日韩国产亚洲一区二区在线观看| 先锋资源久久| 国产浮力第一页永久地址 | 香蕉在线视频网站| 亚洲人在线| 97视频在线观看免费视频| 亚洲成人在线网| 在线毛片网站| 中文字幕亚洲综久久2021| 精品综合久久久久久97| 亚洲国产综合精品中文第一| 亚洲无码高清一区| 国产欧美日韩18| 久久性视频| 午夜国产小视频| 亚洲最新地址| 亚洲av无码牛牛影视在线二区| AV熟女乱| 亚洲一区免费看| 久久久久88色偷偷| 激情视频综合网| 91精品伊人久久大香线蕉| 91亚瑟视频| 99人妻碰碰碰久久久久禁片| 人禽伦免费交视频网页播放| 亚洲中文制服丝袜欧美精品| 日韩免费中文字幕| 欧美yw精品日本国产精品| 福利在线一区| 五月天久久综合| 国产精品极品美女自在线| 亚洲av片在线免费观看| 日韩黄色在线| 又粗又大又爽又紧免费视频| 日韩精品久久久久久久电影蜜臀| 色成人亚洲| 婷婷99视频精品全部在线观看 | 国产中文一区a级毛片视频| 91成人免费观看在线观看| 97成人在线视频| 91精品免费久久久| 国产屁屁影院| 夜夜操狠狠操| 国产成人1024精品下载| 丝袜美女被出水视频一区| 91亚洲精品国产自在现线| 99久久人妻精品免费二区| 亚洲欧洲日产国码无码av喷潮| 亚洲天堂网在线视频| 日本一区中文字幕最新在线| 一级毛片基地| 午夜精品久久久久久久99热下载| 久久久久久国产精品mv| 日韩精品欧美国产在线| 一级做a爰片久久毛片毛片| 1769国产精品免费视频| 熟女成人国产精品视频| 国产激爽大片在线播放| 成人在线观看不卡| 精品综合久久久久久97超人| 国产欧美日韩综合一区在线播放| 亚洲人成人无码www| 国产精品大白天新婚身材| 91久久天天躁狠狠躁夜夜| 亚洲天堂首页| 在线观看网站国产| 国产精品成人啪精品视频| 毛片在线看网站| 一级毛片免费播放视频| 91国语视频| 黄色网站在线观看无码|