基于ArcEngine自动生成1∶5万地形图标准分幅图框

2022-04-02 13:47邓意媛陈松林
国土资源导刊 2022年1期
关键词:新旧自动

邓意媛 陈松林

摘  要:针对空间数据下发过程中需快速定位到所在图幅编号的需求,通过分析1∶5万地形图新旧图幅编号组成,并根据新旧图幅号生成及转换算法,在.NET Framework框架下运用ArcEngine实现了1∶5万地形图分幅图框的自动生成,并附带对应的新旧图幅编号属性信息,极大方便了日常工作中相关数据的整理及下发,提高了工作效率。

关键词:1∶5万;图幅编号;标准分幅;自动生成;ArcEngine

中图分类号:P208      文献标志码:A      文章编号:1672-5603(2022)01-76-05

Automatical Generation 1∶50 000 Topographic Map Frame of Standard Subdivision Based on ArcEngine

DENG Yiyuan CHEN Songlin

(Third Surveying and Mapping Institute of Hunan Province, Changsha Hunan 410114)

Abstract: In response to the need to quickly locate the map frame number in the process of spatial data distribution, the composition of the new and old frame numbers of 1∶50,000 topographical map and applies the generation and conversion algorithm were analyzed. The ArcEngine under the NET framework was used to realize the automatic generation of the 1∶50000 sheet-systems of topographical map frame. The corresponding attribute information of the new and old map numbers was also attached, it greatly facilitates the sorting and distribution of relevant data in daily work and improves work efficiency.

Keywords: 1∶50 000; map number; standard subdivision; automatical generaion; ArcEngine

地形圖标准分幅在土地利用规划、土地勘测定界、地质灾害调查等工作中有极其重要的用途,经常需要根据行政区划、坐标范围进行分幅界定,一般比例尺为1∶1万或1∶5万[1]。地形图分幅图框可通过MapGIS、ArcGIS等软件通过一定步骤获得,但生成的图框往往不带对应的图幅编号,需进一步计算并录入图幅编号属性信息,若涉及旧图幅号之间的对比,还得进行转换。不少学者开展了地图自动分幅及新旧图幅号计算转换的研究,有新旧图幅号转换计算方法[2],有通过Excel、VB[3-4]实现,也有基于ArcEngine的自动分幅图制作[5-7],都在一定程度上解决了实际需求,给工作带来了便利。但未实现分幅图框的新旧图幅号属性信息挂接,不利于相关工作的开展,特别是土地利用总体规划[8]、勘测定界、地质灾害调查等工作中涉及图幅编号的数据库建设以及借阅资料档案馆中保存的老图幅编号的地形图。

1∶5万地形图是我国各行各业的基本用图。该比例尺地形图通常用于一定范围内较详细的研究和地形评价,供多个国民经济部门勘察、规划、设计、科学研究、教学等使用,同时也是军队的战术用图,供军队实地勘察、训练、图上作业、编写兵要、国防工程的规划和设计等军事活动使用,更是编写更小比例尺地形图或专题图的基础资料。通过开展1∶5万地形图分幅图框自动生成及对应新旧图幅编号属性挂接的研究,可为其他比例尺的自动分幅提供参考。

1  1∶5万地形图分幅及新旧图幅编号组成

地形图旧分幅与编号是按1993年以前的标准产生的,对于1993年3月以后测绘和更新的地形图采用的分幅和编号则称为新分幅与编号[2]。我国基本比例尺地形图均以1∶100万地形图为基础,按规定的经差和纬差划分图幅,其中1∶5万地形图与其他比例尺的分幅经纬差、行列数和图幅数量关系见表1所示。1∶100万地形图的分幅采用国际1∶100万地图的分幅标准[9],从地球赤道起,向两极每4°为一行,依次以字母A,B,C,…,V表示;从西经180°起,向东每6°为一列,依次以数字l,2,3,…,60表示。按我国领土经纬度的起始坐标,1∶100万地形图的行号范围为A~N,列号范围为43~53。

1.1  1∶5万地形图旧图幅编号组成

旧图幅编号中,1∶100万地形图的编号是由该图幅所在的行号(字符码)和列号(数字码)组成,规定行号在前,列号在后,二者之间划一短线,如长沙在1∶100万地形图上大部分区域处于第H行第49列,故编号为H-49,也有部分区域处在H-50、G-49;1∶10万地形图的编号则是把一幅1∶100万地形图分为144幅,用1,2,…,144表示,即“1∶100万图幅号—序号码”,如H-50-5。

1∶5万地形图的编号是将一幅1∶10万地形图分为4幅,用字母A,B,C,D表示,即“1∶10万图幅号—字母码”,如H-50-5-A,H50-144-B。可以看出,旧图幅编号的长短不一,难于标准化处理。

1.2  1∶5万地形图新图幅编号组成

新图幅编号与旧图幅编号的方法基本一致,只是表现形式不一样,去掉了字符码、数字码两两之间的短线,如长沙在1∶100万地形图上的图幅编号为H50。1∶50万至1∶5 000地形图图幅编号均是以1∶100万地形图图幅编号为基准的10位代码组成,如图2所示。

新图幅编号的前3位为1∶100万地形图的图幅编号;第4位为比例尺代码,新地形图几种比例尺的代码见表2所示;第5~7位为图幅横行号从上到下排列,以3位数字码表示,如001,002,… ;第8~10位为图幅纵列号从左到右排列,也以3位数字码表示,如001,002,…。从表1可知,1∶5万地形图是将每幅1∶100万地形图划分为24行24列,总共576幅,因此1∶5万地形图的图幅编号即为“1∶100万图幅号”+“E”+“001,002,…,024”+“001,002,…,024”。如长沙的H49E023020、H49E022021。

2  1∶5万标准图幅编号计算及分幅图框的自动生成

通过ArcGIS支持的开源数据格式Shapefile文件为载体,保存自动生成的图框,Shapefile文件则是将空间数据与属性数据进行分别保存,并通过索引文件将二者联系起来。图框的属性结构主要包括旧图幅号和新图幅号2个字段,结构信息如表3所示。图框要素的生成有2种方式:第一,根据指定的左上、左下、右上、右下4个顶点坐标来确定空间范围;第二,根据已有的要素文件范围来确定,如行政区划范围。自动生成图框的流程如图3所示。

2.1 1∶5万新图幅编号计算方法

首先,需要计算出1∶100 000地形图图幅编号的行号a,列号b。然后再计算1∶100 000地形图图幅号后的1∶5万图幅号的行号c,列号d。计算公式如下:

2.2 1∶5万新旧图幅编号的相互转换计算

新旧图幅编号的转换既有新图号向旧图号的转换,也有旧图号向新图号的转换。因1∶100万地形图新旧图幅号的含义和数值是完全相同的,只是表现形式不一样,所以在转换1∶5万新旧图幅号时只需转换1∶100万图幅号以后的代码即可。

第一,根据新图幅号计算旧图幅号,因1:5万旧图幅号组成结构是“1∶10万旧图幅号-字母码”,因此先计算1∶10万旧图幅序号i,再计算1∶5万旧图幅编号j(值对应关系为:1-A;2-B;3-C;4-D),公式如下:

式中:H为新图幅中的行号,L为新图幅号中的列号。如根据新图号H49E023021,可知行号为23,列号为21,代入计算可得老图幅号为H-49-143-A。

第二,根据旧图幅号计算新图幅号,利用1∶5万旧图幅号中1∶10万旧图幅序号i和本身编号j(值对应关系为:A-1;B-2;C-3;D-4)来换算得到新图幅的行号H,列号L,公式如下:

如根据旧图号H-49-142-D,可知i为142,j为4,代入计算可得新图幅号为H49E024020。

2.3 基于ArcEngine程序自动生成分幅圖框

从图3可知,实现1∶5万地形图标准分幅图框的自动生成,首先要获取到图框生成的空间范围,可根据指定的要素文件范围(如行政区划)或者是给定的上下纬度(l_top、l_bottom)、左右经度(l_left、l_right)来确定,然后根据经纬度坐标计算1∶5万地形图新图幅编号Ww_num,见代码1。

代码1:计算新图幅编号

double x = (l_left + l_right +) / 2;  double y = (l_top + l_bottom +) / 2;

int Bw_H = (int)(y / 4) + 1;  int Bw_L = (int)(x / 6) + 31;

double x5 = x - ((int)(x / 6)) * 6;  double y5 = y - ((int)(y / 4)) * 4;

int H = (int)(24 - Math.Ceiling(y5 * 6));  int L = (int)Math.Ceiling(x5 / 0.25);

int Ww_H = H + 1;  int Ww_L = L;

string Ww_num = (char)( Bw_H + 64).ToString();

Ww_num += String.Format(“{0:#00}”, Bw_L);

Ww_num += “E”;

Ww_num += String.Format(“{0:#000}”, Ww_H);

Ww_num += String.Format(“{0:#000}”, Ww_L);

其次,通过ArcEngine创建图框要素并为其挂接计算好的新旧图幅号属性。用到的ArcEngine类库主要有DataSourcesFile,Geodatabase,Geometry,Carto和ADF等。单个图幅框的生成思路如下:(1)根据顶点经纬度坐标通过IPolygon接口确定图框的空间范围,用接口IFeatureLayer建立要素图层,IFeatureClass获取要素类对象,IFeatureCursor得到存储要素对象的位置,CreateFeatureBuffer()方法创建IFeatureBuffer对象,set_Value“NewTFH索引”,“新图幅号值”方法得到IFeatureBuffer对象值,(2)利用IFeatureCursor对象的方法InsertFeature(IFeatureBuffer对象值)保存信息到图框要素的属性表中,见代码2。

代码2:图框生成并挂接图幅编号

IFeatureLayer tkLayer;   IPolygon tkPolygon;

IFeatureClass tkFeatureClass = tkLayer.FeatureClass;

IFeatureBuffer featureBuffer = tkFeatureClass.CreateFeatureBuffer();

IFeatureCursor featureCursor = tkFeatureClass.Insert(true);

int NewTFHIndex = tkFeatureClass.Fields.FindField(“NewTFH”);

int OldTFHIndex = tkFeatureClass.Fields.FindField(“OldTFH “);

featureBuffer.set_Value(NewTFHIndex, ”新图幅号值”);

featureBuffer.set_Value(OldTFHIndex, ”旧图幅号值”);

featureBuffer.Shape = tkPolygon;

featureCursor.InsertFeature(featureBuffer);

最后,根据指定的空间范围,代入1∶5万标准分幅的经差及纬差计算得到可生成的图框数量,获取到包含每个分幅图框的坐标列表,最终循环生成所有的图框要素。

3 应用与结果

遵循上述的技术流程,设计了1∶5万标准分幅图框生成工具图形界面,根据指定的图框生成范围,将自动生成该空间范围的1∶5万标准分幅图框,通过鼠标右键可点击查询当前图框新旧图幅号信息。如图4所示。

通过实际应用,1∶5万标准分幅图框生成工具生成的图框新旧图幅号准确、迅速,极大方便了日常工作中数据的分发及分幅图件资料的整理,也可应用到各行业1∶5万分幅专题地图的产出[10]。

参考文献/References

[1] 李海泉, 杨晓锋, 梁爽, 等. 标准分幅土地利用现状图编制软件的设计与实现[J]. 测绘与空间地理信息, 2017, 40(10): 146-148.

[2] 梁林峰. 国家基本比例尺地形图新旧图幅号转换计算方法[J]. 内蒙古林业调查设计, 2015, 38(4): 99-102.

[3] 谭绪泉, 杨志军. 利用Excel实现批量计算不同比例尺下的标准分幅图幅号[J]. 山东林业科技, 2014, 44(2): 95-97.

[4] 艾光辉, 贺冬梅, 张永仁. 用VB实现国家基本比例尺地形图新旧图幅号的转换[J]. 江西测绘, 2009(2): 43-45.

[5] 莫奇京. 基于ARCENGINE的林业地图自动分幅输出系统设计与实现[D]. 南宁: 广西大学, 2015.

[6] 刘静波, 王伟, 李欣, 等. 基于ArcEngine的地图自动分幅實现[J]. 海洋测绘, 2013, 33(6): 45-48.

[7] 王文德. 基于ArcGIS Engine的标准地图分幅图制作与输出[J]. 城市地理, 2015(8): 158-160.

[8] 邓意媛. MapGIS10 Objects在土地利用总体规划数据库更新中的应用[J]. 国土资源导刊, 2021, 18(3): 87-91.

[9] 中华人民共和国国家质量监督检验检疫总局,中国国家标准化管理委员会.GB/T 13989—2012. 国家基本比例尺地图分幅和编号[S].北京:中国标准出版社,2012.

[10] 康承旭, 唐红亮, 田优平. 基于ArcGIS和SketchUp建模产出地震应急三维专题图[J]. 科学技术与工程, 2019, 19(19): 12-17.

猜你喜欢
新旧自动
基于新课标的高中地理新旧教材对比研究
人间最美半新旧
新旧《中小学生守则》透析
当NSX遇上NSX
让小鸭子自动转身
关于自动驾驶
傍晚,路灯为什么能自动亮起来?
为什么皮肤划破后血液会自动凝结