亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        二次開發(fā)在航點(diǎn)航跡圖批量繪制中的應(yīng)用

        2018-08-22 07:08:26張良紅彭振宇
        物探化探計算技術(shù) 2018年4期
        關(guān)鍵詞:航點(diǎn)二次開發(fā)點(diǎn)位

        張良紅, 楊 豪, 黃 雯, 彭振宇

        (浙江省地質(zhì)調(diào)查院,杭州 311203)

        0 引言

        航點(diǎn)航跡圖是物化探野外調(diào)查質(zhì)量監(jiān)控的重要資料,包括航跡和點(diǎn)位信息(點(diǎn)號、坐標(biāo)、日期和時間),一般要求制作成A4版面[1-2],上部分為航點(diǎn)航跡圖,下部分為點(diǎn)位信息。野外調(diào)查獲得的航點(diǎn)航跡數(shù)據(jù)一般為GPX格式,為制作、輸出可編輯且與地理底圖匹配的航點(diǎn)航跡圖及點(diǎn)位信息,通常可利用Mapsource[3-4]、Global Mapper[5-6]等軟件及二次開發(fā)[7-8]將航點(diǎn)航跡數(shù)據(jù)投影轉(zhuǎn)換為Excel及MapGIS文件格式,然后在MapGIS中輸出航點(diǎn)航跡圖,并在Excel下編輯和整理點(diǎn)位信息,這些方法比較繁瑣,使用起來需要對坐標(biāo)轉(zhuǎn)換方法比較熟悉。

        近幾年,浙江各縣市土地質(zhì)量地球化學(xué)調(diào)查工作陸續(xù)開展,快速制作航點(diǎn)航跡圖成為地質(zhì)人員急需解決的問題。為了避免手工轉(zhuǎn)換過程中每次打開軟件時重復(fù)設(shè)置投影轉(zhuǎn)換和圖形參數(shù),以及手工創(chuàng)建和編輯航點(diǎn)點(diǎn)位信息。筆者在前人研究基礎(chǔ)上,利用VC基于MapGIS、Excel、MSXML二次開發(fā),實(shí)現(xiàn)了航點(diǎn)航跡圖的批量繪制并同時輸出Excel格式點(diǎn)位信息,為編制航點(diǎn)航跡圖冊提供了便利。

        1 系統(tǒng)設(shè)計

        本系統(tǒng)為Visual C++6.0開發(fā)的MFC多文檔應(yīng)用程序,二次開發(fā)實(shí)現(xiàn)的功能模塊主要包括存取投影及圖形參數(shù)、讀取GPX數(shù)據(jù)、坐標(biāo)轉(zhuǎn)換、生成點(diǎn)線文件、輸出點(diǎn)位信息等部分,各模塊之間的關(guān)系及系統(tǒng)工作流程如圖1所示。

        圖1 系統(tǒng)工作流程Fig.1 The flow chart

        2 模塊介紹

        2.1 主要數(shù)據(jù)結(jié)構(gòu)

        本系統(tǒng)操作的主要數(shù)據(jù)為航點(diǎn)和航跡數(shù)據(jù),一條航跡包括多個航跡點(diǎn),每個航點(diǎn)包括時間、位置、點(diǎn)名等信息。為了讀取數(shù)據(jù)、坐標(biāo)轉(zhuǎn)換、圖形繪制等的方便和航點(diǎn)航跡圖輸出成果的需要,系統(tǒng)設(shè)置航點(diǎn)和航跡數(shù)據(jù)結(jié)構(gòu),航點(diǎn)結(jié)構(gòu)存放航點(diǎn)點(diǎn)名、時間、坐標(biāo)等信息,所有測點(diǎn)組成一個數(shù)組,數(shù)組采用MFC提供的模板類CArray;航跡僅需包含航跡名稱和航跡坐標(biāo)信息,點(diǎn)名和時間信息不使用故不用存儲。航點(diǎn)信息和航跡信息數(shù)據(jù)結(jié)構(gòu)定義如下:

        //航點(diǎn)信息

        typedef struct

        {

        CString Name;//點(diǎn)名

        CString Time;//時間

        D_DOT xy;//坐標(biāo),MapGIS點(diǎn)線實(shí)體類型數(shù)據(jù)結(jié)構(gòu)

        }WAYPT;

        typedef CArray CWptSet;

        //航跡信息

        typedef struct

        {

        CString Name;//航跡名稱

        CArray Track;//航跡坐標(biāo)

        }TRACK;

        2.2 存取參數(shù)

        為了避免每次打開軟件時重復(fù)設(shè)置投影轉(zhuǎn)換及圖形參數(shù),可以將參數(shù)保存起來,程序運(yùn)行后先讀取將其作為默認(rèn)參數(shù),為批量制作航點(diǎn)航跡圖提供便利。參數(shù)可以存儲在外部文件(如INI文件9-10])中,也可存儲在程序自身文件內(nèi)。為了減少文件數(shù)量和交流的方便,本程序?qū)?shù)數(shù)據(jù)附加在可執(zhí)行文件(PE)[11]尾部,附加數(shù)據(jù)偏移和大小可通過讀取PE文件最后一個節(jié)表中的PointerToRawData和SizeOfRawData數(shù)值來確定[12-13],具體實(shí)現(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

        国产成人精品日本亚洲18| 亚洲成av人片在www鸭子| 亚洲日韩久久综合中文字幕| 日本高清aⅴ毛片免费| 中文字幕有码一区二区三区| 国产免费一区二区三区在线观看| 欲女在线一区二区三区| 国产精品国产三级国av在线观看| 亚洲人成网站在线播放观看| 亚洲精品视频免费在线| 亚洲国产色婷婷久久精品| 又粗又黄又猛又爽大片免费| 久久精品国产亚洲av瑜伽| 国产香蕉一区二区三区| 亚洲国产精品中文字幕久久| 国产午夜福利在线观看红一片| 国产喷水福利在线视频| 亚洲国产日韩综一区二区在性色| 大量漂亮人妻被中出中文字幕| 国内成+人 亚洲+欧美+综合在线| 日韩在线无| 亚洲一区精品一区在线观看| 国产一区二区三区内射| 玩弄放荡人妻少妇系列视频| 亚洲AV秘 无码二区在线| 美腿丝袜网址亚洲av| 欧美精品欧美人与动人物牲交| 999国内精品永久免费视频| 韩日无码不卡| 91久久国产香蕉熟女线看| 亚欧色一区w666天堂| 久久狠狠第一麻豆婷婷天天| 中文字幕一区二区三区四区久久 | 亚洲av熟女天堂系列| 久久在一区二区三区视频免费观看| 欧美 国产 综合 欧美 视频| 国模精品二区| 人妻少妇中文字幕专区| 国产亚洲美女精品久久久2020| 国内精品久久久久久无码不卡| 天堂av在线免费播放|