国内某些地方,高德卫星地图更新的时间比较慢,例如郊区(城区还是很新的,跟google地图一样),天地图,卫星地图整体更新很慢,但是**郊区会同步更新。两个地图各有千秋(虽然最好的还是谷歌地图,基本上都一起更新了,无奈有防火墙,用不了)。

前面一篇文章,讲了mission planner加载高德地图。今天就讲一下,加载天地图。

效果如下图所示。

android接入天地图 手机天地图_高德地图

高德地图的坐标纠偏算法,和谷歌是一致的,都是WGS84,再加上GCJ02。所以高德地图足够了。

但是就是前面所言,有些郊区,卫星地图更新很慢,像我们这,有的地方,还是十几年前的,相比而言天地图更新的范围还行。
所以尝试用天地图。天地图用的是2000坐标系,国标2000坐标系与WGS84坐标系偏差不大,因为CGCS2000坐标系与WGS84坐标系的原点、尺度、定向及定向演变的定义都是相同的,参考椭球的参数略有不同而已。相同的坐标点,在CGCS2000与WGS84下,经度是相同的,只在纬度上存有0.11mm上下的区别,可以忽略掉。
简而言之,就是WGS84坐标系,不需要转化了。

Mission Planner用的是GMAP.NET控件,所以,在Mission planner里面,写代码。WGS84坐标系这个源码里就有。

从github上,下载mission planner源码,找到下面地图代码位置。
…\MissionPlanner-master\ExtLibs\GMap.NET.Core\GMap.NET.MapProviders

然后创建天地图文件夹,在里面写代码即可。

android接入天地图 手机天地图_卫星地图_02


写了代码,编译。

编译的话,只编译GMAP.NET这个就可以了。
要编译mission planner整个代码,还是有困难的,要配置一些东西,B站有up主视频介绍的有。

编译时候,只需要到这个GMAP.NET这目录下,打开它的工程,编译就可以啦。

android接入天地图 手机天地图_android接入天地图_03


打开工程后,如下图所示。选择Release,生成。

android接入天地图 手机天地图_ide_04


将生成的GMap.net.dll拷贝到mission planner安装目录替换掉。

android接入天地图 手机天地图_经验分享_05


然后运行Mission planner即可。

————————

前面没有讲怎么写代码。

代码拿里面现有的其他地图的代码改一改就好了。

但是需要注意的是,天地图需要申请Key,Key是免费的,注册天地图官网,进去有开发者资源(记得申请浏览器端密钥,不要选择服务器端密钥。)。

android接入天地图 手机天地图_ide_06


网页是这个。

里面会讲怎么调用。

http://lbs.tianditu.gov.cn/server/MapService.html网页最地下,有个调用说明,这个很重要。我们写天地图,参考其他地图时候,改url改这里就行了。

android接入天地图 手机天地图_卫星地图_07


地图调用里面,都有如下的代码。我们按要求替换下,但是每个地图,格式有点不一样。

虽然不一样,但是有几个基础的是不变的。例如x y z是不变的。x y就是经纬度,z就是zoom系数。

android接入天地图 手机天地图_经验分享_08


上面网页出来的url路径,是没有文字标注的。也就是纯卫星地图。那么,要地图上有文字,还需要天地图上,另一个网页的说明。

android接入天地图 手机天地图_高德地图_09

其实,就是url里,换个关键词。标记,把之前瓦片地图的img,换成cia。

android接入天地图 手机天地图_android接入天地图_10


img就是下图画红圈的地方,统一换成cia就是标注图,只有标记。一般配合卫星地图、矢量图用。

android接入天地图 手机天地图_卫星地图_07


用法比较简单。

标注图 叠加 卫星地图,就是混合地图。

怎么叠加,主要是以下语句,有个overlays。

android接入天地图 手机天地图_高德地图_12


1,创建一个卫星地图的provider。

2,创建一个标注图的provider,在这卫星··个provider里面,写个如上图的语句,把卫星地图,直接overlay就可以了。

说白了,就是PS的图层的概念,标注图在卫星图上面,就形成的混合地图。

由于天地图需要个人申请API,所以我就不上传代码了。大家也不需要找我要,直接那其他地图的改就行了。我只是尝试,并不难。

注意事项,前面已经说明了。
1,申请key
2,瓦片卫星地图的url
3,瓦片标注图的url
4,overlay 卫星地图、标注地图。
5,注意那个guid,这个guid不是自己随便写的,应该是有工具可以生成的,没有的话,就把其他地图的guid拿来用,把不用的地图,删除掉。