J'ai un appareil GPS qui envoie des données à mon serveur, j'ai besoin de convertir les valeurs décimales que l'appareil envoie en latitude et longitude. Je suis mauvais en maths si toutes mes tentatives ont échoué, voici les spécifications:Convertir des décimales en latitude et longitude
Latitude
Occuper 4 octets, ce qui représente la valeur de latitude.
La plage de numéros va de 0 à 162000000, ce qui représente la plage de 0 ° à 90 °. Unité: 1/500 seconde Méthode de conversion:
A) Convertir les données de latitude (degrés, minutes) du module GPS en une nouvelle forme qui représente la valeur seulement en minutes;
B Multiplier la valeur convertie par 30000, et transformer ensuite le résultat au nombre hexadécimal
Pour example22 ° 32,7658 ', (22 × 60 + 32,7658) x 30000 = 40582974, puis le convertir en nombre hexadécimal 0x02 0x6B 0x3F 0x3E
longitude
occupent 4 octets, ce qui représente la valeur de la longitude de données de localisation. Le nombre varie de 0 à 324000000, représentant la plage de 0 ° à 180 °. Unité: 1/500 secondes, la méthode de conversion est la même que la latitude.
je suis venu avec cette fonction, mais il ne semble pas fonctionner:
procedure GetDegree(const numar : DWORD; out min,sec : Extended);
var
eu : Extended;
begin
eu := numar/30000;
min := Trunc(eu/60);
sec := eu - min * 60;
end;
Alors quel est le problème? –
@subirkumarsao vérifier mon – opc0de
modifier Pourquoi dites-vous que cela ne fonctionne pas? Qu'est-ce qui est attendu par rapport à la production réelle? – Deestan