jsapi4加载的首个图层的范围被默认作为地图范围,且不能修改?

已邀请:

cannel

赞同来自:

自问自答一下
 
在map加载的第一个图层的图层范围(fullExtent),会被默认设置为map的全图范围,且不能更改,从一般地图控件角度来说,应该有fullExtent属性,作为地图的全图范围,但很遗憾jsapi4.9还没有
Map有个initialExtent的属性,从值可看出,当map没图层时,是null,加载第一个图层后,就有值的,且值是第一个图层的fullExtent,然后这个值不会再改变。我尝试对initialExtent赋值,console有报错,这属性官方文档也没写出来

如果有情况是第二个图层的范围比第一个大,那因为地图全图范围是第一个图层的,所以第二个图层不能看全,如何解决?

一个曲线解决办法是,假设我们知道要加载的所有图层的总的最大范围,那可以建一个任意的layer,layer的大部分属性随意(因为不是用来显示的),唯一要注意是图层范围要设成上述的所有图层的最大范围。原理是既然第一个图层的范围就是地图范围,那只要保证第一个图层范围比所有图层都大,把地图范围撑大就行。这图层加载后可以设visible为false,访问不会获取内容而导致其他问题
 

谢军

赞同来自:

要通过view对象来设置extent啊,不是map对象

要回复问题请先登录注册