手绘地图简介

手绘地图顾名思义就是手工绘制的地图,比普通的地图更有观赏性和生动性,通过把特定的地点绘制出来,兼具实用和纪念性,同时更加具有可看性。一般在旅游景点有很多这种纸质版手绘地图。比如这种:

前期开发准备

1.手绘地图绘制
我们找的是一个专门做手绘地图的团队,因为这个不是纸质版地图,是要在页面上显示的,并且在地图上面要有对应的点位标记,所以让他们以腾讯地图为基础在上面进行一比一绘制,点位,道路,河流尽量要对准,不然在后期开发的过程中,点位的偏移会很大。地图开发完成之后,以一张png图片给我们,我们通过瓦片地图切割工具对图片进行切割.这里引入一下腾讯地图对瓦片地图的解释:地图在放大缩小时会显示不同精度的地理内容,为了加载速度考虑,每个缩放级别的一幅完整地图,会切分为若干个正文形小块,在显示时按需加载,地图放的越大,幅面面积也就越大,被切分成的小块就越多,这个小块称之为地图瓦片。

2.加载完瓦片地图
使用切片工具对图片进行切片之后会对每个瓦片进行编号,一般会有三个变量XYZ,以腾讯地图为例左上角为原点,x表示列号,y表示行号,z表示缩放等级。详细了解可以去这里:瓦片(Tile)地图原理

3.微信小程序中使用
通过webview载入,记得给webview设置一个时间戳哦~~

采用的方案

1.我们刚开始用的是腾讯地图JavaScript API GL,因为这个里面有自定义栅格图层的api,使用起来十分方便

    getTileUrl: function (x, y, z) {//拼接瓦片URLvar url='http://localhost/javascript_gl/sample/img/tilelayer/' + z + '/' + x + '_' + y +'.png' ;return url;},tileSize: 256,  //瓦片像素尺寸minZoom: 14,    //显示自定义瓦片的最小级别maxZoom: 16,    //显示自定义瓦片的最大级别visible: true,  //是否可见zIndex: 5000,   //层级高度(z轴)opacity: 0.95   //图层透明度:1不透明,0为全透明map: map,       //设置图层显示到哪个地图实例中
});

不过有一个问题是,在项目中点位过多的情况下,每次切换不同点位是,都需要清除上一次点位,这时候就有问题了,上一次的点位在多次切换之后会清除不了


咨询过客服之后会到的回复是:
以上问题在pc端是正常的,所以我觉得和我在小程序中使用有问题,点位过多,占用内存过大的情况下,在小程序里面可能会出问题
最后不得已换了一种暴力的方法,在map组件上面通过设置v-if,每次切换点位都重新渲染一次map,这样又会带来一个新问题那就是随着切换次数变多,地图重新渲染次数也变多,从而会造成webview的重新加载(个人猜测这也是由于小程序村内占用过大引起的),体验也十分不友好!

最终还是放弃了使用腾讯地图,选择了leaflet.js,首先Leaflet 是一个为建设交互性好适用于移动设备地图,而开发的现代的、开源的 JavaScript 库。代码仅有 33 KB,但它具有开发在线地图的大部分功能,API文档也相对比较容易,就是没有中文版本的,不过这都不是事。


使用完之后 体验确实要好上不少
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tvS6SkNT-1620957362100)(https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/4b4949f2aa344183848dafd8f90511fa~tplv-k3u1fbpfcp-watermark.image)]

总结

腾讯地图版本:想要看的可以去小程序搜索 <遇见鸬鸟>

leaflet.js版本的可以去这里看:http://zjh_leon.gitee.io/leaflet_maps/

项目本身难度不大,就是第一次接触这种新鲜玩意可能需要时间理解,如果有同学要做类似的移动端项目,推荐使用leaflet.js,体验好,性能优,坑也少。

H5手绘地图(自定义栅格图层)踩坑相关推荐

  1. JAVA发布栅格图层_基于 WebGL实现自定义栅格图层踩坑实录

    以下内容转载自totoro的文章<WebGL-Y轴翻转踩坑实录> 作者:totoro 链接:blog.totoroxiao.com/webgl-flipY- 来源:blog.totorox ...

  2. 高德地图自定义点标记踩坑

    先看一下要做的效果 如上图所示,箭头所指示的就是我们要进行的点标记, 先说一下我做的这个步骤 1.上图所指示的坐标当时是用墨卡托坐标,要将其转成高德地图坐标表示的经纬度的形式,才能在高德地图中表示出来 ...

  3. 景区自定义手绘地图叠加

    地图上嵌套手绘地图--实现效果: 这里用到了地图的图层 简单一个完整Demo代码 <!DOCTYPE html> <html lang="en"><h ...

  4. 手绘地图制作的关键点之“图层覆盖”

    前面介绍了<景区手绘地图(电子地图.智慧导览系统)如何制作>以及<景区手绘地图的绘制流程>,接下来介绍一些手绘地图制作的关键点. 手绘地图最关键的一点,就是把手绘地图准确的覆盖 ...

  5. 如何制作手绘地图?如何将图片图层精确地对准在地图上?

    最近大家常常在问,如何制作鼓浪屿手绘地图,如何将气象图层叠加在高德地图上啊? 其实地图上的研发量很小,几行代码就可以搞定. 关键是在图片绘制上,有较高的要求. 下面就用简单粗暴的方法来实现,如有不妥之 ...

  6. 自定义View进阶-手绘地图(二)

    前一篇说到了使用自定义ViewGroup实现手绘地图,没看过的可以移步,因为本篇会用到上一篇的部分内容 自定义View-手绘地图(一) 和前一篇一样,实现图片的操作经过同样的操作.onMeasure, ...

  7. 使用leaflet插件绘制手绘地图h5

    手绘地图简介: 手绘地图顾名思义就是手工绘制的地图,比普通的地图更有观赏性和生动性,通过把特定的地点绘制出来,兼具实用和纪念性,同时更加具有可看性. 前期开发准备: 手绘地图绘制. 需要一个专门做手绘 ...

  8. 手绘地图 html5,景区手绘地图定制小程序h5智慧语音导览水上乐园社区

    最近画了无锡清名桥景区的手绘地图,这个项目和上一篇文章 是同一个甲方委托我们做的,有需要的可以随时联系哦. 清名桥,原叫清宁桥,位于江苏省无锡市南门外的古运河与伯渎港交汇处,飞架运河两岸.在清名桥南侧 ...

  9. 微信小程序--放入个性化手绘地图具体步骤(腾讯地图)

    微信小程序–放入个性化手绘地图具体步骤(腾讯地图) 前言:小程序中想要实现个性化手绘地图需要通过H5嵌入的模式进行实现. 1.首先需要一个腾讯地图的账号(微信登录即可),然后选择个性化地图进入(htt ...

最新文章

  1. 一款直击痛点的优秀http框架,让我超高效率完成了和第三方接口的对接
  2. [-] Handler failed to bind to x.x.x.x:port排错
  3. python设计大赛_GitHub - FatBallFish/Multimedia-Python: 多媒体设计大赛-Python后端
  4. Android热修复Tinker接入文档
  5. cr3格式是什么意思_尼康DX镜头是什么意思
  6. python复杂网络分析_科学网—复杂网络分析库NetworkX学习笔记(3):网络演化模型 - 闫小勇的博文...
  7. 实验四------实验十二
  8. 幅频特性曲线的绘制(2)
  9. IMG镜像写盘工具physdiskwrite,用于MikroTik RouterOS的安装(Windows)
  10. Ace教你一步一步做Android新闻客户端(四) 优化Bitmap大法
  11. word文档分页符与分节符区别
  12. Ubuntu查看硬盘序列号
  13. 福州太冷?那就快来这些地方!不仅有威廉王子的蜜月圣地,也有贝克汉姆的度假天堂!全部免签or落地签...
  14. 免费 在线转换 音频,图像,PDF,视频,文档等格式转换
  15. Redis 客户端哪家强? Lettuce手下见真香!
  16. 关于原生ajax的那些事
  17. 〖2023·新星计划·第四季〗开启,Python赛道火爆预热中~ 欢迎小伙伴们报名~
  18. win8 计算机内存不足怎么办,如何解决Win8电脑内存不足的问题?
  19. .Net IIS 内存溢出(System.OutOfMemoryException)
  20. 揪出Android流氓软件

热门文章

  1. 8月2日 jquery
  2. c语言 数组 随机数 初始化
  3. 华硕飞行堡垒进入bios
  4. 大数据进阶(二):数据可视化和分析工具推荐
  5. 信号的Fourier分析的matlab编程
  6. 估值冰火两重天 互联网金融巨头“天价”冲刺上市
  7. elementui表格自定义序号
  8. 为了甩锅,我写了个牛逼的日志切面!
  9. 用EDA处理蛋白质数据小记
  10. 用python编写西门子plc程序_snap7读写西门子plc1200步骤(python)