view与layer都可以进行显示内容的控制。这两者负责的功能是由区别的。
view即显示的地图容器,有以下几个属性:
- center:[经度,纬度] ,对应的设置函数为view.setCenter()。。用于设置一个地图上的点,该点将显示在view中央。
- zoom:放缩等级,对应的设置函数为view.setZoom()。一个地图可以有多个放缩等级,为view设置zoom,则会将地图放缩到对应的等级。通常是配合center来使用的。但注意必须在地图初始化后才能调用。
- minZoom/maxZoom:最小/最大放缩等级。设置后,对view进行放缩,最小只能到minZoom,最大只能到maxZoom。否则可以无限缩小/放大。
- extent:[左下角经度,左下角纬度,右上角经度,右上角纬度]。用于设置view的显示区域。一般来说,将地图放缩到合适等级,然后设置该等级下需要显示的地图区域即可,这样在移动地图的时候可以保证不会将地图偏移太远。关于显示区域,其含义是指始终显示在view中的区域。不在该范围内的区域随着地图的放缩和平移一样会被显示在view中。但在该范围内的区域,随着地图的放缩和平移,设置的显示区域边界一定会被显示在view中,是无法移出view之外的。例如,设置了赤道为左下角纬度,北回归线为右上角纬度。那么将view中的地图向上平移,最后整个北半球都会被移到view上方,但赤道会卡在view的最上边界处,无法继续上移。同理,将整个地图向下平移,最后北回归线会卡在view的下边界处。同时这个也跟调用的view.fit()有关。
layer这里指地图的底图。例如使用ol.layer.Tile()创建的layer。其重要的属性只有一个:extent。extent用于指定底图的显示区域。若指定的区域大于底图的区域,那么底图会完全显示;若指定的区域与底图之间没有重叠,那么底图不会被显示;若指定的区域与底图部分重叠,那么底图只显示重叠区域。
例如:
指定区域为[-180.0, 0.0, 180.0, 90.0]:

指定区域为山东的一部分:

本文详细解析了地图容器view与底图layer的区别与功能。view通过center、zoom等属性控制地图显示位置与比例,而layer通过extent属性定义底图的显示范围。两者的合理配置对于地图应用的用户体验至关重要。
1824

被折叠的 条评论
为什么被折叠?



