首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在openlayers 6中实验颜色操作失败了,tileSource.getTileGridForProjection不是一个函数

在openlayers 6中实验颜色操作失败了,tileSource.getTileGridForProjection不是一个函数
EN

Stack Overflow用户
提问于 2020-02-28 17:27:00
回答 1查看 384关注 0票数 0

使用openlays6.2.1,我试图从xyz源(如色彩操纵示例)中更改瓷砖的像素颜色,

我首先定义了一个XYZ源:

代码语言:javascript
运行
复制
const xyz = new XYZ({
    url: 'https://mbenzekri.github.io/frcommunes/fr/communes/{z}/{x}/{y}.png',
    maxZoom: 12,
    minZoom: 5
})

然后是一个RasterSource来操纵颜色

代码语言:javascript
运行
复制
const rastersource= new Raster({
    sources: [ xyz ],
    operation: function (pixels, data) { 
        pixels[0] = pixels[0] 
        pixels[1] = pixels[1] 
        pixels[2] = pixels[2] 
    }
})

然后是一个ImageLayer:

代码语言:javascript
运行
复制
const imagelayer = new ImageLayer({
    source: rastersource
})

在OSM层对象上将此层添加到映射中,在呈现时出现消息失败:

代码语言:javascript
运行
复制
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)

用相同的xyz源替换一个简单的TileLayer可以很好地工作(源代码行index.js:37)。

代码语言:javascript
运行
复制
const tilelayer = new TileLayer({
    source: xyz
})

我是不是做错了什么,错过了一些配置?

预先感谢您的帮助或关心

完整代码为这里 (简单示例50行)

没有bug的版本在github页面上是可测试的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-28 17:54:04

你的进口是错的。

代码语言:javascript
运行
复制
import ImageLayer from 'ol/layer/Tile';

应该是

代码语言:javascript
运行
复制
import ImageLayer from 'ol/layer/Image';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60456611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档