重新投影静态图像:更新源会再次转换图像

时间:2019-01-18 09:58:55

标签: openlayers openlayers-5

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

如何使图像不再次变形,而仅显示更新的源(其尺寸与原始尺寸相同,但根据新的投影进行了变形)。

我有一个图像层“ IMG_LYR”,其来源为“ IMG_LYRStaticSource”:

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时,原始图像和基础地图进行了转换,从而确认了该功能。

1 个答案:

答案 0 :(得分: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")
});