OpenLayers 3,几何之间的区域交集

OpenLayers 3, area intersection between geometries

我正在评估 OpenLayers3 是否可以帮助我们开发一些我们日常需要的工具,我被困在一个我认为它必须存在但我找不到相关信息的功能上。

我想知道 OpenLayers 是否允许我们计算两个多边形之间的交叉面积。

我们将在地图上加载不同的图层。通常一层有地形分隔,另一层有地形 classes.

我们需要确定每个 class 在每个分隔中有多少地形,我最好的办法是在不同的图层中交叉多边形。

我无法在 OpenLayers3 文档中找到有关此类功能的示例或信息。

如果你们中有人知道计算地块中土地类型数量的更好方法,我也会很高兴知道。

编辑:如何实施多边形碰撞算法? Sutherland-Hodgman Algorithm 会成功吗?

OpenLayers 3 本身不提供计算多边形交点的函数。但是使用 Turf.js 和 ol3:

相对简单
var polygon1 = new ol.Feature(new ol.geom.Polygon(...));
var polygon2 = new ol.Feature(new ol.geom.Polygon(...));

var format = new ol.format.GeoJSON();
var intersection = format.readFeature(
    turf.intersect(
        format.writeFeatureObject(polygon1),
        format.writeFeatureObject(polygon2)));

http://jsfiddle.net/d6o81vc7/