近期公司业务需求,需要使用到Gmap的地图。并且应用到了离线地图,在网上找了很多东西,也很容易找到地图离线下载工具,在下载完离线地图,使用了离线功能,可是竟然没有效果,地图没有显示,仍然显示为蓝底的提示,说没有地图切片。

   整了很久才发现,设置地图类型与下载的离线地图数据库中地图类型是有区别的。简单点说,网上的地图下载器,默认是高德的地图,在设置gmap的MapProvider的类型一定要和下载的离线数据是一样的类型。否则无法使用。

  或许有些人已经早就知道 这个,可是我在搜索过程 中,竟然 没有一个人提示这个注意事项。

   

Android 高德地图路径规划离线 高德地图离线地图管理_Gmap 离线包

这个工具,默认的下载地图类型是高德的普通地图。

     我的项目里使用的是谷歌的混合地图,所以要先把下载器的地图类型切换成谷歌的混合地图,然后再点右边的行政区域,双击地图下载对应的数据。

   下载完成后,在程序目录下有一个MapCache文件夹,里会产生TileDBv5这样一个文件夹,再下层就是en目录 ,en目录下存放的就是下载的离线数据数据库文件Data.gmdb

。并且在此特别要说明 一点的就是,加载离线地图的时候,可以只设置路径,并且路径要设置为TileDBv5的上一级目录 ,才能下载加载Data.gmdb文件的数据,才会有地图。

比如下载后得到的文件完整路径是C:\MapCache\TileDBv5\en\Data.gmdb,那么在设置 gMapControl1.CacheLocation的值就要设置为“C:\MapCache”就可以了,而不需要设置成“C:\MapCache\TileDBv5\en”。

    

Android 高德地图路径规划离线 高德地图离线地图管理_C#_02

本人使用的代码如上图所示。

    总结出来呢,就是使用gmap的离线模式,需要注意的有两个问题,一,下载地图离线包之前,一定要确定好自己下载的时候地图的类型和自己将来要使用的类型是否一致。二,加载设置离线路径的时候,只需要设置一半路径就可以了,而不是设置离线包所在文件夹。

    使用完gMAP后就有此小收获,分享出来。有用得着的互相参考一下,大神请忽略。