Cesium基础-加载地图服务

最近工作中遇到一个问题:本地发布了wgs-1984坐标系的TMS局部地图服务(在上层叠加),和一份google标准的TMS全球底图服务(在下层)。使用UrlTemplateImageryProvider加载两幅地图时,发现不能叠在一起。现象就是:google的地图可以加载,局部高清地图无法加载。

终于在大佬的指导下,找到了原因:google标准的瓦片组织方式与普通TMS服务瓦片的组织方式相反。普通TMS瓦片,原点在左下角,即沿Y轴自下向上切;而google标准瓦片,原点在左上角,即沿Y轴自上而下切。

TMS标准瓦片

 google标准瓦片

因此二者叠加时,需要将一种一副地图的Y轴进行翻转。

翻阅了Cesium帮助文档,UrlTemplateImageryProvider的接口说明中,明确写了,可以更改链接中的y为reverseY进行翻转。

至此,你以为问题就解决了吗?

No,更诡异的问题来了:仍然没有效果。

于是,进一步查资料,了解TMS服务。终于又发现了一个原因:TMS服务有两种行列编码方式。

而不同的编码方式,取决于不同的坐标参考即:wgs-1984和 webMocator。

具体参考文档,跳转至大佬文章,感谢大佬将TMS瓦片讲述的如此详细。

google标准采用的是webMocator参考坐标,而我们局部区域服务,使用的是wgs-1984。

至此,我的所有困惑都消失了。最终解决方案:UrlTemplateImageryProvider提供了坐标系的设置,且由于cesium中默认Y轴为自上而下,故同时url中,使用reverseY:

  tilingScheme : new Cesium.GeographicTilingScheme(),
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值