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

时间:2015-04-15 15:47:18

标签: javascript intersection openlayers-3

我正在评估OpenLayers3是否能够帮助我们开发日常所需的一些工具,而且我已经陷入了一个我不得不存在的功能,但我无法找到有关的信息。

我需要知道OpenLayers是否允许我们计算两个多边形之间的交叉区域。

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

我们需要确定每个分类中每个类的地形有多少,而我最好的拍摄是通过在不同层中交叉多边形。

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

如果你们中的任何一个人知道更好的方法来计算地块中的土地类型数量,我也很高兴知道它。

编辑:如何实现多边形碰撞算法? Sutherland-Hodgman Algorithm可以解决这个问题吗?

1 个答案:

答案 0 :(得分:5)

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/