【问题标题】:Changing Source url of a XYZ layer and redrawing the layer/map?更改 XYZ 图层的源 URL 并重绘图层/地图?
【发布时间】:2015-11-09 21:30:43
【问题描述】:

我想更改我的 ol3 地图源的 url。我尝试过使用诸如 map.set 或 map.getlayers().set 之类的东西,但我似乎找不到访问源对象的方法。代码如下:

function init() {
    var map = new ol.Map({
        target: 'map',
        layers: [
            new ol.layer.Tile({
                source: new ol.source.XYZ({
                    projection: 'PIXELS',
                    tileGrid: mapTileGrid,
                    url: loc
                })
            })
        ],
        view: new ol.View({
            projection: ol.proj.get('PIXELS'),
            extent: mapExtent,
             maxResolution: mapTileGrid.getResolution(0)
             })
        });

map.getView().fit(mapExtent, map.getSize());
    console.log(map.get("layergroup").get("layers").get("url"));
    map.get("layergroup").get("layers").set("url",loc);
}

有什么方法可以更改 url 属性并重新加载图层?

我还尝试使用 setSource 函数,如以下答案:here 但它似乎不起作用(无法设置未定义的来源)。

【问题讨论】:

  • 是的,一段时间后使用一些简单的 setsource 设法修复了它,但不是那么简单,当我到达我的电脑时会在这里发布。
  • @JonatasWalker var viewaux = new ol.View({ projection: ol.proj.get('PIXELS'), extent: mapExtent, maxResolution: mapTileGrid.getResolution(0), rotation: Math.PI / 5 }); layer.setSource(saux); map.setView(viewaux); 就这么简单:)

标签: javascript openlayers-3


【解决方案1】:

试试下面的

function init() {
    var map = new ol.Map({
        target: 'map',
        layers: [
            new ol.layer.Tile({
                source: new ol.source.XYZ({
                    projection: 'PIXELS',
                    tileGrid: mapTileGrid,
                    url: loc
                })
            })
        ],
        view: new ol.View({
            projection: ol.proj.get('PIXELS'),
            extent: mapExtent,
             maxResolution: mapTileGrid.getResolution(0)
             })
        });

map.getView().fit(mapExtent, map.getSize());
//get alll the layers exist on your map
var layers = map.getLayers();
//lets assume you want to set the url for the first layer found
layers[0].getSource().setUrl(loc); 
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    • 2012-08-29
    • 2015-12-27
    • 2018-07-17
    • 1970-01-01
    • 2014-05-09
    • 2018-01-31
    相关资源
    最近更新 更多