2013-06-07 5 views
0

Je regarde un système qui enregistre Longitude/Latitude en format Integer. Il est appelé logiciel de suivi Orchid.Orchid Tracking logiciel - comment convertir les valeurs décimales en GPS Degrés/minutes/secondes

Je ne sais pas comment convertir ces valeurs entières en degrés/minutes/secondes. Je le divise d'abord par un million, mais après cela une autre conversion est nécessaire pour obtenir des degrés/minutes/secondes

Existe-t-il un standard pour les unités de suivi qui économisent des entiers/lat en entiers pour le convertir en degrés/minutes/secondes?

+0

s'il vous plaît poster quelques valeurs d'exemple, et si possible approximatley où ils ont été enregistrés (latitude, longitude) – AlexWien

Répondre

1

Il y a beaucoup de possibilités pour représenter un lat/long de coordonnées en entier:

  1. degrés décimaux * 1E6 (également appelés micro degrés)
  2. degrés décimaux * 1E7
  3. milli secondes angulaires

1) et 2) sont souvent utilisés.

Alors, découvrez d'abord comment ils sont représentés, dans le cas 1) et 2) vous les convertissez d'abord en degrés décimaux. (par exemple 48123456 => 48.123456). Vous savez que la longitude est dans la plage [-180.0, 180.0] et la latitude de [-90.0, 90]

Puis il est simple de convertir des degrés décimaux (DEG) en degrés minutes secondes (DMS) Il suffit de rechercher wiki ou la réponse de njzk2.
Mais attention je ne suis pas sûr si sa réponse a fait la manipulation des cas spéciaux lorsque les erreurs d'arrondi conduisent à la situation lorsque la 59.999999 devient 60.0 = 0, dans ce cas, la minute doit être incrémentée.

1

degrés/minute/seconde est tout simplement le nombre de secondes affichées dans la base 60.

En supposant un logiciel de suivi Orchid ne secondes d'utilisation, vous pouvez transformer value cette façon:

seconds = value mod 60 
minutes = (value/60) mod 60 
degrees = (value/(60*60)) 

Cependant, si le les valeurs sont en millionième de degré:

degrees = integer part of (value/1000000) 
minutes = integer part of (((value - degrees * 1000000) * 60)/1000000) 
seconds = integer part of (((value - degrees * 1000000 - minutes * 1000000/60) * 60 * 60)/1000000) 

ou, vous pouvez convertir millionième de degré secondes:

total_seconds = value * 60 * 60/1000000 

et d'appliquer les premières formules.

+0

salut, cela aide beaucoup merci, je pense qu'il utilise des secondes, comme si je prends les valeurs initialement et diviser Par un million, la partie entière (degrés) n'est pas comprise entre 90 et -90. Quand j'utilise la formule supérieure pour les degrés ((value/(60 * 60))) j'obtiens une valeur supérieure à 30 000 pour le degré. Dois-je faire quelque chose d'autre à cette valeur afin d'obtenir les diplômes s'il vous plaît? –

+0

pouvez-vous publier des valeurs d'exemple pour des lieux connus, afin que nous puissions comprendre quel format il est? – njzk2

Questions connexes