根据随机点和随机角度获取geojson band

Get a geosjon band based on a random point and a random angle

我正在尝试做某种 rubber band ball in d3, I thought it was going to be easy because I remember seeing Jason Davies example(顶部的第二个),但实际上它看起来更复杂。

Jason 的垂直带示例非常简单:

let band = [2, -2].map((d, i) => {
    let stripe = d3.range(-180, 180).map((x) => [x, d])
    stripe.push(stripe[0])
    return i ? stripe.reverse() : stripe
})

所以我开始制作这样的垂直带:

let band = [2, -2].map((d, i) => {
    let stripe = d3.range(-90, 90).map((y) => [d, y])
    stripe.push(stripe[0])
    return i ? stripe.reverse() : stripe
})

但是,我得到了这个奇怪的形状,它在每个极点上都闭合了(它应该也被填充,而不是描边):

我的最终目标是简单地指定一个点、一个角度和一个宽度(在我的示例中为 4),它将 return 绘制一个环绕地球的带所需的坐标。

谢谢。

所以这是一个相当简单的问题,因为 d3。 我使用了 d3.geo.circle,角度为 90°(默认)和一个随机点,所以:

let circle = d3.geo.circle()
    .origin(coords)()

由于 d3.geo.circle returns 多边形,我需要编辑它的属性:

circle.type = 'LineString'
circle.coordinates = circle.coordinates[0]

这是最终结果: