2009-10-15 10 views
2

Comment puis-je analyser GPS qui est des coordonnées de chaîne (comme 33 ° 58'9 "S 18 ° 35'51" E) en degrés, par ex. double types à utiliser pour calculer la distance entre les coordonnées GPS.Parse GPS To Degrees

C# langage de programmation, l'utilisateur saisira les coordonnées GPS sous forme de chaîne (exemples ci-dessus).

+0

Quelle langue? Quel protocole GPS? – voyager

+5

Prenez soin de nous donner un indice sur le système de programmation que vous prévoyez d'utiliser? Mathematica, Matlab, APL, Fortran, Smalltalk, sed, ??? Mais sérieusement, divisez la ficelle sur les symboles, calculez 33+ (58/60) + (9/3600) et vous riez? –

+0

C# langage de programmation – Lennie

Répondre

3

Comme on l'a déjà été indiqué dans la section des commentaires

  1. diviser la chaîne sur les symboles et prendre les degrés, minutes et secondes parties individuellement.
  2. Les degrés et les minutes seront des entiers, le champ des secondes peut comporter une partie fractionnaire et nécessiter une capacité d'entrée en virgule flottante. Cela dépend de votre précision/résolution positionnelle.
  3. Calculer la valeur en degrés DEG + (MIN/60) + (SEC/3600) // Les types de données ignorés
  4. Appliquer le signe au résultat basé sur N, S, E, W. Par convention, N et E sont positifs, S et W sont négatifs

Vous allez maintenant vouloir calculer la distance entre les points qui nécessiteront probablement la conversion de vos coordonnées de degrés en radians pour permettre l'utilisation du trig standard bibliothèques.

distance = 2*asin(sqrt((sin((lat1-lat2)/2))^2 + 
        cos(lat1)*cos(lat2)*(sin((lon1-lon2)/2))^2))