gpt4 book ai didi

javascript - D3 + 带有 Albers USA 投影的传单

转载 作者:行者123 更新时间:2023-11-28 08:50:06 25 4
gpt4 key购买 nike

我想将 D3 + Leaflet 与 Albers USA 投影结合使用。

我使用 Mike Bostock 的 D3 + Leaflet 演示作为起点(可在此处找到:http://bost.ocks.org/mike/leaflet/)。我不确定如何正确使用阿尔伯斯美国投影。我在尝试弄清楚如何执行此操作时遇到了几个问题:

  1. 我不知道如何让 Leaflet 使用 Albers USA 投影。我想我也许可以使用 Proj4Leaflet 插件来做到这一点,但我一直无法找到在创建指定 Albers USA 的 CRS 时需要传递给它的参数。我在 Spatialreference.org 上找到了一些潜在的配置字符串,但我不知道要为原点或分辨率指定什么,也没有找到任何解释它的内容。
  2. D3 的 Albers USA 投影对于集合中的某些点和边界返回 null。我正在使用 Mike Bostock 使用的 us-states.json 文件。我在这里找到了解释:https://github.com/mbostock/d3/issues/1287 。 “[...]现在对于复合投影剪辑范围之外的点将返回 null,因为使用投影流时不会显示这些点”。我不知道如何从这里继续。我应该使用不同的数据集吗?

如果有人对如何进行有任何建议,我将不胜感激!

最佳答案

您可能有两个不同的问题,因此这里是两个问题的简要回答 -

1.) 您的源数据不需要位于 Albers-US(严格来说这不是投影 - AK 和 HI 不在墨西哥)才能将其带入 Leaflet。以下是采用 GeoJSON 格式的美国各州数据集(采用地理坐标):https://gist.github.com/wboykinm/6979292

2.) 无论源数据的投影是什么,Leaflet 都仅在 Google Mercator 投影中呈现(您在开始的示例中看到的投影)。如果您绝对必须拥有 Albers US,那么由于上下文失真的原因,它实际上不应该是可平移/可缩放的 map 。只需使用 Mike 的 D3 示例作为静态 map :http://bl.ocks.org/mbostock/6320825

如果你决心使用 Albers US 为 Leaflet 制作一张滑动 map ,我有什么资格阻止你呢?但这个过程需要 a.) 在 GIS 程序中移动要素几何图形,以及 b.) 欺骗 Tilemill 使用错误的投影,因为它会创建供您在 Leaflet 中使用的图 block 。不是推荐的行动方案。

如果我没有提到您始终可以使用 d3.behavior.zoom() 使 D3 图形可缩放,那我也太失职了

关于javascript - D3 + 带有 Albers USA 投影的传单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19259039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com