根据随机点和随机角度获取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]
这是最终结果:
我正在尝试做某种 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]
这是最终结果: