Предотвращение сглаживания слоя TileImage - PullRequest
0 голосов
/ 08 января 2019

Я работаю в OpenLayers 4.6.5 со слоем Landsat 8 TileImage, предоставляемым сервером листов AWS Lambda (согласно https://github.com/mapbox/landsat-tiler),, и необходимо предотвратить сглаживание / интерполяцию пикселей на изображении - например, что каждый пиксель (высотой около 30 м и шириной 30 м) содержит только один цвет без затенения. Ниже приведен пример того, что я вижу:

enter image description here

Я обнаружил несколько случаев, когда у других была такая же проблема со статическими источниками PNG, и поэтому я попробовал следующий javascript:

map.on('precompose', function(evt) {
  evt.context.imageSmoothingEnabled = false;
  evt.context.webkitImageSmoothingEnabled = false;
  evt.context.mozImageSmoothingEnabled = false;
  evt.context.msImageSmoothingEnabled = false;
});

... и следующий CSS:

.tm-openlayer-map
    canvas {
      image-rendering: optimizeSpeed;
      image-rendering: -moz-crisp-edges;
      image-rendering: -webkit-optimize-contrast;
      image-rendering: -o-crisp-edges;
      image-rendering: pixelated;
      -ms-interpolation-mode: nearest-neighbor;
    }

Но ни один из этих подходов, похоже, вообще ничего не меняет. Я могу только заключить, что либо эти подходы не работают со слоями TileImage, либо что мой сервер плиток на самом деле предоставляет предварительно сглаженные изображения. Буду признателен за любые предложения!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...