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/
相关文章