【问题标题】:Javascript Canvas Lat Lng PlottingJavascript Canvas Lat Lng 绘图
【发布时间】:2011-11-29 19:07:21
【问题描述】:

我想创建一个类似这样的数据可视化:

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

【问题讨论】:

    标签: javascript geolocation latitude-longitude


    【解决方案1】:

    首先你需要选择投影。然后你可以使用正确的公式。或者您可以使用现有的解决方案,例如 proj4js。这是众所周知的 proj 实用程序的 JS 端口,用于处理各种投影。

    我建议使用 Miller Projection 进行全球可视化。你可以找到公式here

    【讨论】:

    • 您可以在画布视口中渲染的球体上渲染纬度/经度点,而无需投影。
    • 不懂你。 “不需要投影”是什么意思。无论如何,您需要一些公式将点从 3d 中的极坐标转换为笛卡尔 2d 空间中的坐标。
    • 如果您在球体上渲染点,然后渲染该 3d 球体,则不需要投影。如果您在平坦的 2d 表面上渲染纬度/经度,那么您需要一个投影。是的,您需要将纬度/经度转换为笛卡尔以进行画布图形渲染(请参阅大地测量到 ECEF)。 webglearth.org