【问题标题】:OpenLayers 3, area intersection between geometriesOpenLayers 3,几何之间的区域相交
【发布时间】:2015-04-15 15:47:18
【问题描述】:

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

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

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

我们需要确定每个类别在每个分隔中的地形数量,我最好的方法是通过在不同层中相交多边形。

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

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

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

【问题讨论】:

    标签: javascript intersection openlayers-3


    【解决方案1】:

    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/

    【讨论】:

    • 这看起来很有希望,我可能无法在接下来的几天内投入时间,但一旦我确认它符合我们的需求,我就会接受答案。
    • 我花了很长时间才意识到必须将 OL-Feature 格式转换为 GeoJSON 才能与 Turf.js 一起使用。编辑:仍然适用于 OL6
    猜你喜欢
    • 2020-08-14
    • 2019-11-17
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-27
    • 2019-07-07
    • 2017-07-13
    相关资源
    最近更新 更多