• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于C#的國(guó)家基本比例尺地形圖分幅與新舊編號(hào)查詢實(shí)現(xiàn)

    2013-08-13 09:38:34張宏宇曲苑婷楊金玲曹先革
    關(guān)鍵詞:圖幅行列數(shù)組

    張宏宇,曲苑婷,楊金玲,曹先革

    (1.黑龍江工程學(xué)院 測(cè)繪工程學(xué)院,黑龍江 哈爾濱150050;2.東北林業(yè)大學(xué) 林學(xué)院,黑龍江 哈爾濱150040)

    我國(guó)幅員遼闊,以至產(chǎn)生的各種比例尺地形圖數(shù)量非常大。為了便于測(cè)繪、拼接、管理,防止漏測(cè)、重測(cè),將地形按一定的面積、大小進(jìn)行劃分,統(tǒng)一編號(hào)十分有必要。同時(shí)地形圖的圖幅編碼有新舊兩種規(guī)則,在生產(chǎn)工作中,存在著新舊圖幅轉(zhuǎn)換的問(wèn)題,故開(kāi)發(fā)一個(gè)能自動(dòng)進(jìn)行新舊圖幅編號(hào)轉(zhuǎn)換的程序就有了需求。國(guó)家基本比例尺地形圖系列包括1∶100萬(wàn)、1∶50萬(wàn)、1∶25萬(wàn)、1∶10萬(wàn)、1∶5萬(wàn)、1∶2.5萬(wàn)、1∶1萬(wàn)、1∶5 000。本文利用.net體系下的C#語(yǔ)言實(shí)現(xiàn)了在不同比例尺下地圖新舊編碼的查詢[1-2]。

    1 分幅及新舊編號(hào)規(guī)則

    地圖分幅有按經(jīng)緯線的梯形分幅和按平面直角坐標(biāo)網(wǎng)格線的矩形分幅兩種[3]。本文采用梯形分幅。

    新舊圖幅編碼中1∶100萬(wàn)地形圖的分幅和編號(hào)相同,采用國(guó)際分幅標(biāo)準(zhǔn)。經(jīng)差6°、緯差4°。但在緯度60°~76°之間為經(jīng)差12°、緯差4°;緯度76°~88°之間為經(jīng)差24°、緯差4°,緯度為88°以上單獨(dú)為1幅來(lái)劃分。從地球的赤道起算,分別向南北極每4°為一行,至88°共22行,依次以A,B…V編號(hào)。從180°經(jīng)線起,自西向東,每6°為一列,共60列。依次以1,2…60編號(hào)[4-5]。

    1)新圖幅編碼。其余比例尺地形圖以百萬(wàn)圖為基礎(chǔ),按各自經(jīng)差、緯差分幅,行從上到下,列從左到右依次以阿拉伯?dāng)?shù)字編碼,表示行列號(hào)。編碼位數(shù)為三位,不足三位前面補(bǔ)0。形成編碼方式為:在1∶100萬(wàn)圖幅編號(hào)之后接代表各比例尺的代碼B~H,再接其行列號(hào),例如:H-51-G-078-024。

    2)舊圖幅編碼。1∶50萬(wàn)地形圖將1:100萬(wàn)圖分為2行2列,共4幅,分別以A~D以自然順序編碼,例如H-51-A。1∶25萬(wàn)圖將百萬(wàn)圖分為4行4列,共16幅,以1~16編碼,例如 H-51-16。1∶10萬(wàn)圖將百萬(wàn)圖分為12行12列,共144幅,以1~144編碼,例如H-51-134。1∶5萬(wàn)和1∶1萬(wàn)圖是在1∶10萬(wàn)圖基礎(chǔ)上,分別分1∶10萬(wàn)圖為2行2列,共4幅,和8行8列,共64幅。分別以A~D、1~64編碼,例如 H-51-136-A、H-51-136-23。1∶2.5萬(wàn)圖將1∶5萬(wàn)圖分為2行2列,分別以1~4編碼,例如H-51-136-A-2。1∶5 000圖分1∶1萬(wàn)圖為2行2列,以a~d編碼,例如 H-51-136-23-a。

    2 設(shè)計(jì)思路

    本程序可完成兩個(gè)功能:1)根據(jù)已知圖幅編號(hào)(包括新圖幅編號(hào)和舊圖幅編號(hào))查詢圖幅范圍。2)根據(jù)已知點(diǎn)經(jīng)緯坐標(biāo),確定已知點(diǎn)在不同國(guó)家標(biāo)準(zhǔn)比例尺下所屬圖幅的新舊圖幅編號(hào)。

    首先對(duì)新舊編碼的編碼規(guī)則比較,發(fā)現(xiàn)新編碼更易于編程實(shí)現(xiàn)。通過(guò)總結(jié)編碼規(guī)則,發(fā)現(xiàn)舊編碼和新編碼之間存在轉(zhuǎn)換關(guān)系。故將舊編碼轉(zhuǎn)換為新編碼統(tǒng)一運(yùn)算。

    對(duì)于功能1),需要確定地圖邊界。而地圖邊界的確定只需確定邊界最大和最小經(jīng)緯度值即可。新編碼的編碼形式為× × × × ×,前兩位為百萬(wàn)圖幅行列編號(hào),第三位為比例尺,后兩位為在相應(yīng)比例尺中的行列編號(hào)。故首先對(duì)百萬(wàn)圖幅按分幅規(guī)則進(jìn)行劃分,利用一個(gè)22行60列二維數(shù)組存放其邊界最大和最小經(jīng)緯度,以數(shù)組下標(biāo)表示行列編碼,即新圖幅編碼中前兩位。對(duì)于其他比例尺地形圖,再利用一個(gè)二維數(shù)組,依據(jù)相應(yīng)的分幅規(guī)則對(duì)百萬(wàn)圖進(jìn)行劃分,同樣以數(shù)組下標(biāo)表示行列編碼即舊圖幅編碼的后兩位。在使用功能1)時(shí),只需根據(jù)新編碼第三位確定比例尺大小,依據(jù)相應(yīng)規(guī)則劃分由新編碼前兩位所確定的百萬(wàn)圖數(shù)組,再根據(jù)最后兩位的值取相應(yīng)的數(shù)組中存儲(chǔ)的經(jīng)緯值即得到該編碼所代表地圖的范圍。

    對(duì)于功能2),先劃分百萬(wàn)圖,通過(guò)與數(shù)組內(nèi)存儲(chǔ)的最大最小經(jīng)緯值比較,確定所屬百萬(wàn)數(shù)組,根據(jù)數(shù)組下標(biāo)即得所屬百萬(wàn)圖行列編號(hào)。再依照所欲查詢的比例尺對(duì)百萬(wàn)圖幅進(jìn)行劃分,做相同比較,確定相應(yīng)比例尺的行列號(hào),得到新圖幅編碼[6]。

    3 程序?qū)崿F(xiàn)及核心算法

    1)運(yùn)行界面如圖1、圖2所示。

    2)將新圖幅編碼轉(zhuǎn)換為舊圖幅編碼算法。通過(guò)對(duì)新舊編碼的編號(hào)規(guī)則的比對(duì),可以發(fā)現(xiàn)新舊編碼之間存在以下函數(shù)關(guān)系:

    (%表示取余ceil()表示向上取整)

    新編碼為:× ×k i j

    舊編碼為:× ×x

    1∶50萬(wàn):

    x=2* (i-1)+j

    (例:新編碼為J50B002002,舊編碼為J50D即i=2 j=2代入得x=4對(duì)應(yīng)舊編碼格式4即為D)

    1∶25萬(wàn):

    x=4* (i-1)+j

    (例:新編碼為J50C004004,舊編碼為J50016即i=4 j=4代入得x=16)

    1∶10萬(wàn):

    x=12* (i-1)+j

    (例:新編碼為J50D012012,舊編碼為J50144即i=12 j=12代入得x=144)

    舊編碼為:× ×x y

    1∶5萬(wàn):

    x =12* (ceil(i/2)-1)+ceil(j/2)

    y=2*((i-1)%2)+ (j-1)%2+1

    (例:新編碼為J50E024024,舊編碼為J50144D即i=24 j=24代入得x=144 y=4對(duì)應(yīng)舊編碼格式4即為D)

    1∶1萬(wàn):

    x =12* (ceil(i/8)-1)+ceil(j/8)

    y=8*((i-1)%8)+ (j-1)%8+1

    (例:新編碼為J50G096096,舊編碼為J50144064即i=96 j=96代入得x=144 y=64)

    舊編碼為:× ×x y z

    1∶2.5萬(wàn):

    x =12* (ceil(i/4)-1)+ceil(j/4)

    y =2*((ceil(i/2)-1)%2)+((ceil(j/2)-1)%2)+1

    z=2*((i-1)%2)+ ((j-1)%2)+1

    (例:新編碼為J50F048048,舊編碼為J50144D004即i=48 j=48代入得x=144 y=4對(duì)應(yīng)舊編碼格式4即為Dz=4)

    3)圖幅劃分。按照新編碼規(guī)則,首先劃分百萬(wàn)圖幅,代碼如下:

    k= MapCode.code_3-65;

    for(i=0;i<22;i++)

    for(j=0;j<60;j++)

    MapRangeValue mapRangeValue=new MapRangeValue();

    mapRangeValue.rangeValue[0]= 180-6*j;

    mapRangeValue.rangeValue[1]= 174-6*j;

    mapRangeValue.rangeValue[2]=4+4*i;

    mapRangeValue.rangeValue[3]=0+4*i;

    million[i,j]= mapRangeValue;

    4)根據(jù)不同比例尺,按以下方法劃分圖幅。①劃分1:50萬(wàn)、1:25萬(wàn)比例尺圖幅:

    millionBase= million[MapCode.code_1 - 65,MapCode.code_2-1];

    for(i=0;i< (2*k);i++)

    for(j=0;j< (2*k);j++)

    MapRangeValue mapRangeValue=new MapRangeValue();

    mapRangeValue.rangeValue[1]= million-Base.rangeValue[1]+ (6.0/(2*k))*j;

    mapRangeValue.rangeValue[0]= mapRangeValue.rangeValue[1]+ (6.0/(2*k));

    mapRangeValue.rangeValue[2]= million-Base.rangeValue[2]- (4.0/(2*k))*i;

    mapRangeValue.rangeValue[3]= mapRangeValue.rangeValue[2]- (4.0/(2*k));

    million[i,j]= mapRangeValue;

    ②劃分其他比例尺地形圖:

    for(i=0;i< (12* Math.Pow(2,k-3));i++)

    for(j=0;j< (12* Math.Pow(2,k-3));j++)

    MapRangeValue mapRangeValue=new MapRangeValue();

    mapRangeValue.rangeValue[1]= million-Base.rangeValue[1]+ (6.0/ (12* Math.Pow(2,k-3)))*j;

    mapRangeValue.rangeValue[0]= mapRangeValue.rangeValue[1] + (6.0 / (12 *Math.Pow(2,k-3)));

    mapRangeValue.rangeValue[2]= million-Base.rangeValue[2]- (4.0/ (12* Math.Pow(2,k-3)))*i;

    mapRangeValue.rangeValue[3]= mapRangeValue.rangeValue[2] - (4.0 / (12 *Math.Pow(2,k-3)));

    million[i,j]= mapRangeValue;

    5)實(shí)現(xiàn)搜索功能。由于數(shù)組中存放著地圖范圍經(jīng)緯度的最大值和最小值,故只需將已知的經(jīng)緯度和數(shù)組中的最值進(jìn)行比較便可確認(rèn)已知點(diǎn)所屬數(shù)組,即可確定行列號(hào),得到新圖幅編碼,再由新編碼進(jìn)行轉(zhuǎn)換得到舊編碼[7-8],流程如圖3所示。

    圖3 工作流程

    實(shí)現(xiàn)確定行列號(hào)代碼:

    if(longitude<= mapRangeValue.rangeValue[0] && longitude > = mapRangeValue.rangeValue[1]&&latitude < = mapRangeValue.rangeValue[2]&&latitude > = mapRangeValue.rangeValue[3])

    4 結(jié)束語(yǔ)

    通過(guò)計(jì)算機(jī)實(shí)現(xiàn)地形圖分幅編碼查詢,直觀,利于識(shí)別,大大方便了地形圖的管理。同時(shí)實(shí)現(xiàn)了新舊編碼的轉(zhuǎn)換,滿足了現(xiàn)實(shí)生產(chǎn)工作中的需要,具有一定的實(shí)用價(jià)值。通過(guò)進(jìn)一步完善,本程序可作為地理信息系統(tǒng)存取地形圖的組件,用以組成功能強(qiáng)大、完善的GIS系統(tǒng)。

    [1]項(xiàng)仲貞,許承權(quán),方子巖.中大比例尺地形圖標(biāo)準(zhǔn)分幅與編號(hào)查詢系統(tǒng)的實(shí)現(xiàn)[J].鐵道勘察,2008(1):24-26.

    [2]畢旭東,李永樹(shù).AE環(huán)境下宗地圖自動(dòng)生成模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)繪工程,2009(1):42-44.

    [3]馬俊海,王文福,祁向前.現(xiàn)代地圖學(xué)理論與技術(shù)[M].哈爾濱:哈爾濱地圖出版社,2008:89-95.

    [4]羅勝,郭海濤,張保明.矢量地圖圖幅裁剪技術(shù)研究[J].測(cè)繪工程,2007,16(4):56-59.

    [5]杜軍和.王英.大比例尺地形圖圖幅號(hào)查詢的可視化實(shí)現(xiàn)[J].城市勘測(cè),2007(5):67-70.

    [6]李學(xué)民,田耀永,鄧麗霞.國(guó)家基本比例尺地形圖的分幅與編號(hào)及新舊圖號(hào)的轉(zhuǎn)換[J].河南測(cè)繪,2007(3):25-26.

    [7]頡耀文.GIS中地圖投影的應(yīng)用[J].黑龍江工程學(xué)院學(xué)報(bào):自然科學(xué)版,2001,5(3):22-25.

    [8]王俊,張文詩(shī),王建濤.多圖幅海量數(shù)據(jù)電子地圖快速顯示的研究與實(shí)現(xiàn)[J].測(cè)繪工程,2003,2(3):18-20.

    猜你喜歡
    圖幅行列數(shù)組
    JAVA稀疏矩陣算法
    用“行列排除法”解四宮數(shù)獨(dú)(2)
    用“行列排除法”解四宮數(shù)獨(dú)(1)
    JAVA玩轉(zhuǎn)數(shù)學(xué)之二維數(shù)組排序
    單層小波分解下圖像行列壓縮感知選擇算法
    基于EXCEL的地形圖圖幅號(hào)轉(zhuǎn)換查詢方法
    尋找勾股數(shù)組的歷程
    基于ArcMap的圖幅接合表快速生成方法研究
    地形圖圖幅編號(hào)規(guī)則及實(shí)現(xiàn)
    基于Bing Maps的地形圖圖幅編號(hào)的網(wǎng)絡(luò)可視化查詢
    乌兰察布市| 工布江达县| 宁化县| 怀集县| 辉县市| 奉贤区| 商都县| 武隆县| 瓦房店市| 阆中市| 中西区| 新丰县| 广宁县| 依安县| 茂名市| 水城县| 中江县| 兰考县| 九江市| 白玉县| 子长县| 慈利县| 安仁县| 武强县| 翼城县| 宝兴县| 天等县| 炉霍县| 贡嘎县| 甘洛县| 北流市| 萨嘎县| 昌乐县| 绍兴县| 寻甸| 建瓯市| 平罗县| 龙岩市| 布尔津县| 屏山县| 疏附县|