2013-08-26 30 views
8

Ho un modulo GPS che mi dà latitudine in longitudine in un formato strano.Latitudine Longitudine nel formato errato DDDMM.MMMM 2832.3396N

DDDMM.MMMM 

Come indicato nel manuale dell'utente, Gradi * 100 + minuti.

Per quanto ne so, è gradi minuti secondi, e secondi è tra 0-59, sopra di questo si incrementa il minuto. Ma questo è dare minuti in cifre decimali. Questo significa 1/1000 di minuto?

eg. 07717.3644 E 
077 --> degrees 
17 --> minutes 
3644 --> ? 
E --> Direction 

anche come faccio a convertirlo in decimale, sto usando la formula

decimal = degrees + minutes/60 + seconds/3600. 
+0

**. ** 3644 sono minuti che sono uguali a secondi **/** 60 – Gangadhar

+0

Salve, Sono di fronte problema simile, il nema ricevuto formato è ddmm.mmmm. Devo convertire lo stesso in ddmm.mmmmmm. 1. cosa spiega questo formato? ddmm.mmmmmm? Spiega per favore. 2. Per convertire ddmm.mmmm in ddmm.mmmmmm, ho fatto ddmm. (Mmmm * 60). È corretto? – Aada

risposta

16

Per convertire questo in formato decimale, iniziamo mantenendo la parte DD e dividiamo semplicemente MM.MMM per 60 per stabilizzare la porzione MMM del formato decimale.

43. (48.225/60), -79.(59.074/60) 

43.(0.80375), -79.(0.98456) 

43.80375, -79.98456  

Nel tuo caso

eg. 07717.3644 E is the DDDMM.MMMM format 

077 --> degrees 
17 --> minutes 
.3644 --> minutes equals to sec/60 


decimal = degrees + minutes/60 

decimal = 77 + (17.3644/60) 

decimal = 77.28941 

See this Link Would help you

+0

Grazie per questo, dedico molto tempo allo – Shridhar

+0

a risolvere il mio problema. Sapevo di longi ma non ero sicuro di lati. –

+0

@Gangadhar - dead link – Ian

2

1 minuto = 60 secondi, in modo da .3644 minuti = .3644 * 60 = 21.86 secondi.

1

Il valore non è un numero, ma una serie di degreed e minuti concatenati. È necessario fare attenzione perché è probabile che i valori di latitudine abbiano solo cifre di due gradi (ad esempio DDMM.MMMM), quindi se si utilizza la gestione delle stringhe per separare i valori, è necessario tenere conto di ciò. Tuttavia, sia lungo e lat può essere gestito numericamente come segue:

double GpsEncodingToDegrees(char* gpsencoding) 
{ 
    double a = strtod(gpsencoding, 0) ; 
    double d = (int)a/100 ; 
    a -= d * 100 ; 
    return d + (a/60) ; 
} 

potrebbero anche passare il carattere emisfero E/O o N/S a questa funzione e utilizzarla per determinare un appropriato +/- segno se richiesto.

1

semplice implementazione in Python:

latitude = <ddmm.mmmm> 
longitude = <dddmm.mmmmm> 

# Ricava i gradi della latitudine e longitudine 
lat_degree = int(latitude/100); 
lng_degree = int(longitude/100); 

# Ricava i minuti della latitudine e longitudine 
lat_mm_mmmm = latitude % 100 
lng_mm_mmmmm = longitude % 100 

# Converte il formato di rappresentazione 
converted_latitude = lat_degree + (lat_mm_mmmm/60) 
converted_longitude = lng_degree + (lng_mm_mmmmm/60) 

print converted_latitude, converted_longitude 

Sostituire la latitudine e la logitude.

0

Seguire l'algoritmo per convertire lo stesso.

var t = "7523.7983" // (DDMM.MMMM) 
 
var g = "03412.9873" //(DDDMM.MMMM) 
 

 
function lat(t){ 
 
    return (Number(t.slice(0,2)) + (Number(t.slice(2,9))/60)) 
 
} 
 

 
function lng(g) { 
 
    return (Number(g.slice(0,3)) + (Number(g.slice(3,10))/60)) 
 
} 
 

 
console.log(lat(t)) 
 
console.log(lng(g))

Problemi correlati