OpenLayers 3,几何图形之间的区域相交

2022-09-05 00:00:00 intersection javascript openlayers-3

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

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

我们将在地图上加载不同的层。通常是一个具有地形分隔的层和另一个具有地形类的层。

我们需要确定在每个分离中每个类别有多少地形,我最好的方法是将不同层中的多边形相交。

我在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/

相关文章