亚洲免费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

        粗一硬一长一进一爽一a视频| 亚洲精品aⅴ无码精品丝袜足| 国产乱人伦AV在线麻豆A| 久久99国产亚洲高清| 中文字幕乱码人妻无码久久久1| 男女干逼视频免费网站| 麻豆av毛片在线观看| 国产精品久久婷婷免费观看| 久久久久久久久国内精品影视| 蜜桃视频免费在线视频| 伊人狼人影院在线视频| 日韩中文字幕久久久老色批| 成人日韩精品人妻久久一区| 国产播放隔着超薄丝袜进入| 免费少妇a级毛片人成网| 全免费a级毛片| 日本不卡视频免费的| 日本中文字幕一区二区高清在线 | 白色月光在线观看免费高清| 宅男天堂亚洲一区二区三区| 亚洲av老熟女一区二区三区| 在厨房拨开内裤进入毛片| 99久久精品免费观看国产| 日本亚洲色大成网站www久久| 精品性影院一区二区三区内射| 国产乱子伦精品免费女| av蜜桃视频在线观看| 亚洲一区二区三区综合免费在线| 欧洲熟妇色xxxx欧美老妇软件| 欧美成人精品午夜免费影视| 亚洲国产精品特色大片观看完整版| 久久精品国产只有精品96 | 中文字幕在线亚洲日韩6页手机版| 思思99热| 国产女主播福利在线观看| 最新中文字幕一区二区| 人人人妻人人澡人人爽欧美一区| 无码国产精品一区二区高潮| 亚洲国产美女精品久久| 国产白浆流出一区二区| 亚洲性色av一区二区三区|