微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决带有 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 举报,一经查实,本站将立刻删除。