0

卡住了......我正在将 png 图像作为静态图像层加载到 OpenStreetMap 上。当我将地图从例如 3857 重新投影到 32661 时,图像也会自动重新投影(这是我想要的),但是当我更新静态图像的源时,图像层会再次转换。转换后的图像再次像原始图像一样具有矩形形状......令人沮丧......

如何让图像不再变换,而只显示更新的源(与原始源具有相同的尺寸,但根据新投影进行变换)。

我有一个带有源“IMG_LYRStaticSource”的图像层“IMG_LYR”:

IMG_LYRbounds = [45.3, 30.9, -14.6, 72.6]; // LON/LAT
url = "http://localhost/img/myupdatedimg.png";

IMG_LYR = new ol.layer.Image({
    source: IMG_LYRStaticSource
});

IMG_LYRStaticSource = new ol.source.ImageStatic({
    url: url,
    projection: map.getView().getProjection().getCode(),
    imageExtent: ol.extent.applyTransform(IMG_LYRbounds, ol.proj.getTransform("EPSG:4326", map.getView().getProjection().getCode()))
});

当我在检查控制台中显示“投影”时,确认它是“32661”。我究竟做错了什么??

顺便说一句:我也使用 Proj4 defs!当设置新的投影 32661 时,原始图像和基础地图转换时确认了该工作。

4

1 回答 1

1

只有你的视图投影在改变,静态图像的投影不会改变,就像 OSM 一样,它会被视图重新投影。

IMG_LYRStaticSource = new ol.source.ImageStatic({
    url: url,
    projection: "EPSG:3857",
    imageExtent: ol.extent.applyTransform(IMG_LYRbounds, ol.proj.getTransform("EPSG:4326", "EPSG:3857")
});
于 2019-01-18T10:19:48.793 回答