我尝试在我的传单项目中使用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
变量时,我尝试过不使用[]
、一对和双对。但它们都会导致同样的问题。我还尝试将数组传递给turf.polygon
,但无法完成。
您传递的GeoJSON对象之一的格式不正确。试着记录对象,然后检查以下内容到底出了什么问题https://geojsonlint.com/
例如
console.log(JSON.stringify(buffered), JSON.stringify(test));