使一个图层不与地图一起旋转

时间:2015-03-27 09:07:05

标签: openlayers-3

我有图片层,我希望它们保持原样,当我调用map.getView()。setRotation(x)时不要用地图旋转。可以选择禁用地图的旋转,但是是否可以禁用一个图层的旋转?

2 个答案:

答案 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
});

上面的代码段假定mapol.Map个实例,而wmsLayerol.layer.Image个实例ol.source.ImageWMS

答案 1 :(得分:0)

据我所知,你不能禁用一层的旋转。正如@ahocevar的答案所示,最佳做法应该是展示你的照片"在单独的矢量图层中,使用此图层样式定义中的rotateWithView选项。