OpenLayers:运行 计算多边形内的像素

OpenLayers: Running calculations on pixels within polygon

在 OpenLayers 4.6.5 中,我需要 运行 对 TileImage 源进行一些计算,但仅限于位于多边形内的像素,并根据以下结果计算多边形的一些基本统计信息这些计算。

我为每个多边形设想的过程如下:

这似乎是一个相当简单的任务,但我在网上找不到任何讨论此类事情的内容。我希望找到与 "forEachPixelInFeature" 方法类似的东西,但似乎不存在。我怀疑这个过程需要从一个步骤开始,首先检查每个像素以确定它是否在多边形内,但我在网上也找不到任何可以帮助我的东西。

请注意,我使用的多边形不是常规矩形,因此不幸的是,任何使用简单矩形边界框的解决方案都行不通。

如果有人能在这里指出正确的方向,我将不胜感激。

你可以像这样获取多边形中的像素

var geom = myFeature.getGeometry();
var size = map.getSize();
var pixels = [];
if (geom.intersectsExtent(map.getView().calculateExtent(size))) {
  for (var i=0; i<size[0]; i++) {
    for (var j=0; j<size[1]; j++) {
      var coordinate = map.getCoordinateFromPixel([i,j]);
      if (geom.intersectsCoordinate(coordinate)) pixels.push([i,j]);
    }
  }
}
console.log(pixels);