![]() |
1
0
您的地图按预期运行,但您可以使其按预期运行。
此文件: https://d3js.org/us-10m.v1.json 已经 投影(由2d平面上的x、y坐标组成,具有任意距离单位)。
最终,您在两个不同的坐标系中拥有特征,这会导致问题,因为您以相同的方式从两个不同的坐标系绘制这些点。
要确定您的数据是否已被投影,您可以查看:
查看此文件,您可以看到没有将投影指定给地质路径(这将像以下操作一样完成:
此外,您可以看到topojson坐标大致在
然而,线要素是用经度/纬度对绘制的。该特征不是投影的(如果使用特定球体表示地球,则可以在WGS84中称其为“投影”,但实际上,在这种情况下,WGS84仅代表一个基准,而不是投影。作为参考,WGS84是d3在从长/纬度转换为平面上的点时使用的基准/参考球体)。
因此,快速放弃已经投影的特征是在查看器(mapshaper.org)中查看特征,如果特征是颠倒的,那么就有投影数据。这是因为svg坐标空间将零放置在顶部,而经度/纬度对将零放置在赤道,再向下-90。
当您使用空投影时,直线只从顶部向下45个像素和左侧137个像素的点到向下13个像素和左侧37个像素的点。 . 解决方案
考虑到您拥有的源文件可能是由Mike Bostock创建的,并且他可能使用了与他在d3中实现的相同的投影公式来创建文件,我们可能会幸运地发现是什么
默认d3。geoAlbers投影以美国为中心,与大多数其他d3投影相比,这是一个例外。默认情况下,这可能包含用于创建topojson的关键投影参数,即标准平行线、中心点和旋转。
这给了我们一个成功的重叠。 Here here (我没有你的tsv数据,所以choropleth只是噪音)。 您还可以使用geoTransform而不是geoProjection来缩放已投影的数据,请参见 answer 解决方案警告 遗憾的是,选项1、2和3要求您知道topojson中的地理数据是如何投影的,以便您可以模拟或反转它。 您没有这些信息,这些选项是不可能的。无论何时处理使用不同空间参考系(SRS或坐标参考系,CRS)的地理数据,都是如此。 |
![]() |
PaulHuang · D3.js画布上下文填充错误 8 年前 |
![]() |
JJF · 日食地图上的线条没有按d3中的比例绘制。js地图 8 年前 |
|
djwhiting · 使用带有D3的ONS地图 8 年前 |
![]() |
jimmypage · 如何在删除包含传单标签的topoxon层时删除该标签 10 年前 |
![]() |
rsilva · require.js错误(未加载top.json) 10 年前 |
![]() |
Ignacio · TopoJSON模块中的编码错误 11 年前 |
|
dance · Topojson:量化VS简化 11 年前 |