1、下载地图数据源
可以从很多市面上的地图供应商下载地图,如水经注、bigemap等,大部分层级能够达到19级,也即地图的空间分辨率能够达到0.6米,比如下面广州市的数据。如果数据量少,只需要一个城市或者几个城市的数据,闲鱼上应该十几块钱就可以下载,可用于实际生产使用。面积再小的话,软件可免费下载。
2、数据处理
这里以arcgis pro数据处理为例,比如从11到18级,可在arcgis pro里分别加载11到18级的影像数据(第一步获取的)。分别设置每个层级显示的可视化比例。
3、创建地图切片包
细节层次最好跟地图数据保持一致(保证不会生产没必要的数据,比如生产了19级地图,但是你源数据没有,生产出来也没有用),范围选择最高层级(不是这个的话,最高层级数据可能不全,软件内在的一些坑)。
4、发布高性能地图
经过测试,几个影像访问速度的关键因素是:
1、服务器搭载固态硬盘(非常重要,亲测访问速度是机械硬盘的10倍以上)
2、返回的地图,要加缓存(亲测,缓存速度是网络访问速度的10倍以上),要设置缓存时间(cache-control),etag(这个是否加上,感觉效果不大,但是前端的文档说是有用)。
3、存入高速缓存(indexdb,速度是缓存的5到10倍,数据量不大可以采用这种方式)
5、实际案例
国家天地图官网的访问速度普遍在200~500毫秒,网络环境是我本地的环境,本身速度一般。
高德地图普遍加载速度在50到200毫秒,平均下来速度是天地图的2到3倍。天地图无偏移,高德地图有偏移,看自己需要选择使用。
可能有人会说,高德比天地图服务器更好,更有钱,有可能吧,但是这不是关键的影响。下面是我在本地起的一个地图服务,请求速度普遍在10毫秒(我地图的图片未压缩,否则会更快),有缓存的情况下,甚至只要几毫秒。这是在网络环境和硬件最理想的状态下发布的地图服务。我在服务器采用机械硬盘和固态硬盘这两种情况下测试,平均速度分别是800毫秒、40毫秒,速度相差20倍。
本地环境网络一般的情况下,访问速度甚至远程高德地图。
存入高速缓存的测试,我发现arcgis server的服务器是自带的,刚开始测试简直惊为天人,后来发现采用indexdb可以实现,其实只是技术问题。但考虑到商业引擎收费,高德地图收费,自建地图服务(地图服务是自研,但是核心思路是标题4),是完全值得的,速度也是非常快的,可满足生产使用。