【问题标题】:OpenLayers multiple georeferenced imagesOpenLayers 多个地理参考图像
【发布时间】:2019-03-27 14:22:50
【问题描述】:

我需要显示特定地点的特定地图。地图存储在具有已知地理参考的图像文件 (JPG) 中。视图的其余部分由标准 XYZ 瓷砖填充。

为了显示 1 张图片(根据文档),我可以使用

new ol.layer.Image({
  source: new ol.source.ImageStatic({
    url: 'myimage.jpg',
    projection: 'EPSG:3857',
    imageExtend: [486303.9778100852272473,
                  800886.4222691040486097, 
                  486822.4427326705190353, 
                  6801434.6447209259495139]
  })
})

它为我每层提供 1 张图像。因为我的地图上有大约 200 个这样的地方,所以我需要创建 200 个图层。我相信,它会杀死客户的电脑。有没有办法,如何使用 1 层显示所有图像?

【问题讨论】:

    标签: image openlayers layer


    【解决方案1】:

    只要图像没有被重新投影,一旦所有图像都加载完毕,性能开销似乎就很小。加载所有图像(或一个具有不同虚拟参数的图像以破坏缓存并模拟不同图像)显然需要时间,但无论如何加载它们都是不可避免的。这是一个快速测试脚本:

    var raster_OSM = new ol.layer.Tile({
        source: new ol.source.OSM()
    });
    
    var map = new ol.Map({        
        layers: [raster_OSM],
        target: 'map',
        view: new ol.View({
            center: [0,0],
            zoom: 2
        })        
    });
    
    for (var i=0; i<20; i++) {
        for (var j=0; j<10; j++) {
            var raster_image = new ol.layer.Image({
                source: new ol.source.ImageStatic({         
                    url: 'https://imgs.xkcd.com/comics/online_communities.png?i='+ i + '&j=' + j,
                    imageExtent: ol.proj.transformExtent([-170+i*15, 75-j*15, -160+i*15, 65-j*15],'EPSG:4326','EPSG:3857')
                })
            });
            map.addLayer(raster_image);
        }
    }
    

    但是从 EPSG:4326 重新投影到 EPSG:3857 的 200 层确实会杀死浏览器:

        var raster_image = new ol.layer.Image({
            source: new ol.source.ImageStatic({         
                url: 'https://imgs.xkcd.com/comics/online_communities.png?i='+ i + '&j=' + j,
                imageExtent: [-170+i*15, 75-j*15, -160+i*15, 65-j*15],
                projection: 'EPSG:4326'
            })
        });
    

    【讨论】:

    猜你喜欢
    • 2019-03-25
    • 2023-01-28
    • 1970-01-01
    • 1970-01-01
    • 2021-08-15
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多