我正在尝试在同一地图容器中的标记之间添加多条大圆圈。我设法在turf.js中用greatCircle展示了一个。
for(var i = 0; i < 2 ;i++) {
var getStart = json.features[0].geometry.coordinates[0];
var getEnd = json.features[0].geometry.coordinates[1];
//console.log(getStart)
//console.log(getEnd)
var start = turf.point(getStart);
var end = turf.point(getEnd);
var data = turf.greatCircle(start, end);
console.log(data)
}是否可以列出所有这些应用程序并应用Turf.js?
这是我的JsFiddle。
发布于 2021-03-24 21:05:48
给map.addSource一个新的FeatureCollection,其中的特征是来自turf函数的大圆圈。在草皮上有一个helper function来做这个。
我已经将循环的逻辑包含在一个函数中,该函数返回一个由大圆圈组成的FeatureCollection:
function getGreatArcFc() {
var data = [];
for (var i = 0; i < json.features.length; i++) {
var feature = json.features[i];
var getStart = feature.geometry.coordinates[0];
var getEnd = feature.geometry.coordinates[1];
var start = turf.point(getStart);
var end = turf.point(getEnd);
data.push(turf.greatCircle(start, end));
}
return turf.featureCollection(data);
}
map.on('load', function() {
map.addSource('route', {
"type": "geojson",
"data": getGreatArcFc()
});
map.addLayer({
"id": "route",
"source": "route",
"type": "line",
"paint": {
"line-width": 1,
"line-color": "#000000"
}
});
});具有该逻辑的Updating your fiddle提供:

在截图中有点难以辨别,但在我看到的伦敦到纽约和伦敦到波士顿之间可能有单独的大圆圈?
https://stackoverflow.com/questions/66652328
复制相似问题