最近有個項目使用mapbox做爲地圖展現,可是mapbox 只支持web 墨卡託(3857)座標系的數據。而客戶想接入其餘單位發佈的共享數據,共享數據都是基於arcgisserver 發佈的國家2000座標系的數據服務。因此研究了一些解決方案。web
研究目標:基於mapbox可以接入國家2000座標系下的柵格切片服務,矢量數據服務json
背景說明:測試
一、 Mapbox 官方版本只支持基於osm 標準的柵格地圖服務,以及3857(web墨卡託)投影的矢量切片數據server
二、 共享平臺提供的地圖服務都是基於arcgisserver 發佈的國家2000座標系的數據,包括柵格切片跟矢量數據(WMS,WFS)開發
研究過程:源碼
一、 基於超圖官方提供的可以支持多座標系的mapbox擴展:mapbox-gl-enhance.js後臺
分析結果:擴展
1) 支持超圖平臺發佈的國家2000,北京54,西安80座標系的上柵格切片服務和矢量數據服務。cgi
2) 整個地圖只支持一種座標系格式,不能添加其餘座標系的數據,地圖初始化設置某一個種座標系後,其餘數據會參照改座標系進行轉換權限
3) 超圖能夠轉發ArcGISServer 發佈的國家2000座標系的柵格地圖服務,在mapbox 中展現
二、 第三方公司mapbox-gl,網上下載的js
分析結果:
支持國家2000座標系的矢量數據服務,不支持國家2000座標系的柵格切片服務,實際代碼未測試經過
三、 Mapbox官方mapbox-gl-dev
分析結果:
1) 只支持arcgisserver 發佈的web 墨卡託(3857),切片方案爲Arcgis online的柵格地圖服務,arcgisserver 發佈的其餘座標系的切片服務不支持
2) Arcgis pro 發佈的矢量切片未測試(沒有環境,Arcgis pro 有30天免費試用)
四、 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的柵格切片,也能支持其餘座標系的柵格切片跟矢量數據服務
以上就是一些研究過程,能夠供你們來參考