问题
使用WebMapServiceImageryProvider
添加wms服务,在调用flyTo()方法定位图层时,相机会跑到(0,0)点
原因
使用WebMapServiceImageryProvider直接加载服务,Cesium不会读取服务本身的四至范围,而是采用默认范围[-2π,-π,2π,π]
解决
利用WebMapServiceImageryProvider的构造参数中tectangle,手动设置服务范围
从服务中获取四至的经纬度
//bounds为服务范围[minX,minY,maxX,maxY]
const provider = new Cesium.WebMapServiceImageryProvider({
url : 'https://sampleserver1.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer',
layers : '0',
rectangle:bounds ? new Cesium.Rectangle.fromDegrees(...bounds) : undefined,
});
这样在图层定位的时候就正常了