gpt4 book ai didi

javascript - 使用 turf.js 在 mapbox 上显示多个大圆圈

转载 作者:行者123 更新时间:2023-12-05 04:51:58 27 4
gpt4 key购买 nike

我正在尝试在同一个 map 容器中的标记之间添加多条大圆线。我设法用 greatCircle 展示了一个在 turf.js 中。

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 .

最佳答案

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按照这个逻辑给出:

enter image description here

在屏幕截图中有点难以辨认,但在我看到的伦敦到纽约和伦敦到波士顿之间可能有单独的大圆圈?

关于javascript - 使用 turf.js 在 mapbox 上显示多个大圆圈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66652328/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com