项目中超图 for openlayer和超图for cesium同时引入的问题

一个项目中同时用到了超图的openlayer和cesium版本,首先我是外部引入的超图的开发包,你要是通过npm导入的那就没关系了。

  <script type="text/javascript" src="/static/openlayer/supermap/ol/iclient-ol.min.js"></script>

  <script src="/static/supermap/SuperMap.Include.js"></script>

这些包主要内容是超图针对自己服务封装的一些查询,加载,渲染功能。在项目引入时我记得当时必须是先引入二维的,如果先引入三维的,二维的功能会被污染掉,因为他们都是挂在window.SuperMap这个原型上。说到这儿,建议还是npm导入。

再简单说一下两者包里面查询的区别。

三维里封装的服务查询接口GetFeaturesBySQLService,默认返回格式是超图jsonp处理格式,这个请求返回数据比较快,而且不需要处理跨域问题。

二维里封装的服务查询接口GetFeaturesBySQLService,默认返回格式是geojson格式,并且是post请求,亲测数量大的时候较三维的慢很多。不过二维的可以设置header。

也不知道超图为什么要这样区分,实际过程中还测出一个问题,就是服务设置token后,二维的只需要注册便直接可以使用。

ol.supermap.SecurityManager.registerToken(url, iserverToken)

但是引入三维的后,token无法使用,也无法设置header。我用的都是最新的版本。记录一下问题,看看后面有没有改进。

关于token注册摸索后续:

其实SuperMap查询接口提供了全局注册方法,类似于三维Cesium

 //地图服务注册-三维
Cesium.Credential.CREDENTIAL = new Cesium.Credential(url, "token"); 
//数据查询接口注册
SuperMap.Credential.CREDENTIAL = new SuperMap.Credential(url, "token"); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值