JavaScript画布经纬度绘图

4
我想创建一个类似于这个的数据可视化图表:

enter image description here

...但是针对整个地球。画布大小将是任意的,但不需要随浏览器调整大小(我会在开始绘制点之前设置宽度和高度)。我需要找出一种将纬度和经度坐标转换为画布上的点的方法。有人知道如何做吗?

1个回答

3
首先,您需要选择投影方式。然后可以使用适当的公式。或者您可以使用现有的解决方案,例如 proj4js。这是一个用于处理各种投影的著名 proj 实用程序的 JS 端口。
我建议在整个地球上进行可视化使用米勒投影。您可以在此处找到公式:here

您可以在画布视口上渲染经纬度点,无需投影即可呈现在球体上。 - TreyA
不理解你的意思。你所说的“无需投影”是什么意思?无论如何,你需要一些公式将三维极坐标中的点转换为笛卡尔二维空间中的坐标。 - bjornd
1
如果您在球体上渲染点,然后渲染该3D球体,则不需要投影。如果您要在平面的2D表面上呈现纬度/经度,则需要投影。是的,您需要将纬度/经度转换为笛卡尔坐标以进行画布图形渲染(请参见大地测量到ECEF)。http://www.webglearth.org/ - TreyA

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接