javascript - 根据半径、x 和 y 3D 地球 THREE.js 确定 3D 经度和纬度
问题描述
目前我正在尝试理解一个 Codpen,其中这个人将 JSON 数据输入到使用 x 和 y 绘制坐标的 Javascript 应用程序中。
例如,他没有使用经度和纬度来绘制香港,而是使用这些坐标。
{"x": 768,"y": 342,"name": "", "country":"Hong Kong"}
我希望能够输入 x 和 ya 经度和纬度值,但我不知道如何乘法或除法,这是与他的代码一起使用的简单解决方案。我是 Javascript 新手,但我想了解如何在这个特定项目上更有效地绘制坐标。
有没有一个简单的方程式可以让我在这支笔上更轻松地绘图。谢谢。
解决方案
该示例基本上使用墨卡托投影转换radius, lat, long
为欧几里得x, y, z
坐标,如您提供的 JSFiddle 的第 860 行以上所述,并使用此 SO 答案作为参考。由于半径在全球范围内是恒定的,因此您无需为每个点重复该值,它只是硬编码到示例中。
墨卡托有点令人困惑,因为当你接近两极时,比例会无限延伸。作为一种更简单的选择,您可以Vector3.setFromSphericalCoords(rad, lat, long)
按照文档中的说明使用它并x, y, z
为您设置。主要区别在于这种方法不会在两极附近造成失真。它采用lat, long
弧度:
lat
范围从[0, Pi]
(北极到南极)long
范围从[0, 2*Pi]
(赤道附近)
推荐阅读
- python-3.x - cx_Oracle 返回零行
- laravel - 在 App Engine Standard 上使用 Laravel Queue 和 Google Tasks
- css - 括号 CSS 选择器
- amazon-web-services - AWS - adminGetUser 返回意外错误
- python-3.x - 在 python 中查找列表的最小值和最大值。得到我 TypeError: 'int' object is not callable
- apache-kafka-streams - 仅当在流上接收到新事件时才抑制触发事件
- android - 如何在 Firebase 中查询多个节点/引用
- python-3.x - kivy 的键盘事件
- reactjs - React - 重定向用户未经过身份验证
- javascript - 将 CKEditor 与 ExpressJS 一起使用时在浏览器中显示的 HTML 标记