一個(gè)項(xiàng)目中同時(shí)用到了超圖的openlayer和cesium版本,首先我是外部引入的超圖的開發(fā)包,你要是通過npm導(dǎo)入的那就沒關(guān)系了。
<script type="text/javascript" src="/static/openlayer/supermap/ol/iclient-ol.min.js"></script>
<script src="/static/supermap/SuperMap.Include.js"></script>
這些包主要內(nèi)容是超圖針對自己服務(wù)封裝的一些查詢,加載,渲染功能。在項(xiàng)目引入時(shí)我記得當(dāng)時(shí)必須是先引入二維的,如果先引入三維的,二維的功能會(huì)被污染掉,因?yàn)樗麄兌际菕煸趙indow.SuperMap這個(gè)原型上。說到這兒,建議還是npm導(dǎo)入。
再簡單說一下兩者包里面查詢的區(qū)別。
三維里封裝的服務(wù)查詢接口GetFeaturesBySQLService,默認(rèn)返回格式是超圖jsonp處理格式,這個(gè)請求返回?cái)?shù)據(jù)比較快,而且不需要處理跨域問題。
二維里封裝的服務(wù)查詢接口GetFeaturesBySQLService,默認(rèn)返回格式是geojson格式,并且是post請求,親測數(shù)量大的時(shí)候較三維的慢很多。不過二維的可以設(shè)置header。
也不知道超圖為什么要這樣區(qū)分,實(shí)際過程中還測出一個(gè)問題,就是服務(wù)設(shè)置token后,二維的只需要注冊便直接可以使用。
ol.supermap.SecurityManager.registerToken(url, iserverToken)
但是引入三維的后,token無法使用,也無法設(shè)置header。我用的都是最新的版本。記錄一下問題,看看后面有沒有改進(jìn)。
關(guān)于token注冊摸索后續(xù):文章來源:http://www.zghlxwxcb.cn/news/detail-678413.html
其實(shí)SuperMap查詢接口提供了全局注冊方法,類似于三維Cesium文章來源地址http://www.zghlxwxcb.cn/news/detail-678413.html
//地圖服務(wù)注冊-三維
Cesium.Credential.CREDENTIAL = new Cesium.Credential(url, "token");
//數(shù)據(jù)查詢接口注冊
SuperMap.Credential.CREDENTIAL = new SuperMap.Credential(url, "token");
到了這里,關(guān)于項(xiàng)目中超圖 for openlayer和超圖for cesium同時(shí)引入的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!