基于OpenLayers实现离线地图
1 点赞
0 条评论
2801 次浏览
发布于 2022-07-12 11:38
在前端需求里实现地图相关功能时,我们常常可以使用百度地图、高德地图、谷歌地图、天地图等相关在线地图服务及api快速实现地图相关功能,但是对于有些客户只能使用内网不能提供外网的时候,以上地图服务就不能使用了,这个时候就需要用到离线地图服务。
地图的工作原理
一幅精确到街道级别的世界地图图片宽度为数以百万计的像素,由于这些数据太大了,从而导致无法一次下载并且在内存里也无法一次都hold住。实际上,Web地图由许多小的正方形的图片组成,这些小图片称作瓦片。瓦片的大小一般为256*256像素,这些瓦片一个挨一个并列放置以组成一张很大的看似无缝的地图,如果我们想看到更多的地图细节,如想了解国家轮廓级别的地图与街道级别地图的不同,可以使用不同的缩放级别达到目的。缩放级别越高,显示地图的物理尺寸和细节表现也会相应增加。
为了组织如此多的地图瓦片,Web地图使用了一个简单的坐标系统。每一个瓦片都有一个z坐标来表示其缩放级别,还有一个x坐标和一个y坐标用来表示该瓦片在当前缩放级别下的网格内的位置,如:z/x/y。
下载瓦片资源
下载 Offline Map Maker 软件并安装。
选择ArcGis类型的地图,选择缩放级别以及经纬度范围
图示为中国地图大致范围
选择保存位置点击start开始下载
基于vue2实现OpenLayers
OpenLayers的npm包名为: ol
安装
npm i ol -S
Map组件:
Tile瓦片组件
View组件
Overlay覆盖物组件
使用
效果图
说明
说明这里主要使用中国地图5-9缩放级别,如果需要其他地图数据下载相对应的资源即可
OpenLayers 文档 https://openlayers.org
"赞助我们,我们才能做的更多&更好"
赞助支持
还没有评论
写下你的评论...
最热文章
使用dart-sass替换node-sass
5191 浏览 · 0 评论
浏览器后退跳转到指定的页面
3866 浏览 · 0 评论
好玩的CSS3(3)-- 翻转(旋转正反两张)图片
3860 浏览 · 0 评论
Flutter适配夜间模式
3611 浏览 · 0 评论
pc端常用电脑屏幕分辨率尺寸适配
3570 浏览 · 0 评论
最新文章
js通过扫码枪快速录入的实现
406 浏览 · 0 评论
使用 WebSocket 实现你画我猜实时绘图
745 浏览 · 0 评论
基于code-server部署自己的云端vscode
2871 浏览 · 0 评论
支付宝动态收款码生成自定义金额及备注
2863 浏览 · 0 评论
使用 nohup 命令将程序挂载在后台执行
1959 浏览 · 0 评论
基于OpenLayers实现离线地图
2801 浏览 · 0 评论