Перепроектировать статическое изображение: обновление источника снова преобразует изображение - PullRequest
0 голосов
/ 18 января 2019

Застрял ....... Я загружаю 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 голосов
/ 18 января 2019

Меняется только проекция вашего вида, проекция статического изображения не меняется, точно так же, как 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")
});
...