文档库 最新最全的文档下载
当前位置:文档库 › 我国新地图图幅编号库的快速建立及在互联网中的应用论文

我国新地图图幅编号库的快速建立及在互联网中的应用论文

我国新地图图幅编号库的快速建立及在互联网中的应用论文
我国新地图图幅编号库的快速建立及在互联网中的应用论文

基于MFC平台的地图图幅编号库的快速建立以及在互联网中

的应用前景

作者:合肥工业大学测量工程系王震阳

指导教师:合肥工业大学测量工程系张志慧

摘要:随着互联网的快速发展,越来越多的测绘产品也逐渐趋向网络化。作者利用MFC开发工具模拟了一套地图图幅编号库的快速建立及快速查询功能的软件,并模拟了其在互联网上的应用。

该软件主要有以下功能:1.地图编号查询功能,在软件中直接输入经纬度可以直接计算出该点所在我国7种不同比例尺下的图幅编号。2.地图编号批量处理功能,将GPS接受机收集的经纬度数据直接导入该软件则可以批量计算所有点的图幅编号。3.地图编号的快速建库功能,作者收集了中国660个城市和县区的经纬度,并将此数据导入软件,由软件将这些原始据转化为在不同比例尺下的地图图幅号存库作为检索目标库文件,用于快速检索。4.关键词查询地图图幅编号功能。该软件还可以作为网络应用程序发布到网页上,比如,可以发布成网络版链接到“百度应用”上,这样给图图幅编号需求者以极大的方便,也丰富了测绘产品的应用。

Abstract:With the rapid development of Internet,more and more of Surveying and mapping products gradually tends to the network. The author uses MFC development tools to simulate a set of map

sheet number base quickly build and fast query function of the software,and the simulation of its application on the Internet.

The software mainly has the following functions:1.map number inquiry function,the software directly input the latitude and longitude can be directly calculated from the point of our7different scale maps number.2.map number batch processing function, GPS receiving machine collect longitude data directly into the software can batch calculation of all points of the map number.3. map number fast library function,the author collected China660 city and county of the latitude and longitude,and this data into the software,the software will these primitive according to the transformed at different scale maps map number storage as retrieval object library file,used for rapid retrieval.4.query map sheet number function.The software can also be used as a web application is posted to the webpage,for example,it can be released into network edition links to"Baidu application",giving Tutu picture number demand with great convenience,but also enriched the application of Surveying and mapping products.

关键词:地图分幅编号库;互联网;GIS;

Keywords:Map numbering system base;Internet;GIS

随着互联网的快速发展,越来越多的测绘产品也逐渐趋向网络化,现在流行的GoogleEarth软件很容易就能获取相关的地理信息。在一些专业网页上我们也可以轻松的下载到一些测绘相关数据,比如GPS电文,某一地区经纬度等信息。地图的分幅编号是相关制图单位,土地部门等经常用到的信息。在用GPS进行地理坐标采集时,我们可以轻松获取经纬度坐标,但是如果需要某一点在不同比例尺条件下所的不同图幅分幅编号则还需要经过另外的计算才能获得。在一些GIS软件中比如MapInfo中也没有直接将经纬度转化为该点所在地图幅编号的信息,这些不足给制图人员和其他地图图幅编号需求人员带来很大的不便。在互联网上,当我们输入经纬度时也很难找到此点的地图在不同比例尺下的地图编号。基于以上关于问题,结合《地图学》的学习及实验,作者利用MFC开发工具模拟了一套地图图幅编号库的快速建立及快速查询功能的软件,并模拟了其在互联网上的应用。

一、我国地图分幅基本情况

我国国家基本比例尺地形图包含8种比例尺,即1:100万,1:50万,1:25万,1:10万,1:5万,1:2.5万,1:1万,1:5000,采用国际统一的梯形分幅编号法。后7种比例尺地形图都是在1:100万比例尺地图编号的基础上进行,在20世纪90年代前后分别采用自然序数法和行列编码法,这两种方式差异还是很大的。我国1:100万地图编号采用国际统一的行列式编号,单幅经差6°,纬差4°。由于我国处于60°纬度以下因此没有合幅情况。

1.90年代之前的分幅编号法

20世纪90年代以前,1:100万比例尺地图用列行式编号(列号在前,行号在后),其他比例尺地形图都是在1:100万比例尺地图的基础上加自然序数;1:100万地图的编号是“列-行”编号。从赤道算起,维度每4°为一列,至南北纬88°各有22列,用大写英文字母A,B,C……V表示,南半球加S,北半球加N,由于我国领土全在北半球,N字省略。从180°经线算起,自西向东每6°为一行,全球分为60行,用阿拉伯数字1,2,3……,60表示。一个行号和一个列号就组成一幅1:100万地图的编号。如合肥(117.1731.52):H-50。1:50万后的各比例尺自然序数和英文字母结合实行逐级连接表示。如

H-50-10-B。

2.90年代后的分幅编号法

1991年制订的《国家基本比例尺地形图分幅和编号》的国家标准规定,新系统的分幅没有作任何改动,但编号有了较大变化。20世纪90年代以后,1:100万比例尺地图用行列式编号法,其他比例尺地形图均在其后再加行列号。1:100万地图的编号没有实质性的变化,只是由“列—行”式变为“行列”式,把行号放在前面,列号放在后面,中间不用连接号,例如合肥市(经纬度分别为:117.1731.52)所在的1:100万地图的编号由旧编号H-50变为H50,并没有实质性变化。

1:5千~1:50万这七种比例尺地图的编号是在1:100万地图的基

础上进行的,它们的编号都由10个代码组成,其中前三位是所在的1;100万地图的行号和列号,第4位是比例尺代码,1:50万,1:25万,1:10万,1:5万,1:2.5万,1:1万,1:5千分别用代码B,C,D,E,F,G,H 表示。后面6位分为两段,前3位是图幅的行号数字码,后3位是图幅的列号数字码。行号和列号的数字编码方法是一致的,行号从上而下,列号从左到右顺序编排,不足3位时前面加‘0’。比如:武汉(114.3166730.51667)所在1:50万比例尺下的图幅号为

H50B001001,整体规律性强。

二、地图分幅的计算原理

地球上任一点所在1:100万比例尺下所在图幅编号计算公式:横列号=[纬度/纬差4°]+1;

纵行号=[经度/经差6°]+31(东经);

纵行号=31-[经度/经差6°](西经);

由于我国处于东经因此我国地图分幅号纵行号公式采用前式。其他7种不同比例尺的分幅公式为:

():表示商取余,[]:表示分数值取整

c :所求比例尺地形图在1:100万地形图编号后的行号

d :所求比例尺地形图在1:100

万地形图编号后的列号

比如:在1:50万比例尺下纬差,经差分别为2°,3°。代入上式计算得北京(116.4166739.91667)在1:50万比例尺下的行号c=001,d=001。

同理可计算得其在1:25万,1:10万,1:5万,1:2.5万,1:1万,1:5千比例尺下的行列号。最终计算结果表示为:

1:50万:J50B001001

1:25万:J50C001002

1:10万:J50D001005

1:5万:J50E001010

1:2.5万:J50F001020

1:1万:J50G002039

1:5千J50H004078。

三、地图分幅编号库的快速建立

作者在VC6.0开发工具下建立了基于MFC基本对话框程序软件,用于模拟地图图幅编号的快速建立及查询功能。软件主界面模仿了“百度”(如图1)主页,并模拟了百度框计算思想。软件最基本功能是在编辑框中直接输入经纬度(比如:116.4166739.91667)点击“百度一下”按钮则可以直接获得该点的地图图幅编号。实现这一功能的基本思路是,当点击“百度一下”按钮时,程序首先获取编辑框中的数据,并去掉数据开头和结尾的空格符后,将数据以字符串的

形式存储在内存中。然后程序对该字符串进行分析,如果是经纬度格式的数据,则程序直接利用图幅编号分幅公式计算该点所在地图图幅编号后直接在页面下方编辑框显示计算结果。

当输入的数据是汉字(比如:合肥)时,程序只能搜索已经建立好的数据库目标文件。如果还没有建立数据库则程序会提示输入格式错误,请重新输入等信息。那么下面将介绍地图图幅分幅编号库的快速建立及查询的实现方法。

1.地图图幅分幅编号的快速建立

如果直接将各个城市和地区所在不同比例尺条件下的图幅编号输入到数据库中则是一项庞大的工程,速度慢而且成本高昂,且数据也不容易直接获取。考虑到现在GPS以及一些GIS软件都可以容易的获取某一地区的经纬度信息,而且部分网站上也可以直接下载到很多地区的经纬度等信息。因此,作者在建立地图分幅编号库时,选择了一条“弯路”,不直接建立图幅编号库,而是先建立城市和地区的经纬度库,然后将这些经纬度数据批量转化为地图图幅编号后建立图幅分幅编号库。看似麻烦其实实现起来非常的方便快捷。

将城市和地区的经纬度数据以一特定的格式(如:北京116.4166739.91667)保存在文本文档文件中,然后将此类原始文件导入到程序中,程序逐条读取原始文件中的经纬度信息,并将信息拆开存储在数组中。名字存储在Name[]数组中,对应的经度纬度存储在Jingdu[]和Weidu[]数组中,然后将数组中的每个数据代入公式进行批量计算,然后将计算后的数据以一特定格式(如:北京:J50.B001001

J50.C001002J50.D001005J50.E001010J50.F001020J50.G002039 J50.H004078)存储到目标文件Source.txt中,此目标文件的保存路径可由用户自定义完成。在用户选择目标文件的保存路径的同时程序会记录下用户自定义的文件路径,并存储在程序默认的C盘目录下中的路径文件Path.txt中。随着经纬度数据的不断更新和丰富,可以将更多的经纬度数据导入到程序中,程序会按照上面相同的步骤对数据进行处理,并将生成的Source.txt文件所有的路径都保存在路径文件Path.txt中。综上所述,程序在建库的整个过程中将建立两类文件,第一类是目标文件Source.txt用于存储将原始数据(经纬度)转化后的数据,即存储城市和地区名字和对应的地图图幅编号,作为快速搜索的目标文件。第二类文件是路径文件Path.txt,保存在程序默认的C 盘目录下,存储所有Source.txt文件的路径。用户在进行图幅编号检索时直接给程序提供搜索路径,可以大大节省计算机的大量工作量和时间。

2.关键词的快速搜索

在完成库的建立(当然库是可以不断地更新和丰富的)以后,下面将要实现的功能是关键词(城市和地区名字)的检索,即只输入城市和地区名就能获取到该地区所在不同比例尺条件下的图幅编号。

当程序接收到用户输入的关键词时,程序会根据Path.txt文件保存的路径逐个打开Source.txt文件,并将文件中的每一行作为字符串保存在内存中然后在此字符串中搜索关键字字符串,如果检索到字符串中包含用户输入的关键词则将此字符串输出,因为在Source.txt文件

中每一行只保存了一组数据,及某一地区的地名和其在7种比例尺下的图幅编号。因此当程序在字符串中搜索到关键词时,只需将此字符串整体输入即可。读完第一行数据后,程序开始读取第二行数据,并按照和上面一样的方法进行关键词的匹配工作。直至读取到该Source.txt文件末尾。然后再根据Path.txt提供的第二个路径打开第二个Source.txt文件按照上面相同的方法对文件进行遍历。依此类推直至所有Path.txt文件中的路径都遍历完为止。

3.程序功能的验证分析

作者在互联网上搜集了我国660多个城市和地区的经纬度,并将这些数据按照特定的格式存储在data1.txt和data2.txt两个文件中。然后打开程序选择导入数据选项,将data1.txt文件导入程序,当程序提示选择保存生成的Source1.txt文件路径时,作者随机保存在一个目录下面。然后和导入data1.txt步骤一样将data2.txt文件也导入程序。至此,已经将两个原始数据导入程序,并已经生成两个Source.txt文件。在程序的主界面,输入关键词,比如:输入“合肥”,检索结果为:合肥:H50.B001002H50.C001003H50.D002007H50.E003013 H50.F006026H50.G012051H50.H024102,输入“合”,检索结果为:合肥:H50.B001002H50.C001003H50.D002007H50.E003013 H50.F006026H50.G012051H50.H024102

合山:F49.B001001F49.C001001F49.D002002F49.E004003 F49.F007005F49.G013009F49.H026017

合川:H48.B001002H48.C002003H48.D006009H48.E012017

H48.F024034H48.G048067H48.H096133。

图1

图2

经过分析,运行结果正确,且检索出了所有以“合”字开头的城市和地区的图幅编号。当然随着数据的增多,数据库也越来越丰富,可以检索出更多城市或地区所在不同比例尺下的地图分幅编号。

图3

四、在互联网以及其他方面中的应用

目前多家互联网公司都提供了开放平台。比如百度公司提供了“百度应用”这一功能,开发者可以免费地申请将自己的应用程序连接到百度网站上。让所有的网民都可以通过此平台利用自己软件,方便用户的同时也增加了其网络流量,可以带来一定的经济效益。因此将此软件可以进一步改化为网络版应用程序,然后申请应用添加到“百度应用”或者其他一些测绘相关的网站上。

目前我国国产的GPS品牌主要有中海达,南方测绘等。制图人员或土地调查部门等利用GPS可以很轻松的获取某一地的经纬度坐标,但需要该地图幅编号时则只能将数据读取出来后单独计算,这样操作起来麻烦不说而且很容易造成错误。因此如果将此软件功能作为一个子模块嵌入到GPS等仪器中可以解决这一问题,而且也不会增加产品的生产费用。

在一些GIS软件中,比如MapInfo,GoogleEarth,也可以轻松的

获取某一点经纬度坐标,但时还是无法直接获取该点的图幅编号,给图幅编号需求人员带来不便,因此对这些软件进行二次开发时经本软件功能导入其中对于制图专业人员和土地调查人员来说都是很重要的一个应用,可以节省生产的时间和成本。

五、总结

地图图幅编号的快速建立及快速查询可以解决一部分图幅编号需求人员的工作量并能节省相关生产成本。本文中所述建库方法简单,便捷,易于维护,成本低,占用储存空间小。对用户的电脑水平要求不高。土地和相关制图部门可以利用此方法快速建立本地区的图幅编号库。随着网络的发展,越来越多的产品走向网络化,因此作者也不断地完善图幅编号库,并正将此应用链接互联网上,为广大网民和技术人员提供免费的检索服务。另外,该软件可作为GIS的一个子功能模板,增加GIS软件的功能。

参考文献:

1.祝国瑞主编,《地图学》武汉大学出版社,2004.1

2.王家耀编著,《地图制图学与地理信息工程学科进展与成就》测绘出版社,2011.4

3.任哲《MFC Windows应用程序设计》清华大学出版社,2007.9

4.张卫华刘征赵志刚《Visual C++程序设计实战训练》人民邮电出版社,2004.8

相关文档