当您调用along()时,它只返回一个 Point。它不会返回您添加的线上的所有点。看看调试器或 console.log() 语句中的返回值,你会看到你实际拥有什么样的数据——不需要它是个谜。
在您的代码片段中,我认为您可以在不使用 Turf 生成的任何数据的情况下获得标记的计数。您的调用代码知道何时添加标记,对吗?只需随时跟踪添加到您自己的变量中的标记数,例如...
var markerCount = 0;
for (var i = 0; i <= (linesPoints-Ecart /2)/Ecart; i++)
{
marker = turf.along(pathLine[i], Ecart/2+Ecart*i, 'meters');
var inside= turf.intersect(marker, poly);
if(inside)
{
geojsonMarker =L.geoJson(marker).addTo(map);
console.log(++markerCount);
}
}
这将为您提供添加到一行的所有标记的计数。如果您想计算添加到所有行的所有标记,只需自己跟踪即可。我不知道您的代码在最初的示例之外是如何布局的,但想象一下上面的代码片段被放入一个函数中,比如......
function addMarkersToLine(linePoints, ecart) {
//...same code from above goes in here...
return markerCount; //Returning number of markers added for just this line.
}
然后你在其他地方有一些代码负责为一行或多行添加标记......
function addTwoLines() {
var totalMarkerCount = 0;
totalMarkerCount += addMarkersToLine(...params...);
totalMarkerCount += addMarkersToLine(...params for a different line...);
}
如何跟踪和存储标记计数取决于您,并且取决于您的项目。但我的主要观点是,自己跟踪它,而不是使用 Turf 进行某种分析或依赖于 Turf 将如何组成 GeoJson 来处理您的 turf.along() 请求的知识。在调用代码中,您已经知道何时添加标记。