Question

Je suis en charge d'un programme qui est utilisé pour créer un ensemble de noeuds et les chemins destinés à la consommation par un véhicule terrestre autonome. Le programme assure le suivi des emplacements de tous les éléments de la carte en indiquant la position de l'élément comme étant x mètres au nord et mètres y est d'un point de 0,0 origine. Dans le monde réel, le véhicule connaît l'emplacement de l'origine de latitude et à long, comme il est déterminé par un système DGPS et précise jusqu'à un ou deux centimètres. Mon programme ignore les coordonnées lat long.

Il est l'un de mes objectifs à modifier le programme pour garder la trace des coords longues lat d'articles en plus d'un point d'origine et les x de produits, la position y par rapport à cette origine. À première vue, il semble que je vais modifier le programme pour permettre aux coords lat long de l'origine à transmettre dans, et après que je désire que le programme calcule automatiquement le lat long de chaque élément actuellement sur une carte. D'après ce que j'ai fait des recherches à ce jour, je crois que je vais devoir comprendre les mathématiques derrière la conversion en coords lat long d'un UTM comme projection où je précise les points d'origine et méridiens, etc., par opposition à tout ce qui est déjà défini pour UTM.

Je suis venu vous demander Gis programmeurs, je suis sur la bonne voie? Il me semble comme il y a tellement de choses à envelopper les tête autour, et je ne sais pas si la réponse est quelque chose d'aussi simple que, « oh oui Theres une conversion de mètres de long lat, ici »

À l'heure actuelle, en raison de la nature de la position DGPS, le système n'a pas vraiment besoin de se soucier des endroits plus que oh, quoi ... 40 km? rayon loin de l'origine. Compte tenu de cela, et le fait que je dois faire en sorte que l'erreur sur mes coordonnées ne dépasse pas 0,5 mètres, ai-je besoin quelque chose de plus complexe qu'une simple lat / long à mètres constante de conversion?

Je suis jusqu'aux genoux dans les matériaux ici. Je pourrais utiliser quelques conseils sur ce que les concepts à la recherche.

Merci beaucoup!

Était-ce utile?

La solution

Etant donné un point de départ dans la latitude / longitude et d'une distance et d'appui, trouver le point d'extrémité est un calcul géodésique. Il y a un grand résumé des calculs et des erreurs sur géodésique proj.4 site . Ils viennent à la conclusion que l'utilisation d'un modèle sphérique peut obtenir des résultats pour distance entre les points avec au plus 0,51% d'erreur. Cela, combiné à une formule pour Transposer WGS -84 et ECEF (voir le "LLA à ECEF" et "ECEF à LLA" sections, semble comme il vous obtient ce dont vous avez besoin.

Si vous voulez vraiment les erreurs clouées par projection inverse votre carte à plat WGS-84, proj 0,4 est un logiciel de projection. Il possède le code source, et est fourni avec trois utilitaires de ligne de commande - proj, qui convertit à / de projection cartographique et des données cartésiennes; cs2cs, qui convertit entre les différentes projections cartographiques; et geod, qui calcule les relations géodésiques.

L'USGS publie un très traitement complet des projections cartographiques .

Autres conseils

Je ferais un calcul complet si vous le pouvez. De cette façon, vous serez toujours aussi précis que vous pouvez être.

Si vous arrive d'utiliser C ++ GDAL est une très bonne bibliothèque.

Pour une plage de 40 km, vous pouvez constater que le monde se rapprochant à une surface plane 2D peut fonctionner, bien qu'une UTM de transformation serait le moyen idéal pour aller - en tout cas, je préconise l'aide de la coopération réelle WGS84 coordonnées et ellipsoïde pour les calculs tels que la distance orthodromique ou paliers de calcul.

Si vous vous ennuyez, vous pouvez descendre une ligne semblable à quelque chose que je travaille, qui peut être utilisé en tant que classe de base pour différents points de référence tels que OSGB36 ou WGS84 ...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top