首页 > 解决方案 > 输入几何不是 turf.js 中的有效多边形

问题描述

我尝试在我的 Leaflet 项目中使用turf.js它的功能。intersect我原来的问题可以在这里找到。问题是我无法获得正确的多边形来调用它。这个想法是让计算出的路线的航路点从它们中生成一个 polgyon 并检查它们与给定缓冲区相交的位置。

    var testpoint = turf.point([9.9354, 49.799]);
    var buffered = turf.buffer(testpoint, 50, {units: 'meters'});
    
    var array = []
    control._routes[0]['coordinates'].forEach(function(e){

      array.push([e['lat'],e['lng']])
      
    });

    var test = turf.polygon(L.polygon([[array]]))
    var intersection = turf.lineIntersect(buffered, test)

我收到以下错误消息:

Uncaught Error: Input geometry is not a valid Polygon or MultiPolygon

在这里我必须指出,当使用line.intersect(buffered,buffered)它时,它工作正常,因此我假设buffered变量是正确的。
当涉及到test变量时,我尝试了 no [],一对和双对。但它们都会导致相同的问题。我也尝试将数组传递给turf.polygon但无法完成。

标签: javascriptleafletturfjs

解决方案


推荐阅读