使用 WebGL 可视化大量空间矢量数据

Visualizing large amounts of spatial vector data using WebGL

我计划开发一个可视化大型二维平铺图像的应用程序。应用需要实现以下功能:

  1. 层的加法混合,即以某种方式将 WebGL 的混合方程设置为加法:gl.blendEquation(gl.FUNC_ADD).
  2. 黑白图像的着色(乘以常量颜色,例如红色。这对应于设置 gl.blendColor(1, 0, 0, 1);gl.blendFunc(gl.CONSTANT_COLOR, gl.ONE);)。
  3. 绘制大量简单矢量数据(主要是多边形)。
  4. Contrast/brightness/range 强度操纵

根据我的研究,为了实现这些目标,渲染器应该基于 WebGL。 我使用 Openlayers 3 做了一个初始原型。我设法使用 precomposepostcompose 挂钩和自定义着色器实现了除 (3) 之外的所有内容强度操纵。但是,我看到尚不支持使用 WebGL 进行多边形渲染,而且我还没有看到关于此 issue/state 开发的最新更新。我的问题是是否有一个 possibility/some 起点可以自己实现,或者像铯这样的东西是否更符合我的需求。

我无法谈论 OpenLayers 路线图,但 Cesium 本身应该能够开箱即用地满足您的要求。这里有一些示例(带有代码)显示了您正在寻找的功能

Additive blending of layers

Polygons This is GeoJSON but we also handle KML, TopoJSON, CMZL and have a programattic API. We also handle a diverse set of geometry

Imagery Adjustment

如果您决定尝试一下 Cesium,我们有一个非常 active forum that can help you get started, so don't hesitate to post any questions you have. cesiumjs.org 还有很多额外的信息、帮助和演示。