我有图片层,我希望它们保持原样,当我调用map.getView()。setRotation(x)时不要用地图旋转。可以选择禁用地图的旋转,但是是否可以禁用一个图层的旋转?
答案 0 :(得分:1)
如果“带图片的图层”是带有图标图像的矢量图层,则默认情况下图标不会旋转。您可以通过使用rotateWithView
选项配置图标样式来控制图标的旋转。默认值为false
。确保你没有这样的风格:
new ol.style.Style({
image: new ol.style.Icon({
src: 'data/image.png',
rotateWithView: true
})
});
如果您这样做,只需删除rotateWithView: true
行。
如果您的图层是WMS图层,并且您的图像是点样式,那么您可能很幸运拥有支持旋转的WMS服务器。然后,您可以为GeoServer和MapServer添加供应商选项(ANGLE
),并在视图轮换更改时更新该选项:
map.getView().on('change:rotation', function() {
wmsLayer.getSource().updateParams({
ANGLE: map.getView().getRotation() / Math.PI * 180
});
上面的代码段假定map
是ol.Map
个实例,而wmsLayer
是ol.layer.Image
个实例ol.source.ImageWMS
。
答案 1 :(得分:0)
据我所知,你不能禁用一层的旋转。正如@ahocevar的答案所示,最佳做法应该是展示你的照片"在单独的矢量图层中,使用此图层样式定义中的rotateWithView
选项。