带有 Deck.gl GeoJsonLayer 的 D3 geoCircle 未填充到地图角

问题描述

我正在与deck.gl 合作制作地图,我们希望有一个圆圈,您可以在其中自定义半径。 这个圆是使用 d3 (v5) 和 d3.geoCircle 函数生成的,因为它可以很容易地放到deck.gl GeoJsonLayer 上。 问题是当半径变得太大时,圆(现在是 geojson 多边形)不会填充到地图的角落。

如图所示:

Showcasing corners not being filled

圆圈的行为符合预期,也是我们想要的,但圆圈的填充不是。 我希望这里的圆圈在环绕北极后填充到右上角和左上角,然后也填充到底角。

我认为尝试同时使用 d3 和deck.gl 时会出现问题,因为它们的设计初衷不是为了协同工作。

我想我可以通过手动将一些额外的坐标插入到 geojson 坐标数组中来让它工作,但是,我想知道 d3 是否已经有解决这个问题的方法,或者如果deck.gl 有。

我相信手动插入它们只会在圆圈穿过经度 180 / -180 边缘时起作用,否则,它们将不会与边缘对齐以便能够从中反转。

我正在为deck.gl 使用OrthographicView,以便获得等距柱状投影,但是,对于常规的墨卡托MapView,问题仍然存在。

Deck.gl 版本:8.4.0

d3 版本:5.12.0

编辑: 现在解决了,这里有一个要点:https://gist.github.com/tech-meppem/3e2d35eab93d27182bebc824b13407ad

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)