基于EXCEL的地形图图幅号转换查询方法
2015-12-03梁林峰
梁林峰
(山西省林业调查规划院 山西太原 030012)
我国基本比例尺地形图的分幅与编号有两种,按1993年以前标准产生的,称为旧分幅与编号,按1992年和2012年《国家基本比例尺地形图分幅和编号》[1-2]标准产生的,称为新分幅与编号。由于目前我国使用的测绘资料仍有大量的旧分幅与编号地形图,所以需要进行新旧图幅号之间的转换,同时也经常需要进行新图幅号与点位坐标的相互查询。笔者通过对有关文献资料[3-8]系统研究,利用EXCEL函数建立了国家基本比例尺地形图新旧图幅号转换及查询计算模板。该模板界面直观,操作简单,具有较强的实用性,便于推广使用。
1 地形图分幅与编号
新旧1∶100万地形图的分幅和编号均采用国际标准。分别按纬差4°、经差6°进行分幅,其中每一格为一幅1∶ 100万地形图。新旧编号基本相同。
旧地形图按经、纬度分幅的编号只规范到1∶0.5万。1∶50万~1∶0.5万比例尺地形图都是按照规定的经差、纬差进行划分。但分幅的基础不同,其编号采用不定长代码编排。
新地形图按经、纬度分幅的编号规范到1∶500。1∶50万~1∶500比例尺地形图都是按照规定的经差、纬差进行划分,同比例尺新图幅划分的经差、纬差与旧图幅相同。新地形图分幅都是以1∶100万比例尺地形图为基础加密进行,地形图编号采用连续代码编排,共由10位或12位代码组成。
2 计算原理及程序功能
地形图新旧图幅转换计算公式均采用直接计算的方法,新图幅号与经纬度值的相互查询计算采用《国家基本比例尺地形图分幅和编号》中的计算方法,但对部分计算公式进行了改进。
使用者可以参照图示建立模板,按提供的公式输入相应单元格即可。利用该EXCEL计算模板,可以实现以下5种计算功能:已知地形图新图幅号转换为相同比例尺的旧图幅号;已知地形图旧图幅号转换为相同比例尺的新图幅号;已知某点或图幅的西南角图廓经纬度坐标,计算其所在各比例尺地形图的新图幅号;已知新图幅号,求算其图幅西南角、东北角图廓经纬度坐标;已知新图幅号计算其不同比例尺图幅隶属关系。
3 利用EXCEL 进行转换查询的方法
3.1 由新图幅号计算旧图幅号
打开“在1∶100万图幅内由新图幅号转换旧图幅号”计算模板,见图1。
图1 由新图幅号转换旧图幅号模板
先将已知的新图幅号填入第B列对应比例尺的单元格内,然后在原始数据输入区将新图幅在1∶100万图幅内对应比例尺的行号、列号写入相应的单元格中,即可自动计算旧图幅的对应比例尺代码。各单元格内输入的公式如下(等号“=”前为单元格代码,从等号开始为实际输入公式,以下同):
E6=2*(C6-1)+D6;
F7=4*(C7-1)+D7;
G8=12*(C8-1)+D8;
G9=12*INT((C9-1)/2)+INT((D9-1)/2)+1;
H9=2*MOD((C9-1),2)+MOD((D9-1),2)+1;
G10=12*INT((C10-1)/4)+INT((D10-1)/4)+1;
H10=2*MOD(((INT((C10-1)/2)+1)-1),2)+MOD(((INT((D10-1)/2)+1)-1),2)+1;
I10=2*C10+D10-4*(INT((C10-1)/2)+1)-2*(INT((D10-1)/2)+1)+4;
G11=12*INT((C11-1)/8)+INT((D11-1)/8)+1;
J11=8*MOD((C11-1),8)+MOD((D11-1),8)+1;
G12=12*INT((C12-1)/16)+INT((D12-1)/16)+1;
J12=8*MOD(((INT((C12-1)/2)+1)-1),8)+MOD(((INT((D12-1)/2)+1)-1),8)+1;
K12=2*C12+D12-4*(INT((C12-1)/2)+1)-
2*(INT((D12-1)/2)+1)+4。
3.2 由旧图幅号计算新图幅号
打开“在1∶100万图幅内由旧图幅号转换新图幅号”计算模板,见图2。
先将已知的旧图幅号填入第B列对应比例尺的单元格内,然后在原始数据输入区将旧图幅在1∶100万图幅内对应比例尺的代码写入相应的单元格中,即可自动计算对应比例尺的新图幅行号、列号。公式输入及计算区各单元格内输入的公式如下:
J6=INT((C6-1)/2)+1;
K6=MOD((C6-1),2)+1;
J7=INT((D7-1)/4)+1;
K7=MOD((D7-1),4)+1;
J8=INT((E8-1)/12)+1;
K8 =MOD((E8-1),12)+1;
J9=2*INT((E9-1)/12)+INT((F9-1)/2)+1;
K9=2*MOD((E9-1),12)+MOD((F9-1),2)+1;
J10=4*INT((E10-1)/12)+2*INT((F10-1)/2)+INT((G10-1)/2)+1;
K10=4*MOD((E10-1),12)+2*MOD((F10-1),2)+MOD((G10-1),2)+1;
J11=8*INT((E11-1)/12)+INT((H11-1)/8)+1;
K11=8*MOD((E11-1),12)+MOD((H11-1),8)+1;
J12=16*INT((E12-1)/12)+2*INT((H12-1)/8)+INT((I12-1)/2)+1;
K12=16*MOD((E12-1),12)+2*MOD((H12-1),8)+MOD((I12-1),2)+1。
图2 由旧图幅号转换新图幅号模板
3.3 已知图幅内某点或图幅西南图廓点的经、纬度,计算其新编号
打开“已知图幅内任意点或西南角经纬度计算新图幅号”计算模板,见图3。
图3 已知图幅内任意点或西南角经纬度 计算新图幅号模板
先在原始数据输入区将已知经、纬度值按显示格式写入相应比例尺的单元格中,并且同时要在1∶100万比例尺对应行输入相同经、纬度值,以便计算1∶100万图幅行、列号。输入时只更改度(°)、分(′ )、秒 (″ )的数值,不要去掉(°)、(′)、(″)的标志。即可自动计算对应比例尺的新图幅行号、列号。公式输入及计算区各单元格内输入的公式如下:
E5=LEFT(C5,3)+MID(C5,FIND(" ° ",C5) +1,2)/60+MID(C5,FIND("′",C5)+1,2)/3600;
F5=LEFT(D5,2)+MID(D5,FIND("°",D5)+1,2)/60+MID(D5,FIND("′",D5)+1,2)/3600;
G5=CHAR(INT(F5/4)+65);
H5=INT(E5/6)+31;
G6=B6-INT(MOD(F6,4)/(4/B6));
H6=INT(MOD(E6,6)/(6/B6))+1。
第E、F、G、H列其它单元格采用本列上一单元格下拉复制的方式输入。
3.4 已知新图幅号计算该图幅范围(图幅西南、东北图廓点的经、纬度)
打开“已知新图幅号计算图幅西南、东北角经纬度”计算模板,见图4。
图4 已知新图幅号计算图幅西南、东北角 经纬度模板
先将已知的新图幅号填入第C列对应比例尺的单元格内,然后在原始数据输入区将对应比例尺行、列号写入相应比例尺的单元格中,同时要在1:100万比例尺对应行输入1:100万图幅行、列号。公式输入及计算区各单元格内输入的公式如下:
F5=($E$5-31)*6;
G5=(CODE($D$5)-65)*4;
H5=TEXT(F5/24,"[h]°mm′ss.000″");
J5=TEXT((F5+6/B5)/24,"[h]°mm′ss.000″");
K5=TEXT((G5+4/B5)/24,"[h]°mm′ss.000″");
F6=($E$5-31)*6+(E6-1)*(6/B6);
G6=(CODE($D$5)-64)*4-D6*(4/B6)。
第H列和第I列的其它单元格复制H5单元格公式输入,F、G、J、K列其它单元格采用本列上一单元格下拉复制的方式输入。
3.5 在同一幅1:100万图幅内不同比例尺新地形图的行列关系换算
打开“在同一幅1∶100万图幅内不同比例尺新地形图的行列关系换算”计算模板,见图5。
图5 不同比例尺新地形图行列关系换算模板
先在原始数据输入区将当前新图幅号、比例尺、1∶100万图幅划分为当前比例尺图幅的行(列)数、当前图幅的行、列号写入相应的单元格中,并且提前在公式输入及计算区填入1∶100万图幅划分为各比例尺图幅的行(列)数。公式输入及计算区各单元格内输入的公式如下:
D6=C6/$C$3;
E6=INT(($G$3-1)*D6)+1;
F6=INT(($H$3-1)*D6)+1;
G6=IF(D6<1,E6,$G$3*D6);
H6=IF(D6<1,F6,$H$3*D6)。
第D、E、F、G、H列其它单元格采用本列上一单元格下拉复制的方式输入。
4 几点说明
(1)在计算模板中所列的旧图幅号编码只是常见编码格式,各地区不完全一致。旧图幅编码中出现的各比例尺代码如为A、B、C、D,甲、乙、丙、丁,或a、b、c、d 时,应用模板时对应输入或输出数值分别为1、2、3、4。
(2)新图幅编号的行号输入时只输入实际序号,计算输出时也只输出实际序号,规范填写图号时要用0补齐3位或4位。
(3)我国图幅纬度范围在0°~56°内,1∶100万地形图图幅代码分别为A、B、C、D、……、N,也有的用数字编号,对应输入数值分别为1、2、3、4、……、14,应用模板时输入、输出值均为字符码,如需体现数值码则需要改写部分公式。
(4)我国图幅经度范围在72°~138°,1∶100万地形图图幅对应列号为43、44、45、……、53,应用模板时按实际列号输入、输出。
(5)由于我国幅员辽阔,各地经、纬度值中的度数位数不同,在应用“已知图幅内任意点或西南角经纬度计算新图幅号”计算模板时,需将E5、F5单元格中的“LEFT(C5,3)”函数中的“3”根据当地经、纬度度数的整数位数改写为“1”或“2”。
(6)新旧图幅号转换只需转换1∶100万图号后的代码即可,且只对1∶50万~1∶0.5万7种比例尺地形图进行转换。查询可以增加1∶2 000、1∶1 000、1∶500三种大比例尺地形图。
(7)所有输入公式只从等号“=”开始输入,等号前为单元格位置。
[1] 国家技术监督局.中华人民共和国国家标准 国家基本比例尺地形图分幅和编号(GB/T 13989-92)[S].1992.
[2] 国家质量监督检验检疫总局,国家标准化管理委员会.中华人民共和国国家标准 国家基本比例尺地形图分幅和编号(GB/T 13989-2012)[S].2012.
[3] 刘宏林.地形图新旧图幅编号变换公式的探讨[J].解放军测绘学院学报,1998,15(2)∶125-128,130.
[4] 刘宏林.国家基本比例尺地形图新旧图幅编号变换公式及其应用[J].测绘通报,1998,(8)∶36-37.
[5] 林辉,唐可平,王苗根,等.地形图分幅及图幅号转换[J].华东森林经理,2011,25(1)∶59-62.
[6] 余旭.地形图新旧图幅自动转换的实现[J].焦作工学院学报,2004,23(3)∶190-192.
[7] 韩丽蓉.我国基本比例尺地形图分幅与编号的计算方法[J].青海大学学报,2006,24(6)∶79-82.
[8] 孙万民.新旧地形图编号及范围解算方法[J].海洋测绘,2009,29(5)∶30-32,36.