最近发现高德的瓦片服务不稳定,貌似偶尔会被拉入黑名单,导致瓦片残缺,哎,贼难受,我们怎么办呢?那换掉 maptalks 能解决实际问题吗?
需求
需要在地图上显示 3D 建筑,项目中已有成熟的 Three 绘制场景,可以看出有 3 个关键要求
- 显示地图
- 3D 能力
- 最好能直接使用 Three
可选技术选型
地图引擎技术选型
- maptalks
- mapbox
- Leaflet
- OpenLayers
目前地图开始支持 3D 能力,比如高德,但是现有的 THREE 场景必须改成高德需要,迁移成本高,而且日后开发成本也高,如果有要迁移地图源的需求,那真是要了命了
地图情况
地图数据来源支持情况
- maptalks:XYZ 瓦片服务
- mapbox:非开源且收费,内置地图服务,数据来源 OSM,而且对外提供 XYZ 瓦片服务、静态图片服务等,这是个宝藏
- Leaflet:XYZ 瓦片服务
- OpenLayers:内置 OSM、Bing、MapBox、Stamen 以及 XYZ 瓦片服务
3D 能力
3D 支持能力
- maptalks:提供 WebGL 和 three 插件直接接入
- mapbox:提供 3D 绘制能力
- Leaflet:简单翻阅了 doc,好像没有 3D 能力
- OpenLayers:没有 3D 能力
maptalks
由此来看,maptalks 确实是目前最合适的解决方案,但 X/Y/Z 的瓦片服务却让人难受,如果高德和百度不支持,简直就是夭折了。
这里有个 repo 收集了一些国内外的瓦片支持服务,传送门,但亲测高德会存在拒绝访问的情况。
本想借助后端,将瓦片进行缓存,从而缓解该情况,但被数据组否定,言之:风险太高。
社区有人说百度的服务比较稳定,与此同时,意外发现百度旧版自定义服务地址,发现请求中是需要带上 ak 的,不知道是否会稳定一些,虽然自测不带 ak 也是能正常请求到瓦片的。
希望有效哇!!!