2017-07-10 4 views
1

J'ai une caméra et je veux identifier des points spécifiques dans le monde avec elle. Je veux que ce soit le plus précis possible. J'ai essayé de convertir à (x, y, z) en utilisant la réponse dans ce: Lat Long to X Y Z position in JS .. not working. Mais la chose est, je ne sais pas comment affecter les angles de la caméra (lacet, tangage, roulis) avec la courbure de la terre, de sorte qu'il devient un peu bizarre. Je pensais donc à la convertir en une représentation 3D plate et convertir l'altitude, la latitude et l'altitude sans la courbure de la terre à (x, y, z) afin que je puisse voir tous les points en avant.Convertir Latitude, Longitude et Altitude pour pointer dans un espace 3D plat

Est-ce une bonne idée? Si non, comment puis-je affecter les angles de la caméra en fonction de la position dans le monde afin que j'ai toujours la bonne perspective de l'appareil photo?

+0

Cela ressemble plus à un problème mathématique/géodésique, plutôt qu'à un problème de programmation, n'est-ce pas? Si vous ne suivez pas le mouvement de la caméra (lacet, tangage, roulis), vous devrez supposer qu'il regarde toujours vers le bas dans le nadir (angle de zénith d'oberservation = 0 °). Aussi, je ne comprends pas exactement ce que vous voulez convertir exactement. Que fournit la caméra en sortie? – offeltoffel

+0

C'est une question de programmation, j'ai besoin d'aide dans un environnement python en utilisant opencv. Je fais le suivi des angles de la caméra mais par rapport à la caméra, pas au monde entier. La caméra est toujours tangente au monde et présente les points à l'écran, aussi précis que possible. – GonacFaria

+0

La caméra doit toujours être tangente au monde * – GonacFaria

Répondre

0

Vous pouvez utiliser cette bibliothèque python https://pypi.python.org/pypi/nvector, qui est également conforme à la norme WGS84. Il convertira lat long en coordonnées x, y, z.

wgs84 = nv.FrameE(name='WGS84') 
wgs84.GeoPoint(latitude=latitude, longitude=longitude, z=1, degrees=True)