个性化离线百度地图的实现,瓦片下载方式

一、背景

实习公司的产品主页有一个离线的地图模块,已经实现。但是因为产品主色调是蓝黑色的,而默认的离线地图是亮色的,看起来很违和,于是被下达了想想办法的任务。

二、个性化与不个性化

这类离线地图的实现方式主要有两种:图片瓦片以及矢量瓦片。

顾名思义,图片瓦片模式下,所有地图资源都是以已经确定的图片的形式存在的,它的优点是实现起来比较简单,缺点是很固定,你的瓦片是什么样地图就是什么样。你想要多少种不同摸样的地图,就要准备多少组不一样的瓦片。

而矢量模式刚好相反。矢量模式下你地图的土地,水系,道路,建筑等等地图元素在矢量文件中都是有区分的,这给我们自定义的空间(例如你可以设置自己的土地是黑色,道路是白色,植被是xx色)。这些可以基于一组矢量文件实现。对应的,要实现这种个性化,实现起来似乎比较困难,我越没有太搞懂,下面的例子处会有稍微详细一些的说明。

例子1.默认样式离线地图的实现(百度离线地图下载制作

这个例子比较简单,操作过程中没有遇到什么问题。当你需要更大或者其他样式的地图时,只需找到相应的地图资源,然后替换瓦片文件即可。

例子2.个性化离线地图的实现(实现百度离线地图个性地图JavaScript API v3.0版

这个例子的实现相对复杂,它启动了一个tomcat程序作为辅助,似乎原理是要http请求来解析决定样式的json文本。我复现这个例子失败了。最后也没有成功。

三、最终解决

由上可知,更好的办法应该是实现API3.0的离线地图方法,这样仅靠一份矢量瓦片就可以自如地改变样式,满足要求。但是:1.我复现失败了,2.因为这样一个变色再让我们的产品多增加java,tomcat的部署,开销太大了。遂放弃矢量模式,3.离线地图已经发展了很久,实现它的api迭代了很多版本。很不幸的是,产品中用的就是一个已经淘汰了的版本“API 1.3”,要用API3.0整个功能就要完全重写。

图片模式的话,解决就特别简单了,代码完全不用动,只需要把瓦片文件替换成想要的样式的瓦片文件就可以了。这里给出一个获得自定义样式图片瓦片的方式:

1.去百度官方的个性化地图编辑器(登录百度账号),在其中找到想要的样式,并调整。(可以调整的不止颜色,还可以设置哪些元素显示,哪些不显示,哪种类型的路的粗度是多少,各种地图的名称显示不显示等。可以说是完全自定义的!)调整完毕后,在编辑器右侧点击“编辑JSON”按钮,就可以显示当前设置的JSON文本。保存起来。

2.(望远网-百度地图下载)这个网站可以通过JSON文件查看地图的样子。(虽然百度编辑器本来就可以)方法是样式处选择个性地图V2矢量瓦片,点击左侧的“编辑JSON样式”,然后把上个步骤保存的JSON文本复制进去,再按更新。(注意:笔者发现本网页的下载功能似乎有问题,并不能正确的加载主题,所以第3步要用下载器下载)

3.在上边那个网站的“地图下载工具”里找到百度地图瓦片下载工具_64_v1.6.4.zip,根据网站的教程下载。如果想要个性化的地图瓦片图片,可以在下载器的样式那里选择自定义,在下载的时候就会弹出一个窗口让你输入JSON文本,这样下载下来的就是个性化的图片瓦片了。(注意:这个网站10张以上的瓦片下载是收费的。)

 

       

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值