javascript - 更改 XYZ 图层的源 url 并重新绘制图层/ map ?

标签 javascript openlayers-3

我想更改我的 ol3 map 源的 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 但它似乎不起作用(无法设置未定义的来源)。

最佳答案

尝试以下操作

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

关于javascript - 更改 XYZ 图层的源 url 并重新绘制图层/ map ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33609069/

相关文章:

javascript - 协助将 JS 翻译为 CLJS

JavaScript 在 jQuery 创建的内容中无法正常工作

javascript - Openlayers 要素样式 zIndex

ios - Openlayers3 ol.control.FullScreen 在 iOS 上不起作用

javascript - 将 d3force 应用于具有多个组的网络

javascript - 如何从数组中删除对象并更新所有其他对象的位置值?

javascript - 组件从 v5 或 v4 降级到 angularJS 时出现 Angular 注入(inject)器错误

javascript - Angular-openlayers-directive 标记中的 OnClick

scroll - Openlayers 3 关闭平滑滚动