我目前正在开展一个项目,该项目旨在使用 Google Earth API 将现实世界的数据映射到 Google Earth 地球上。大佬们要求比插件提供更苛刻的视觉效果(即花哨的线条、图像和形状,随着时间的推移会产生不同的不透明度填充),所以我们决定使用 Processing.js 语言来处理事物的图形方面。
目前,我在后台建立了 GE 插件。Processing.js 草图直接位于其上方的 canvas 元素中,该元素具有 CSS 规范:pointer-events: none(即,这允许鼠标与插件交互,而写入 Processing 草图的任何内容都会显示在最佳!)
我的问题涉及 3D 投影。当图形在 GE 中显示时,该插件能够处理背景中所有令人讨厌的矩阵变换(这意味着如果你在 GE 中将一个点放置在 lat:90, lon:0, 无论你如何在地球上移动,该点将保持在北极上方)。在处理覆盖中,我试图模拟这一点。
和。很多。困难。
Google Earth ge.getView().project(lat, lon, alt, altMode)函数是我目前用来将 3D 纬度/经度点投影到 2D 坐标中的函数(然后使用在返回的点在屏幕上绘制一个椭圆加工)。您可以在下面看到:
您会注意到红色和黄色椭圆实际上是地球后面的点。这是我的问题,我迫切需要一些建议/帮助。使用 GE 插件实现反向剔除的最有效方法是什么,以便 Processing.js 在环绕地球的“背面”时不会绘制椭圆。我的脑筋急转弯是我仍然想保持在 X、Y 和 Z 方向上绕地球旋转的能力(即不限制视口)!
感谢堆栈溢出!