地图缓存技术
- 地图服务的性能需求越来越高
- 缓存技术大大提高了地图服务的性能,对用户体验也比较好
- 缓存技术降低了服务器端压力,不在需要进行动态出图
- 地图缓存或瓦块地图可以支持众多客户端并发浏览
地图缓存技术是一种非常有效的提高在线地图访问效率的方式,用空间换取时间的方式。
空间数据较为复杂
地图或者地图的某个范围会被较为频繁访问
返回客户端的地图结果相对固定
地图缓存的分类
- 栅格瓦片:地图中所有图层切分并存储为栅格格式的地图瓦片
目前使用最广、技术成熟的地图技术 - 矢量瓦片:矢量图层以矢量瓦片的形式进行切分和存储
矢量瓦片创建效率高
矢量瓦片传输和渲染速度快
栅格瓦片和矢量瓦片的对比
项目 | 矢量瓦片 | 栅格瓦片 |
---|---|---|
地图瓦片 | 将矢量数据通过不同的描述文件来组织和定义,在客户端实时解析数据完成绘制 | 预先在服务端绘制好固定的PNG或其他格式的图片集合 |
瓦片体量 | 小 | 大 |
生成瓦片效率 | 高 | 低 |
更新机制 | 持平 | 持平 |
样式修改 | 支持 | 不支持 |
前端技术要求 | 高(HTML5) | 低 |
显示差异 | 有差异 | 无差异 |
成熟度 | 一般 | 高 |
应用场景 | 特殊(移动端、风格修改) | 广泛 |
管理机制 | 持平 | 持平 |
栅格瓦片的原理与机制
-
通过分层分块生成切片文件的思路进行缓存构建,并且从坐标系、地图、图层风格以及数据范围等方面考虑了缓存更新问题。
栅格瓦片的常用类型 -
UGCV5:存储于本地磁盘目录文件
-
MongoDB:存储于MongoDB分布式文件系统
瓦片格式 | 存储方式 | 存储位置 | 支持的平台 | 分发方式 |
---|---|---|---|---|
UGCV5 | 本地磁盘文件目录 | ouput输出路径\cache\ | Linux、Windows | 可直接拷贝文件分发 |
MongoDB | MongoDB分布式文件系统 | 数据存储于指定目录,地图的切图结果为切片库中的一个切片集 | Linux、Windows | 支持在MongoDB系统间直接拷贝分发 |
分布式存储缓存
- 地图缓存存储在分布式文件系统中,提升地图瓦片的存取速度和支持的并发数
栅格瓦片的制作与使用
栅格瓦片的生产
- 瓦片地图缓存可以提升客户端地图呈现的显示效率,但是生成瓦片地图缓存也是一项耗费时间的工作。
桌面产品生成缓存 | iServer分布式切图 |
---|---|
SuperMap UGC缓存 | SuperMap UGC V5缓存 |
MongoDB | 分布式存储缓存MongoDB |
栅格瓦片的制作(一)
- 基于SuperMap iDesktop制作栅格瓦片
单任务切缓存
多任务切换存(单击多进程)
1.打开SuperMap iDesktop,加载china数据
2.在功能区选择“地图”→“制图”→“单任务”
3.弹出对话框,点击“新建切图任务”
4.在“生成地图瓦片”对话框中,设置参数
- 瓦片类型:栅格瓦片
- 层级比例尺:可依据需求进行删减
- 瓦片名称、瓦片存储的目录
- 存储类型:紧凑、原始、MongoDB
5.下一步,选择瓦片范围
6.点击“确定”,开始生成栅格地图瓦片
栅格瓦片的制作(二)
-
基于SuperMap iServer制作栅格瓦片
-
iServer分布式切图服务支持多台机器并行切图,可添加位于不同机器的多个切图节点,从而实现并行切图
-
有效避免传统单击切缓存技术的耗时长、无故障恢复机制等缺点
1.启动SuperMap iServer服务
2.进入服务管理,点击“集群”→“分布式切图服务”→“创建切图任务”
http://localhost:8090/iserver/manager/tileservice/jobs
3.分布式切图,已UGCV5缓存为例 -
切片类型:地图瓦片
-
存储类型:UGCV5,将地图按照SuperMap V5.0缓存策略切分为地图瓦片,并存储在本地磁盘,切图结果为本地磁盘的指定目录
-
比例尺方案:根据需求进行选择
4.高级参数设置 -
切片大小、图片格式
-
背景透明、自动避让等等
5.点击“创建切图任务”
栅格瓦片的发布
1.快速发布服务
- Step1:数据来源,选择要发布的瓦片类型,UGCV5
- Step2:配置数据,后缀为“.sci”或者“.inf”的文件
- Step3:选择服务的类型(服务接口类型)
- Step4:配置完成
浏览栅格瓦片服务 - 栅格瓦片的地图服务地址
http://localhost:8090/iserver/services/map-ugcv5-China01/rest/maps/China_01.leaflet
矢量瓦片的原理与机制
矢量瓦片的结构
- Fonts 矢量瓦片使用的字体文件
- Sprites 图标相关风格内容
- Styles 风格描述文件
- Tiles 矢量瓦片数据.mvt
- Sci 矢量瓦片的元信息文件
矢量瓦片的坐标系
-
地理投影(Web Mercator)EPSG:3857
-
地理投影(WGS84)EPSG:4326
-
地理投影 China 2000 大地坐标
-
北京1954坐标系
-
西安1980坐标系
-
地方坐标系
矢量瓦片的优势 -
创建效率高
-
传输和渲染速度快
-
数据和风格样式独立,可更改配图方案
-
高显示质量,能够很好地支持高分辨率显示屏
矢量瓦片的典型应用 -
预切图(多进程)
适用于静态数据(非频繁更新) -
动态生成(iServer)
适用于动态数据(频繁更新) -
实时切图(HBase)
适用于大数据
矢量瓦片的制作与使用
- 基于SuperMap iDesktop制作矢量瓦片
- 单任务切换存
1.打开iDesktop,加载China数据
2.在功能区选择“地图”→“制图”→“单任务”
3.弹出对话框,点击“新建切图任务”
4.在“生成地图瓦片”对话框中,设置相应的参数;
- 瓦片类型:矢量瓦片
- 层级比例尺:可依据需求进行选择
- 瓦片名称、瓦片存储的目录
- 存储类型:紧凑、原始、MongoDB
5.下一步,选择瓦片范围
6.点击“确定”,开始生成矢量地图瓦片
矢量瓦片的发布
1.快速发布服务
- Step1:数据来源,选择要发布的瓦片类型,UGCV5(MVT)
- Step2:配置数据,后缀名为“.sci”的文件选择服务的类型
- Step3:选择服务的类型(服务接口类型)
- Step4:配置完成
2.浏览矢量瓦片服务
http://localhost:8090/iserver/services/map-mvt-China02/rest/maps/China_02.ol3?isMvt=true