【教程】如何使用Global Mapper 转换纸质地图或图片为标准地图

地图加加的使用经验、技巧以及问题处置等,和其它喜欢地图加加的朋友一起说说地图加加的酸甜苦辣咸。

【教程】如何使用Global Mapper 转换纸质地图或图片为标准地图

帖子Zax » 2014-08-13 7:27

从2.0开始,地图加加即支持图片叠加层,您可以直接将图片作为地图导入到地图加加,只需要指定一个长方形的显示范围(东,南,西,北的经纬度),即可将图片拉伸到这个区域进行显示。当然,您也可以先在Google Earth中调整图片叠加层位置,然后导出为KMZ,再导入到地图加加,这样可以不用手工输入经纬度范围。

然而,上面的方法只适用于图片本身采用标准投影(地图加加支持的投影)如Web墨卡托或经纬度投影,如果图片采用了某些特殊的投影,或者完全不遵从任何投影,只是随手画的,这时如果只依靠4个边界的坐标拉伸到显示区域,就会出现图片内部根本无法精确对齐,或者图片存在旋转角度等问题。

此时,需要在图片上设置更多的校准点,将其和标准地图上的经纬度坐标进行校准,以此转换该图片所有像素到标准(常规)的投影模型下。以便在地图加加或者其它地图工具中查看。

要实现多点校准这一复杂转换,需要利用Global Mapper软件(以下简称GM)。

下面,将以一个骑行线路图为例,介绍如何使用GM转换一张图片到Google标准投影(Web墨卡托投影)下。

图片和软件准备
首先将图片扫描或复制到电脑中。下面的图片即为我们要处理的原始图片,可以看到这是一张经过旋转和变形的图片:
图片

之后请自行在网络上搜索并安装Global Mapper,本教程将以GM版本号14.1.0 为例:
图片

第一步:添加在线参考地图
校准前,建议在GM中添加一个基础地图,用于比对和查找标准坐标。如果您已经有添加过参考地图,或者有其它的标准地标集用于比对,或者有所有需要校准的点的精确经纬度坐标,可以跳过此步骤。

本教程中我们以天地图全国道路地图作为我们的校准参考地图。

注意:此地图使用Web墨卡托标准投影,没有坐标偏移,也就是说,使得最终转换出来的图片也是没有偏移的。如果您需要校准转换出来的图片使用偏移坐标,例如希望在地图加加中和其他偏移地图一起显示,请改用另外的带偏移的地图进行校准,例如高德地图、腾讯地图、谷歌中国道路地图等,添加方法类似。

天地图全国道路地图实际分为2个图册,第一层是底图(色块和道路),第二层是文字(地标)。
我们将分别进行添加,首先添加“天地图-底图”:

选择File菜单中的"Download Online Imagery/Topo/Terrain Maps...",开始添加一个在线地图:
图片

点击“Add New Source"添加一个地图源:
图片

选择地图源的类型,GM支持7种类型的地图,这里选择“Google Maps Tiles”即可(绝大多数地图都使用此类型,除了使用经纬度投影的天地图省图)
图片

输入天地图-底图的URL下载规则,您可以直接将MOBAC或者地图加加的URL字符串直接拷贝,并将其中的{$x}, {$y}, {$y} 修改为%x, %y, %z 即可。如本例的URL规则为:http://t0.tianditu.com/DataServer?T=vec_w&X=%x&Y=%y&L=%z
然后请确认下“Native Projection Of Source”原生投影模型,选的应该是“Default(Web Mercator)”即Web墨卡托。
图片

点OK确认后,输入地图源的名字(Source Name),并选择一个目录保存,您可以点击“Add Category”创建一个自己的分类:
图片

点OK确认后,回到地图源选择界面,选择刚刚创建的“天地图全国道路-底图”地图源,点击右侧的OK按钮,即可将该地图添加到显示区显示。
图片

重复上面的步骤,添加“天地图-文字层”的在线图源,其URL规则为:
http://t0.tianditu.com/DataServer?T=cva_w&X=%x&Y=%y&L=%z

完成后,点击GM的“Open Control Center”控制中心按钮,可以看到所有当前图层。刚才添加的2个在线地图图层应该在列表中。您可以通过右侧的上下移动按钮修改层叠顺序。注意:这里列表的顺序和显示顺序是反的,即列表在最上面的,显示到最下层。
图片

此时,如果您浏览地图,就会发现天地图地图查看和浏览都非常非常慢,这其实是因为天地图自己的“投影模型”(Native Projection)和GM显示区域当前的“投影模型”(可以在GM右下角的状态栏中查看)不匹配,造成每个小图片显示的时候都要首先进行投影转换。解决方法是:将GM显示区域的投影模型设置为和天地图在线地图源投影模型完全一样即可,即使用Google的Web墨卡托投影(ESPG:3857)。

点击GM的“Configuration”设置按钮,选择“Projection”投影选项卡,将投影设置为Mercator(墨卡托),将Datum基准设置为GOOGLE MAPS,即可。
提示:因为投影模型经常需要设置,为了方便,建议您设置一次后,使用“Save To File”保存这个投影到文件,下次就可以“Load From File”从文件直接加载,而不要去找了。
图片

对于上图中的Web墨卡托投影,如果您绝对列表中查找过于繁琐,又没有保存到文件,可以点击“...From EPSG”按钮,然后直接输入Web墨卡托的EPSG编号,即:3857,点击OK后,即可设置为Web墨卡托投影。
图片

再次浏览天地图,您会发现没有了投影转换后,显示速度会快很多。

第二步:校准图片

选择File文件菜单中的“Open Data Files(s)”,并选择上面准备好的图片打开。此时,GM会提示您是否进行校准,点击“是”(Yes)开始手工校准。
图片

校准前,我们需要设置控制点的投影模型(GCP Projection),或者说图片控制点以外的其他区域的投影模型。
GM的校准会保证所有用户指定的控制点都精确转换到用户指定的坐标点,但是控制点毕竟是有限的,两两控制点之间的图片区域,使用何种逻辑转换到最终的地图中,就是由“GCP Projection决定”。为了使得转换结果尽可能的精确,应该尽量选择一个接近图片自身投影的投影模型。
我们例子中的图片应该是从标准网络地图来的,所以我们这里选择网络地图最常使用的Web墨卡托投影:
图片

您也可以用EPSG 3857来快速设置为Web墨卡托投影:
图片

如果你的地图是完全手绘的,希望在转换时,控制点之间的空白区域采用线性拉伸的方式转换,可以直接使用默认值,即经纬度投影:
图片

接下来,我们需要添加若干校准点。
首先在“Zoomed View”图片预览区,点击一个图片上要校准的点;
然后在“Reference Images”参考图预览区,点击一个标准地图上的点;
如下图所示,添加的是一个“淮安”在图片上的点和标准地图上的点:
图片

点击“Add Point to List”即可添加这一校准点。
此时会提示输入一个名称,可以任意输入后确定。
图片

重复上面添加校准点的步骤,添加更多点用于校准点。

对于校准点位置的选择,可以选择明显的地标(本例)、岔路口、十字路口、河流或界线的拐弯点等,便于在2个地图中都容易找到的地方。
对于校准点多少的选择,这个根据情况灵活处理。如果原始图片本身已经是非常标准的地图,例如直接从Google地图截屏得到,则只需要添加左上和右下两个点即可,如果图片和标准地图差异越大,则应该尽量增加校准点的数量,从而保证最终输出尽可能准确。当然,校准点太多有时也会适得其反,造成计算错误。这个可能需要多些尝试。

本例中我们以一共添加了9个校准点,均匀分布在我们感兴趣的地图区域中,如下图所示:
图片

提示:您可以弹出窗口的File菜单中的保存和载入功能,来保存所有当前校准点(GCP),便于下次对相同或相似的地图进行类似转换。
您也可在GCP列表中选中多个校准点,然后点击“Delete”删除这个点。

所有校准点确定后,点击OK,图片即会被校准,并显示到地图上,如下所示:
图片
可以看到,图片已经被正确旋转和拉伸,以满足所有的校准点。

要查看校准结果是否精确匹配,建议您将图片图层的透明度设置为70%或者更小,这样就可以查看图片和标准地图的重合情况了。

图层透明度的设置如下所示:
图片

如果对校准结果不满意,可以在图层列表(Overlay Control Center)中对图片图层点击右键,
并选择“RECTIFY - Modify Layer Position/Projection”,对其进行二次校准。
图片

注意:二次校准不是以原始图片为基础,而是以已经校准了的图片为基础,所以建议只用于微调。因为多次校准造成图片质量下降,如果初次校准后效果很不好,建议还是关闭校准后的图层(Close Overlay),再重新打开图片进行重新校准。上一次的校准点可以先保存到文件,再在下次载入即可。

校准完成后,在图层列表中去关闭掉参考用的“天地图”等图层,使得屏幕只保留校准后的图片,以便于之后导出:
图片

第三步:导出校准后图片
校准完成后,为了在地图加加中使用,您可以将图片导出为KMZ图片叠加层,也可以导出为MBTiles格式的离线文件。
关于导出和地图加加中导入的更多介绍,可参考:使用Global Mapper导出地图到地图加加(iOS)以及相关投影设置

这里不在对导出进行详细介绍,只对KMZ导出作简单截图说明:

导出KMZ

首先在File文件菜单中选择:Export > Export Web Format
图片
(注意:其实选择Raster/Image Format也可导出KMZ,是一样的)

格式选择"KML/KMZ", 如下
图片

然后再导出参数的Export Bounds中,点击Draw a Box...并制定一个导出区域。
当然了,也可以用默认区域,或者手工输入导出区域的经纬度坐标
图片

然后在KML/KMZ Options参数中设置“采用间距”(决定图片大小和清晰度)
勾选“Create Compressed KMZ File”创建KMZ。
点击OK,并选择文件名后,即可导出KMZ
图片

之后您可以在地图加加中导入KMZ查看,也可以在Google Earth中导入KMZ查看,如下所示:
图片
图片
Zax Zeng
Duwei Technology
头像
Zax
★★★★★
 
帖子: 1210
注册: 2011-07-27 0:54

Re: 【教程】如何使用Global Mapper 转换纸质地图或图片为标准地图

帖子y82824 » 2014-08-13 8:17

抢沙发,原来是在认真的制作教程,辛苦加加团队了,有时间我会照着这教程认真做一遍的。 ;)
向地图加加团队请教MOBAC和Oruxmaps图源问题..
头像
y82824
★★
 
帖子: 23
注册: 2014-07-23 0:59

Re: 【教程】如何使用Global Mapper 转换纸质地图或图片为标准地图

帖子jiulin » 2014-08-14 9:37

版主你好 请问谷歌卫星地图怎么用gm配置
头像
jiulin
★★
 
帖子: 17
注册: 2014-04-11 5:58

Re: 【教程】如何使用Global Mapper 转换纸质地图或图片为标准地图

帖子Zax » 2014-08-14 11:59

jiulin 写道:版主你好 请问谷歌卫星地图怎么用gm配置


http://mt0.google.cn/vt/lyrs=s@999&hl=z ... src=app&x=%x&y=%y&z=%z&s=Galile

注意1,上面连接的是google中国地图服务器,使用的是偏移坐标哦!!也就是校准出来的地图坐标是偏移的哦!!!!!如果要无偏移的地图,建议天地图卫星,或者上面的URL修改为https://mt0.google.com/.....,这个连接的是国外谷歌服务器,无偏移,但是需要VPN翻墙才能访问。

注意2,添加后记得把GM显示区的投影模型设置为Web墨卡托,否则刷新非常慢。
Zax Zeng
Duwei Technology
头像
Zax
★★★★★
 
帖子: 1210
注册: 2011-07-27 0:54

Re: 【教程】如何使用Global Mapper 转换纸质地图或图片为标准地图

帖子jiulin » 2014-08-15 7:57

非常感谢,请在发一下文字层的地图源吧。
头像
jiulin
★★
 
帖子: 17
注册: 2014-04-11 5:58

Re: 【教程】如何使用Global Mapper 转换纸质地图或图片为标准地图

帖子jiulin » 2014-08-15 8:25

再请问下,如果我要把这个在中国偏移了的坐标的地图下载到手机上,那地图加加上的地图投影模型是不是该选web墨卡托(中国),而没有偏移的则选择web墨卡托(标准)。
头像
jiulin
★★
 
帖子: 17
注册: 2014-04-11 5:58

Re: 【教程】如何使用Global Mapper 转换纸质地图或图片为标准地图

帖子Zax » 2014-08-15 10:36

jiulin 写道:再请问下,如果我要把这个在中国偏移了的坐标的地图下载到手机上,那地图加加上的地图投影模型是不是该选web墨卡托(中国),而没有偏移的则选择web墨卡托(标准)。


非常正确! 虽然选择错误也可以显示,但是当前位置什么的显示上去就会偏移了。

此外,由于加加目前还不支持针对地图的投影模型“转换”,所以,如果选了一种投影,则当前可见的地图必须都是这个投影。
也就是说,同一时间,所有显示的地图,投影模型必须相同。
Zax Zeng
Duwei Technology
头像
Zax
★★★★★
 
帖子: 1210
注册: 2011-07-27 0:54

Re: 【教程】如何使用Global Mapper 转换纸质地图或图片为标准地图

帖子Zax » 2014-08-15 10:43

jiulin 写道:非常感谢,请在发一下文字层的地图源吧。


谷歌文字透明层的:
http://mt0.google.cn/vt/imgtp=png32&lyrs=h@900000000&hl=zh-CN&gl=CN&src=app&x=%x&y=%y&z=%z&&s=Galileo

其实关于地图配置您只要找找MOBAC的地图源配置文件,将{$x}, {$y}, {$z}分别替换为%x, %y, %z 即可。
Zax Zeng
Duwei Technology
头像
Zax
★★★★★
 
帖子: 1210
注册: 2011-07-27 0:54

Re: 【教程】如何使用Global Mapper 转换纸质地图或图片为标准地图

帖子crazyq » 2014-08-21 10:43

请问Google Maps (SPHERE RADIUS 6378) 和 WGS84两个datum实际上是不是一样的?
头像
crazyq
★★
 
帖子: 5
注册: 2014-07-21 9:08

Re: 【教程】如何使用Global Mapper 转换纸质地图或图片为标准地图

帖子Zax » 2014-08-21 14:50

crazyq 写道:请问Google Maps (SPHERE RADIUS 6378) 和 WGS84两个datum实际上是不是一样的?


虽然我们对GM软件的了解不多,但是这两个基准应该是不同的:

Google/Bing/Open Street等地图使用的投影基准虽然也基于WGS84的,但采用的椭球参数(半径)并不一致。这种投影被称为Web墨卡托投影,是将标准墨卡托的“椭球”视为半径恒定的“正球”,得到的投影。该投影对应EPSG编号为3857(以前也又被称为900913)。在GM中,选择投影为:Mercator,基准为: Google Map,才能准确描述这种投影转换,您也可以在GM中直接输入EPSG编号3857来输入。

GM中:
WGS84 基准采用的椭球(地球)为:长轴:6378137.000,短轴:6356752.314,扁率:298.2572236
Google Map 基准采用的椭球(地球)为:长轴 = 短轴 = 6378137.000,为一个正球

GM中如果选:Mercator + WGS84基准,对应的应该是标准Mercator投影,而不是Web墨卡托哦。
选Lat/Lng + WGS84 对应标准经纬度投影。

不过,在校准时,如果您已经定死了4角坐标,图片区域又比较小,则WGS84和Google Map基准的差别可能肉眼无法分辨,区域越大,或者说校准点间的距离越大,差别越明细。您可以试试将一张区域较大的地球只按4个角进行校准,通过设置透明度,就可以比较他们在“被理解为”不同基准或投影下,对应的坐标差异了。
Zax Zeng
Duwei Technology
头像
Zax
★★★★★
 
帖子: 1210
注册: 2011-07-27 0:54

下一页

回到 地图加加 - 官方论坛

cron