Better

Ethan的博客,欢迎访问交流

why choose maptalks and it's limitation

最近发现高德的瓦片服务不稳定,貌似偶尔会被拉入黑名单,导致瓦片残缺,哎,贼难受,我们怎么办呢?那换掉 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 也是能正常请求到瓦片的。

希望有效哇!!!



留言