我一整天都在为获取正确的经纬度数据输出而苦恼。我知道这些数据是正确的,因为我已经在谷歌地图上绘制了它们。例如,我将展示这些纬度和经度坐标的数据:
经度:4.905396
纬度:52.364643
在谷歌地图中绘制时,它显示了正确的位置,即荷兰的阿姆斯特丹:
现在,当我在我的应用程序中绘制它时,它看起来如下所示:
是的,谷歌地图是二维表示,而我的应用程序是三维的,但这只是为了证明经度和纬度值是正确的,因此,如果我的将它们转换为三维空间的公式是正确的,它们应该出现在同一个位置。
我已经阅读了很多网络文章,以及stackoverflow本身。我已经阅读了这些文章,并应用了我看到的所有不同类型的公式: 将纬度和经度转换为三维空间中的点
更新3: 这是阿姆斯特丹的地图视图,它有点偏离,就像0.0 0.0的纬度/经度点一样。我猜地图或计算有误。我会尝试将纹理适应一下,稍微移动一下。
在谷歌地图中绘制时,它显示了正确的位置,即荷兰的阿姆斯特丹:
![PLotting location of amsterdam on gmaps](https://istack.dev59.com/6nGKR.webp)
![selfmade app showing location](https://istack.dev59.com/eNaAA.webp)
我已经阅读了很多网络文章,以及stackoverflow本身。我已经阅读了这些文章,并应用了我看到的所有不同类型的公式: 将纬度和经度转换为三维空间中的点
并且
这两个似乎有清晰的解释和良好的示例,但没有任何作用。我现在正在做的是计算三维空间中的位置,然后将其归一化,并将其用作绘制带有点的线条的方向,如您可以在应用程序的屏幕截图中看到的那样。当使用大多数示例中使用的地球半径时,这与仅从中心绘制一条线条到计算出的位置没有区别。
我的当前公式是:
X = r * cos(latitude) * cos(lontitude);
Y = r * cos(latitude) * sin(longitude);
Z = r * sin(latitude);
我知道这是错误的,但我已经查看了网上所有的示例,没有一个显示正确的数据。通过使用来自Google地图的数据进行测试,我知道至少输入是正确的。
更新1:
我检查了纹理的拓扑结构,当其纬度和经度均为0.0000时会出现以下情况:
所以这意味着这已经是错误的了,但它有一个奇怪的偏移量,就像Google地图所显示的那样,应该是这样的:
更新3: 这是阿姆斯特丹的地图视图,它有点偏离,就像0.0 0.0的纬度/经度点一样。我猜地图或计算有误。我会尝试将纹理适应一下,稍微移动一下。
![几乎修复](https://istack.dev59.com/SELhS.webp)