从零开始实现微信小程序手绘地图(无需地图商KEY)
一、基础知识1.瓦片地图原理瓦片地图Tile Map是一种将大范围地理空间数据切割为若干小块瓦片的地图呈现技术。每个瓦片通常是正方形图片如256×256像素按层级Zoom Level、行号、列号组织通过拼接显示完整地图。这种技术能高效加载和渲染大尺度地图广泛应用于Web地图服务如Google Maps、OpenStreetMap。地图数据按预设比例尺分为多个层级如0-18级层级越高细节越丰富。每个层级将地图划分为网格每个网格对应一个瓦片。客户端根据当前视图范围和缩放级别动态请求所需的瓦片服务器返回对应瓦片数据前端拼接显示。知识链接瓦片地图服务与地图瓦片原理-CSDN博客2.瓦片地图的优势高效加载仅请求可视区域瓦片减少数据传输量。多级缩放平滑切换不同细节层级。缓存友好瓦片可被浏览器或CDN缓存提升重复访问速度。3.leafletwx微信小程序插件介绍leafletwx是leafletjs的微信小程序版是一款交互式地图框架。具有简洁的 API Leaflet 支持大多数地图提供商如 高德、百度、腾讯、天地图、OpenStreetMap、Google 等的WTMS/WMS地图服务并允许用户添加自定义图层、标记、弹出窗口和其他交互元素。leafletwx插件开发文档地址leafletwx开发文档leafeltwx插件开发示例leafletwx开发实例二、从零开始搭建手绘地图微信小程序本章节以高德坐标系为例1.将手绘地图图片切成瓦片使用免费的QGIS进行切片教程地址如何将手绘地图切成瓦片2.将瓦片目录拷贝到服务器的静态目录使用QGIS切图后会生成如下这种目录该目录时典型的WTMS目录第一层目录是瓦片的zoom层一般是0~18级第二层目录时x方向偏移第三层目录时y方向偏移。使用QGIS切图后生成的目录将所有目录拷贝到静态服务器静态文件目录例如media目录的tiles目录下假如当前服务器静态文件访问URL为“https://localhost:8000/media/tiles”对应瓦片的访问路径为“https://localhost:8000/media/tiles/{z}/{x}/{y}.png”其中“{z}”、“{x}”、“{y}”为占位符leafletwx框架会计算显示位置对应的瓦片的z/x/y值将占位符替换掉获取到指定的瓦片图片。3.使用leafletwx加载切好的瓦片1、下载leafeltwx插件开发示例leafletwx开发实例2、打开leafletwx开发文档点击添加插件。leafletwx插件开发文档地址leafletwx开发文档3、使用微信开发工具导入下载后的代码。4、将导入后的工程APPID改成自己的。5、依照下图将高德地图中的URL地址改成自己的“https://localhost:8000/media/tiles/{z}/{x}/{y}.png”6、点击进入高德地图即可看到自己的手绘地图图层三、常见问题1、已成功添加插件提示没有注册。解决方法app.json注册插件时将“plugins”紧跟“page”后不要将“plugins”放到app.json的最后。