难点

公司项目中需要展示地图, 且地图需要兼容国外地区, 考虑到时效性, 需要使用国外平台的地图数据, 比如谷歌地图或者必应地图, 主流的是谷歌地图

谷歌地图的开发平台也有提供对应的 SDK 方便开发, 但需要注册谷歌云账号, 注册又需要香港信用卡之类非常麻烦, 而且因为不可抗力因素, 访问谷歌地图的数据存在网络不稳定的问题

解决方案

在不能实现使用谷歌地图 SDK 的情况下, 就需要一个类似的地图框架实现地图交互, 同时还能使用外部的地图数据, 比如 maptalks, leaflet 等, 这里我选择 maptalks

然后就是外部数据的地图数据从哪里来, 需要使用国内的第三方工具, 针对这种需求, 国内有相应工具理所当然, 有付费的, 也有免费的, 这里不展开讲了

瓦片托管服务

假设已经下载了某个区域的地图数据, 理论上地图数据会以一块块正方形的图片形式存放在本地文件中, 同时按照 z/x/y 的目录进行组织, 代表其位置信息, 这些图片称之为瓦片, 之后会将瓦片按照位置信息填充到地图容器的格子上

首先需要将这些瓦片数据托管到服务器上并暴露接口给框架达到动态请求瓦片数据的效果