threejs 坐标转换

首先,当创建物体的时候就应该给物体的每个节点vertex定义坐标,平面坐标应该跟地理坐标(投影坐标)对的上。

而假如创建物体的时候并不是真实的地理坐标,那似乎就不好办了。因为,如果不是真实的地理坐标,坐标转换是没用的,只能偏移,整体偏移了

地理坐标和三维空间坐标的转换:https://blog.csdn.net/qihoo_tech/article/details/101443066 

如果进行真实地理坐标的三维建模,可以使用ArcGIS和Geodatabase的Multipatch(https://www.cnblogs.com/2008nmj/p/14047137.html

>>

 

由世界坐标(x,y,z)可以转为经纬度

当然,由经纬度,也可以反求出x,y,z。地球半径是已知的。

建筑物是附着在地球表面的。被地球吸引在地球表面。那么建筑物应该如何定位呢?

如果是用(经度,纬度,高程)的话,也可以。用世界坐标系(x,y,z)其实也行。前者好像更好一些吧?这里的世界坐标系(x,y,z)和之前的地理坐标系(x,y,z)不是一个概念。三维地图里不应该出现投影坐标系吧。。好像也可以有投影坐标系,只是只有x,y投影而已。

可以想象,一个建筑物,它的8个点的地理坐标大概为:(x1,y1,0),(x2,y2,0),(x3,y3,0),(x4,y4,0),(x1,y1,3),(x2,y2,3),(x3,y3,3),(x4,y4,3)。然后12个边为l1=v1-v2,l2=v2-v3,l3=v3-v4,l4=v4-l1,l5=v1-v5,l6=v2-v6,l7=v3-v7,l8=v4-v8,l9=v5-v6,l10=v6-v7,l11=v7-v8,l12=v8-v1。6个面分别为(v1,v2,v3,v4),(v5,v6,v7,v8),(v1,v2,v5,v6),(v2,v3,v6,v7),(v3,v4,v7,v8),(v4,v1,v8,v5)。

原文地址:https://www.cnblogs.com/2008nmj/p/14302796.html