Chinaunix首页 | 论坛 | 博客
  • 博客访问: 354252
  • 博文数量: 89
  • 博客积分: 2020
  • 博客等级: 大尉
  • 技术积分: 1154
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-13 15:10
文章分类

全部博文(89)

文章存档

2011年(1)

2010年(21)

2009年(24)

2008年(43)

我的朋友

分类:

2010-05-03 18:16:37

文章来源:深圳磨房/山野版块

自制户外登山地图傻瓜书

2009-02-19 灰羊羊

(转载请注明出处)

第一章.前言

    大概4年前喜欢上了户外运动,从此一发不可收拾,07年初买了一个GPS,最初只是为了避免在山中迷路,随着使用的深入,我逐渐对GIS(地理信息系统)这门学问也产生了浓厚的兴趣,我想这就是所谓的爱屋及乌吧。

    我利用爬山之外的业余时间收集了不少这方面的资料,因为不是科班儿出身,在学习的过程中遇到不少困难,有时一个小问题会困扰我很多天,好在最终还是找到了解决办法,当然从中也获得了乐趣。

    现在我想把我积累的一些自制登山地图的经验写下来,并且尽量用大白话描述,不讲复杂的概念(咱也没那个水平),让对GIS知识感兴趣的初学者们可以少走些弯路,尽快入门。

    还是那句话,咱不是科班儿出身,对一些概念的理解上肯定有偏差,也不够深入,咱就本着实用主义的精神,能把地图做出来就行了,如果哪些地方说的不对请各位大侠们多多包涵,多多指正,谢谢!

第二章.基本概念


    虽说尽量不讲概念,但是有些最基础的还是要提一下:


    理解重点:地理坐标系(经纬度)、投影坐标系、WGS84坐标系、UTM坐标系


    很长时短时间都搞不清这些坐标系之间的关系,我觉得是初学者最容易糊涂的地方。


    地理坐标系统说白了就是经纬度,经纬度坐标是球面坐标。


    想一想假如我们想知道地球上两点间的距离,用一把尺子在地球仪上量是不可能的事情,因为地球仪是立体的没法量,所以我们要把地球投影到一个平面上,这样就 把一个三维的坐标系转换成了一个二维的坐标系,这就是投影坐标系。当然一个球体不可能完美的投影到一个平面上,必然会产生变形,不过科学家们用了很多复杂 的算法让这个变形尽可能的小,具体是怎么弄得我也搞不懂。


   地球是一个不规则的椭球体,不同国家地区的测绘人员会用不同参数的椭球来近似代替地球表面。也就造成了选用不同的椭球体得出的结果会有偏差。我们主要用的 是美国国防局1984年搞的WGS84坐标系,这是专为GPS全球定位系统而建立的坐标系,这个坐标系采用的椭球体就是WGS84椭球,其他还有如北京 50坐标系,用的是前苏联制定的一个椭球体(误差比较大),我国后来还制定了西安80坐标系和最新的2000坐标系,都用了不同的椭球体,这些坐标系之间 是可以相互转化的,不过转化公式很复杂,也不用记,只要记住以后我们所做的工作都在WGS84坐标体系下完成的就行了


    投影坐标系的投影方式也有很多种,比如什么“高斯克吕格投影”、"UTM(通用横墨卡托格网系统)"之类,它们都属于平面直角坐标系的一种,不同投影的具体算法不必了解,只要知道我们用的都是UTM投影就可以了


   总结一下:我们主要用到两种坐标系:经纬度坐标系和基于WGS84椭球体,采用UTM投影方式的投影坐标系。

 

   下面分别介绍一下经纬度坐标和UTM坐标(部分内容摘抄了前辈们的文章)

 

    经纬度坐标

    国际上规定,把通过英国首都伦敦格林威治天文台原址的那一条经线定为0°经线,也叫本初子午线从0°经线算起,往东叫东经,习惯上用“E”作代号,往西叫西经,习惯上用“W”作代号东、向西各分180°东经180°和西经的180°重合在一条经线上,那就是 180°经线。在地图上判读经度时应注意:从西向东,经度的度数由小到大为东经度;从西向东,经度的度数由大到小,为西经度;除0°和180°经线外,其余经线都能准确区分是东经度还是西经度。

    假如从地轴的正中间将地球切成南北两半,上边的一半叫北半球,下边的一半叫南半球。被切的这个平面,叫赤道面。赤道面与地球表面相交的线叫赤道。纬线从赤道往两极越来越短,到了两极就缩小成一个点了。科学家们把赤道定为0°纬线,从赤道向两极各分为90°,赤道以南叫南纬,赤道以北叫北纬

    UTM坐标系

 

    UTM 全称 UNIVERSAL TRANSVERSE MERCARTOR GRID SYSTEM,通用横墨卡托格网系统。


    在UTM系统中,北纬84度和南纬80度之间的地球表面积按经度6度划分为南北纵带(投影带-就是一个竖长条儿)。从180度经线开始向东将这些投影带编 号,从1编至60(北京处于第50带)。每个带再划分为纬度差8度的四边形。四边形的横行从南纬80度开始。用字母C至X(不含I和O)依次标记(第X行 包括北半球从北纬72度至84度全部陆地面积,共12度)每个四边形用数字和字母组合标记。参考格网向右向上读取。

    如果要做一个地方的地图,必须要知道那个地方在UTM坐标系中的第几带上,比如北京周边活动的驴友,只要记住北京在UTM坐标系中的第50带就可以了


第三章.基础数据

 

    在这里我想我先说一下我们制作地图的核心思想:就是从四处收集我们所需要的各种数据,对数据进行整理、提炼、格式转换,然后把他们叠加到一起。

 

    有了这个核心思想,后面的事情就好办了,第一步要做的就是基础数据的收集工作。先简单介绍一下我们需要的几大块数据:


    1.用来生成等高线的东西--SRTM3
       SRTM数据主要是由美国太空总署(NASA)和国防部国家测绘局(NIMA)联合测量的,SRTM的全称是Shuttle Radar Topography Mission,即航天飞机雷达地形测绘使命,2000年2月11日上午11时44分,美国“奋进”号航天飞机在佛罗里达州卡那维拉尔角的航天发射中心发 射升空,“奋进”号上搭载的SRTM系统共计进行了222小时23分钟的数据采集工作,获取北纬60度至南纬56度之间,面积超过1.19亿平方公里的 9.8万亿字节的雷达影像数据,覆盖全球陆地表面的80%以上,该计划共耗资3.64亿美元,获取的雷达影像数据经过两年多的处理,制成了数字地形高程模 型,该测量数据覆盖中国全境。
       SRTM数据每经纬度方格提供一个文件,精度有1 arc-second和3 arc-seconds两种,称作SRTM1和SRTM3,或者称作30M和90M数据,SRTM1的文件里面包含3601*3601个采样点的高度数 据,SRTM3的文件里面包含1201*1201个采样点的高度数据。目前能够免费获取中国境内的SRTM3文件,是90米的数据,每个90米的数据点是 由9个30米的数据点算术平均得来的。

http://exiake.info/doc/images/104243_58635107.gif

     srtm3 数据下载地址:

    


    2.获得国界、省界、地、县行政界线等

       国家基础地理信息系统数据下载服务,这里只提供一些公开的基础信息,并不能满足我们的需要,只要登记一下即可下载。
         

 

    3.获得10万多个全国地名--china.names

      下载地址:

     


    4.获得全国公路、铁路、河流、湖泊、乡镇区县等详细数据--Garmin V66(v70) 纠偏地图

      Garmin V66地图是一个非常强大的GPS导航地图,几乎包括了所有你想要的东西。不过这个地图不是免费的,而且官方提供的地图是被河*蟹过的,人为加入了一些误 差,好在一些民间高手、大侠们经过不屑努力,破解了河*蟹算法,发布了纠偏版的电子地图,我们主要利用的就是这个纠偏版的电子地图。

      下载地址请访问  ,它的论坛置顶贴里面有一个FTP地址,登录这个FTP,可以看到里面的东西应有尽有,就是一个聚宝盆,寻找 Garmin V66 简体中文分省纠偏地 图下载(最近又发布了7.0版的地图,也可下载这个,不过我还没用过),.MP文件 或 .IMG 文件都可,注意一定要是分省的,一个省市一个文件(也有可能1个省市2个文件),因为如果不分省的话,文件会很大,打开时很耗资源,机器配置不够的话根本 打不开,如果只在北京周边地区活动,通常只需要北京和河北两个省市的分省地图就行了。

 

    5.获得全国山峰数据

      这个也可以在小胖熊的论坛上搜索到,但是这个山峰数据不全,谁有更全的可以提供一下。

 

    6.获得高精度卫星图片--google map

      这个不用多说了

 

    7.获得gps穿越轨迹和地标

      这个主要靠自己收集积累,网上也有很多人发布自己的穿越轨迹,搜一下能找到很多。

第四章.用到的软件

 

    下面这些软件在网上搜一下都不难找到,就不一一列出下载地址了,有一些软件可能要破解才能使用:


    1. 生成等高线、叠加地图的软件--Global Mapper (我用的版本10)
    

    2. garmin v66全国纠偏地图的提炼--GpsMapEdit(我用的版本1.0.54,不需要破解)

 

    3. 地图查看工具--Ozi Explorer(我用的版本 3.95.4m)

 

    4. OZI 地图转换压缩工具--img2ozf

 

    5. 矢量数据格式转换工具--GPSBabel  、GpsInfoShare

 

    6. Google map (这个不用多说了,目前版本5.0)

      可以到这里直接下载简体中文版完整安装包

     

 

    7. Google map 抓图工具 -- 电子地图一把抓

 

    8. 如果想把地图导入到麦哲伦GPS上,会用到 MMOffice2.7

 

    以上是我们常用的一些软件,这些软件总的来说都是简单易用的,稍微琢磨一下就能基本掌握,GIS方面的软件还有很多,有些软件需要更高深的专业知识,我本身也没有这个能力掌握,就不一一介绍了。


第五章.自制户外登山地图

 

      终于讲到正题上了,下面我就通过一个实例演示一下如何做一张户外登山地图,这个实例我选择了北京地区驴友经常走的一条初级经典穿越路线--香八拉地区户外登山地图,首先点击此处预览一下最终生成的地图吧,这个地图制作的还比较糙,文字、线条样式等细节没有经过太细致的调整,不过作为教程使用足够了。

 

      第一步:下载SRTM3高程数据

      打开

      可以看到一张世界地图,鼠标选择你需要的那个区域,对于北京周边来讲,只需下载图中那四块蓝色区域:

    然后点“Click here to Begin Search>>”,进入下载页面,点击每个地图下面的 “Data Download (FTP)  ” 即可下载。

 

    这四块区域分别对应四个文件:srtm_59_05.zip ,srtm_60_05.zip ,srtm_59_04.zip ,srtm_60_04.zip ,其中最常用的就是 srtm_60_05.zip 和 srtm_60_04.zip 。注意:下载下来的虽然是个zip文件,但是并不需要解压。

 

    第二步:导入SRTM3数据到Global Mapper(以下简称GM)

    打开GM,点击第一个方框“Open Your Own Data Files”:

  

    选择刚才下载的srtm_60_04.zip ,一张北京北部山区的高程地图就呈现出来了:

 

从图中可以观察到,香八拉地区在这幅图中的最下面,并且只有上半部分,所以我们还要加载下半部分的地图,才能构成一个完整的香八拉地图,点击菜单 File->Open Data File(s)... 选择srtm_60_05.zip ,打开,可以看到这两幅地图拼成了一个完整的地图:

 

其中香八拉区域只占地图中极小的一部分。可以使用工具条上的放大镜不断放大这块区域,直到可以清晰的看到这条山脉:

 

OK,现在我们要把这块区域单独摘出来保存,选择菜单中

File->Export Raster and Elevation Data ->Export DEM...

 

在弹出窗口中选择第三个选项卡 Export Bounds ,点击“Draw a Box... ”按钮

 

在接下来的弹出窗口中圈出一块儿矩形区域,覆盖住整个香八拉地区即可,然后点OK:

 

    在上一个弹出窗口中点“确定”,会弹出另存为...对话框,给它起一个名字叫 xiangbala.dem 保存。

 

    然后点击File->Unload All... 关闭所有地图层。第二步工作就结束了。

 

    第三步:生成等高线

    再次点击“Open Your Own Data Files”按钮,这次选择刚才保存的 xiangbala.dem ,可以看到这次只有香八拉地区的地图呈现出来了:

 

选择 File->Generate Contours... ,在弹出窗口中,输入Contour Interval 为25,单位为 METERS,意味着我们要做一张等高线精度为25米的地图。

 

在 Simplification 选项卡中,把滑块移到最左边,这样可以使等高线看起来更圆滑:

 

点击“确定”,可以看到等高线就生成好了,有点户外地图的样子了吧?

 

接下来点击工具条上的Configuration按钮:

 

首先需要指定一个平面直角坐标系,选择Projection选项卡,Projection选择UTM,Zone选择50,Datum选择WGS84,Panar Units选择METERS,关于这些选项的意义请参考第一章的基本概念部分。

 

然后选择General选项卡,Grid Display选择Current Projection,Grid Spacing选择Custom,后面的输入框输入500,点击确定。

 

可以看到地图上出现了一面网格线,每个网格是500m*500m的区域,可以让我们更好的估计两点间的距离。

 

这里补充一点:如果你发现地图上山体的阴影很深,影响美观,可以通过 Configuration->Vertical Options 里面的三个参数进行调节

 

最后,我们可以点击File->Save Workspace...把当前工作保存成 xiangbala.gmw 留待日后使用。

 

如果你认为这样已经很好了,可以把它保存为一个GEOTIFF文件,GEOTIFF是一种带地理信息的栅格图片格式文件,选择File->Export Raster and Elevation Data->Export GeoTIFF...

 

在弹出窗口中,File Type选择24-bit RGB,Sample Spacing中X-axis和Y-axis都填入10,代表输出10米精度的地图,下面复选框中前三个都勾上:

 

点击确定后,保存成 xiangbala.tif 文件,以及xiangbala.tfw文件。

 

    第四步:导入OZI Explorer

    我们暂时关掉GM,打开OZI Explorer(以下简称OZI),选择文件->导入地图->Single DRG Map (我用的是中文版,如果你的是英文版,请查找对应选项)。

 

首先出现一个对话框,告知你第一步是选择图片文件,按确定后打开刚才保存的那个xiangbala.tif

 

第二步是指定一个地图文件(.map文件)的名字和存放路径,按确定后打开一个文件浏览框,选择存放路径,输入一个文件名,比如 xiangbala.map,最好把这个.map文件和xiangbala.tif文件放到一个目录中,.map文件保存的是地图定位及坐标系等信 息,.tif文件保存的是具体的图像,二者必须同时提供。

 

然后弹出来的对话框中,地图数据选择WGS84,Map Grid Zone输入50,地图投影方式选择UTM,然后点击 OK:

 

如果文件导入成功会弹出下面的对话框:

 

点击确定以后,刚才制作的地图就在OZI中显示出来了,注意在地图上移动鼠标时,地图左上角的经纬度坐标会随之变化,如果这里的数值为零或者没有变化,则说明导入过程中有误:

 

    因为这张地图使用的位图文件为tif格式的,图片文件很大,会占用较大磁盘空间,OZI加载时也会比较慢,我们可以使用 img2ozf 这个软件把tif格式转换成OZI自己的ozf2(老版本)或ozf3(新版本)格式,转换后图片文件会小很多,加载速度也会快很多,特别是在制作大地图 文件时感觉很明显,具体转换过程也很容易,不详细介绍了,请自行摸索,img2ozf是一个免费软件。

 

    第五步:加入地名

    点击OZI工具条右侧的“名称”按钮,窗口右边会出现一个边栏,点击边栏上的“载入”按钮,在弹出的对话框中选择之前下载的全国地名文件 china.names

   

    然后会看到边栏下面出现了一个地名列表,地名非常之多,选中边栏中“在地图上”这个复选框,OZI会自动搜索出所有在当前地图上的地名,因为地名很多,这 个搜索过程可能需要较长一段时间,请耐心等待,以后可以单独把北京周边的地名摘出来,保存成一个点文件(.pnt),以后再加载地名的时候就很快了,具体 步骤可以自己摸索。

 

搜索完成后,点击边栏工具条中一个小红圈儿样的按钮,等待一段时间以后,地名文件就显示到左侧地图上了:

 

    到此为止,这张地图已经可以满足基本的需要了,我们可以在OZI中选择文件->保存地图为图像文件->彩色图像 把地图保存成一张bmp格式的图片,然后使用ACDSee或者Photoshop等软件转换成GIF文件或JPG文件发布到互联网上,也可以通过打印功能 直接打印出来。

 

    不过,这张地图还不够完美,其中缺少了公路、铁路、河流等信息,要想把这些数据也叠加到地图上,我们必须使用Garmin的全国详图以及GpsMapEdit这个软件。

 

第六章. 从Garmin V66 地图中提炼有用的数据信息

 

首先说明一点,生成地图的方法有很多种,除了GM、GpsMapEdit、OZI之外,还有MapSend、MicroDem等很多,使用熟练了以后,可以灵活选择,灵活定制,还可以相互搭配。

    第一步:导入地图

   

   打开GPSMapEdit(以下简称mapedit),选择菜单File->open,打开下载下来的“北京.img ”分省地图,地图扩展名也有可能是 “.mp” ,“.mp”文件是未经过编译的文本格式本件 ,也叫Polish文件,俗称毛胚版,是最原始的地图文件。“.img ”文件是mp文件经过cGPSMapEdit编译以后的二进制格式文件,二者都可以用mapedit打开。

 

   光加载一个北京地图还不够,还需要再加载一个河北省地图,点击File->add,选择“河北.img”文件,可以看到北京和河北的地图合并到一起了。

   不断放大这个地图,地图上的内容会显示的越来越精细,可以看到地图上包含了大量的信息:公路、铁路、河流、湖泊、城镇、居民区、饭店、宾馆、公安局、医院、剧场、图书馆、超市、机场、加油站、厕所、政府机关等等,应有尽有。

   对于户外来说,我们关心的主要是道路、铁路、河流、湖泊这些信息,并且最关注的是崇山峻岭之中的那些偏远地区的道路交通情况,城市中的地理信息反而不关心了,所以我们的目的就是把我们需要的数据提炼出来,叠加到刚才制作的等高线地图上。

   注意:如果你使用的是7.0或7.01版的MP文件,用mapedit打开后可能会显示一片空白,遇到这种情况不必着急,继续按照下面的步骤做。

   点击File->Map Properties ,Levels选项卡,会看到一个level列表,从level0到level4,对应不同的精度,其中level4是无法删除的,把level1到level3全部删除,只保留level0和level4,如果你的地图刚才是一片空白的话,做了这一步,应该可以看到地图在屏幕上呈现出来了。不管地图是不是空白,都要做这一步。


第七章.自制麦哲伦探险家系列GPS地图

 

第八章.Google Map的一些应用

参考资料

 

特别感谢以下网站及文章作者

 

ozi等高线等高地图制作手记(给初学者参考)  作者 geno


没有枪没有炮,我们自己造----利用公开数据制作登山参考地图  作者 Ylong


户外用大比例尺地貌图制作提纲 作者 Ylong


绿野户外活动GPS航迹及路点汇总


绿野Info GPS航迹及路点汇总


用Zulu 2000 遥感影像+公开数据做 OZI导航地图  作者 skibora


2000年6月美国奋进号航天飞机测量的全球陆地的地面高程数据 SRTM3


美国宇航局公开的三波段遥感合成图像GeoCover


自制等高线地图详细步骤 作者 出走社-小撮
http://www.cuzo.org/map1.asp

手把手教你制作最详细最准确的全城地标 Garmin中国地图v6.5应用一例   作者 snowlxy 


小胖熊的酷数码菜园 (这个网站的FTP提供超级多的好东西)


Garmin Mobile XT v4.10.80 中国大陆地图v6.6奥运加强版


自制 MAGELLAN 手持机地图项目技术文档 作者 闲人一个


Google earth卫图+Garmin最新矢量mp数据叠加制作ozi地图


自制GARMIN手持机(英文)地图  作者 土城


任我游200w自定义兴趣点的前期工作(MapSource软件一些知识)作者 maffee


国家基础地理信息系统数据下载服务


手把手教你做等高线地图 by 白马


利用现有公开数据自制等高线地势示意图的参考资料


轻松实现坐标转换
http://www.ibm.com/developerworks/cn/java/j-coordconvert/

一个地图网站


Garmin mp文件到Kml文件转换工具:Pymp2kml


Gps数据转换工具--GpsInfoShare


手把手教你做Magellan e500等高线地图 by 白马

阅读(976) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~