卡住了……我正在将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时,原始图像和基础地图进行了转换,从而确认了该功能。
答案 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")
});