如何在Openlayers中旋转整个视图?

时间:2019-07-16 19:31:52

标签: openlayers-3 qgis

我有一个在QGIS 3.8中创建的地图。它使用OSM作为基础地图,并且我有一个简单的栅格图层,这是一个地理参考地图。

QGIS有一个有用的插件qgis2web,可以为Openlayers(和Leaflet)导出一整套文件。

一旦采用Openlayer格式并在浏览器中查看过,就可以使用Alt + Shift + Drag旋转整个视图,使其向北旋转40度(即约0.7弧度)。您可以在此处查看此工作的演示:https://openlayers.org/en/latest/examples/rotation.html

我想做的是修改生成的代码,以显示已经旋转到所需角度的地图。 (这是因为地理参考地图的北点不在页面顶部。)

这是我要修改的layers.js代码,大概需要轮换:0.7,但我不知道在哪里!


var wms_layers = [];

    var lyr_OpenStreetMap_0 = new ol.layer.Tile({
        'title': 'OpenStreetMap',
        'type': 'base',
        'opacity': 1.000000,


        source: new ol.source.XYZ({
attributions: '<a href=""></a>',
            url: 'http://a.tile.openstreetmap.org/{z}/{x}/{y}.png'
        })
    });var lyr_MyMap = new ol.layer.Image({
                        opacity: 1,
                        title: "King's Park",


                        source: new ol.source.ImageStatic({
                           url: "./layers/MyMap.png",
attributions: '<a href=""></a>',
                            projection: 'EPSG:3857',
                            alwaysInRange: true,
                            imageExtent: [-100073.533268, 6847294.601171, -93832.319311, 6852417.437192]
                        })
                    });

lyr_OpenStreetMap_0.setVisible(true);lyr_MyMap.setVisible(true);
var layersList = [lyr_OpenStreetMap_0,lyr_MyMap];

1 个答案:

答案 0 :(得分:0)

谢谢pavlos

只需在html文件正文的末尾添加一行即可对它进行排序:

<script>map.getView().setRotation(Math.PI / 2.6 );</script>