最近有个项目使用mapbox作为地图展示,但是mapbox 只支持web 墨卡托(3857)坐标系的数据。而客户想接入其他单位发布的共享数据,共享数据都是基于arcgisserver 发布的国家2000坐标系的数据服务。所以研究了一些解决方案。
研究目标:基于mapbox能够接入国家2000坐标系下的栅格切片服务,矢量数据服务
背景说明:
1、 Mapbox 官方版本只支持基于osm 标准的栅格地图服务,以及3857(web墨卡托)投影的矢量切片数据
2、 共享平台提供的地图服务都是基于arcgisserver 发布的国家2000坐标系的数据,包括栅格切片跟矢量数据(WMS,WFS)
研究过程:
1、 基于超图官方提供的能够支持多坐标系的mapbox扩展:mapbox-gl-enhance.js
分析结果:
1) 支持超图平台发布的国家2000,北京54,西安80坐标系的上栅格切片服务和矢量数据服务。
2) 整个地图只支持一种坐标系格式,不能添加其他坐标系的数据,地图初始化设置某一个种坐标系后,其他数据会参照改坐标系进行转换
3) 超图可以转发ArcGISServer 发布的国家2000坐标系的栅格地图服务,在mapbox 中展示
2、 第三方公司mapbox-gl,网上下载的js
分析结果:
支持国家2000坐标系的矢量数据服务,不支持国家2000坐标系的栅格切片服务,实际代码未测试通过
3、 Mapbox官方mapbox-gl-dev
分析结果:
1) 只支持arcgisserver 发布的web 墨卡托(3857),切片方案为Arcgis online的栅格地图服务,arcgisserver 发布的其他坐标系的切片服务不支持
2) Arcgis pro 发布的矢量切片未测试(没有环境,Arcgis pro 有30天免费试用)
4、 mapbox 源码修改
经评估,工作量大,技术难度高,未实际开发
研究结论:
1) mapbox 地图只能支持一种坐标系下的各种数据源,包括栅格瓦片,矢量数据以及Geojson等
2) mapbox只支持arcgisserver 发布的web 墨卡托(3857),切片方案为Arcgis online的栅格地图服务
解决方案
第一种:共享平台提供mapbox支持的数据服务
1) 栅格切片服务:协调共享平台提供基于arcgiserver 发布的的坐标系为web 墨卡托(3857),切片方案为Arcgis online的栅格切片服务
2) 矢量数据服务:后台动态获取共享平台发布的国家2000坐标系的数据并转换为3857或4326坐标系的数据
第二种:使用超图平台转发国家2000的地图服务
1) 栅格切片服务:使用超图iServer转发arcgiserver 发布的国家2000的地图服务,可能会存在权限问题
2) 矢量数据服务:后台动态获取共享平台发布的国家2000坐标系的数据并转换为3857或4326坐标系的数据
第三种:修改mapbox底层
1) 能支持国家2000的栅格切片,也能支持其他坐标系的栅格切片跟矢量数据服务
以上就是一些研究过程,可以供大家来参考