首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用turf.js在mapbox上显示多个大圆圈

用turf.js在mapbox上显示多个大圆圈
EN

Stack Overflow用户
提问于 2021-03-16 17:24:35
回答 1查看 308关注 0票数 2

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

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

发布于 2021-03-24 21:05:48

map.addSource一个新的FeatureCollection,其中的特征是来自turf函数的大圆圈。在草皮上有一个helper function来做这个。

我已经将循环的逻辑包含在一个函数中,该函数返回一个由大圆圈组成的FeatureCollection

代码语言:javascript
复制
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提供:

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66652328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档