从经度和纬度数据获取正确的输出,我一直在努力工作。我知道这个数据是正确的,在谷歌地图中绘制它。例如,我将显示的数据为这些纬度和经度坐标: 经度:4.905396 纬度:52.364643在OpenGL中使用正确的经度和纬度在全球范围内渲染点
当谷歌绘制映射它显示了正确的位置,这是荷兰阿姆斯特丹:
现在当我绘制在我的应用程序它看起来如下:
是的谷歌地图是2D的代表和我的3D是但这只是为了证明经度和纬度值是正确的,所以如果我的公式转换他们到3D空间是相关的ct他们应该出现在同一个地方。
我一直在阅读大量的文章在网上以及stackoverflow本身。 我经历过这些文章和应用各种不同类型的配方的的我看到:
和
这两个似乎有很好的例子已清除解释但似乎没有任何工作。我现在正在做的是在3D空间中计算位置,然后对其进行规范化,并将其用作在末端绘制带点的线的方向,如您在我的应用程序的屏幕截图中所看到的。这与使用大多数示例中使用的地球半径时从中心到计算位置画一条直线并没有什么不同。
我目前的计算公式为:
X = r * cos(latitude) * cos(lontitude);
Y = r * cos(latitude) * sin(longitude);
Z = r * sin(latitude);
哪项是错误的,但我知道伊夫通过我在网络上看到的所有例子中去,并没有给我正确的数据。通过谷歌地图数据测试,我知道至少输入是正确的。
UPDATE1:
我检查了我的纹理的拓扑结构,这是当它的纬度和经度是0.0000和0.0000会发生什么:
因此,这意味着,这是不对的了,不过它的断带一个奇怪的偏移,因为谷歌地图显示它应该是这样的:
更新2: 我已检查我的球体与纹理的拓扑结构,它似乎关闭了0.0和0.0,但我也怀疑我的公式。我已经尝试了很多来自网络的不同内容,其中一些与我的第一个配方相同得0.0 0.0,但很多都没有。我的经度和纬度都在-180〜180和-90〜90之间。
更新3: 这是关于阿姆斯特丹的情节的视图,它有点像0.0 0.0 lat/long piont。我想,某处地图或计算是错误的。我会尝试调整纹理以稍微移动一下。
2012-07-16
Yonathan
+7
你是否检查过纹理坐标,以确保你的纹理在正确的位置? –
2012-07-16 20:28:47
+2
为了对齐两用lat/long = 0,0,并使纹理与建模工具中的预期点相吻合(如果要通过代码创建球体,则需要UV映射代码)。之后,所有其他经纬度都应该很好。 –
2012-07-16 20:32:17
+0
我们需要了解你如何纹理你的球体,以及纹理和纹理加载器的方向。 –
2012-07-16 20:56:10