今天遇见一个需求就是根据按钮选择切换局部的底图样式,设计那边提供的底图是一张图片,然后根据不同的选择,切换不同的图片

功能展示就是这样的:

 

话不多说直接上方法:(因为做项目的时候封装了一个class类,cesium的初始化以及各种功能都是在类中写的,下面的方法就是添加自定义图片地图的方法,this.viewer是cesium实例)

addImage(url) {
        if (!url) return
     // 为了避免图层叠加效果不好,所以每一次叠加新的图片的时候都会清除上一次叠加的图片 if (this.myImageLayer) { this.viewer.imageryLayers.remove(this.myImageLayer); }
const provider = new Cesium.SingleTileImageryProvider({
     // url 是底图图片的地址,保存在本地项目的文件夹中,通过require的方式引入地址
url: url,
      // retangle 中的那个矩形,分别是左下角,右上角的经纬度,记住一定要找专业工具定位,否则手动调整你永远也调整不齐和下面的局部底图轮廓对不上 rectangle:
new Cesium.Rectangle.fromDegrees(110.8477134921535, 23.4309905034903, 111.6621391816419, 24.1719699011482), })       // 下面这行代码也很重要哈,没有这行代码页面就没有展示的效果 this.myImageLayer = this.viewer.imageryLayers.addImageryProvider(provider); }

* 要特别说明一下提供的底图要透明背景的,否则就会带着背景色,渲染上去就是一个矩形并且是带着背景色的矩形,哈哈哈哈哈,那时候你还会莫名奇妙找原因

posted on 2023-05-18 15:43  菜鸟成长日记lx  阅读(565)  评论(0编辑  收藏  举报