Используя openlayers 6.2.1, я пытаюсь изменить пиксельный цвет плиток из источника xyz (например, Color Manipulation пример ),
Сначала я определяю источник XYZ:
const xyz = new XYZ({
url: 'https://mbenzekri.github.io/frcommunes/fr/communes/{z}/{x}/{y}.png',
maxZoom: 12,
minZoom: 5
})
затем RasterSource для управления цветами
const rastersource= new Raster({
sources: [ xyz ],
operation: function (pixels, data) {
pixels[0] = pixels[0]
pixels[1] = pixels[1]
pixels[2] = pixels[2]
}
})
затем ImageLayer:
const imagelayer = new ImageLayer({
source: rastersource
})
добавление этого слоя в мою карту поверх объекта слоя OSM завершается неудачно с сообщением в время рендеринга:
TileLayer.js:160 Uncaught TypeError: tileSource.getTileGridForProjection is not a function
at CanvasTileLayerRenderer.renderFrame (TileLayer.js:160)
at TileLayer.Layer.render (Layer.js:216)
at CompositeMapRenderer.renderFrame (Composite.js:112)
at Map.PluggableMap.renderFrame_ (PluggableMap.js:1265)
at Map.<anonymous> (PluggableMap.js:186)
замена imagelayer на простой TileLayer с тем же источником xyz работает нормально (индекс строки исходного кода. js: 37).
const tilelayer = new TileLayer({
source: xyz
})
я делаю что-то не так, не хватает некоторых конфигураций?
Заранее спасибо за помощь или интерес
полный код здесь (простой пример 50 строк)
the бесплатная версия доступна для тестирования на странице github