2013-08-26 40 views
8

Tôi có một mô-đun gps cung cấp cho tôi vĩ độ kinh độ ở định dạng lạ.Vĩ độ kinh độ ở định dạng sai DDDMM.MMMM 2832.3396N

DDDMM.MMMM 

Như được viết trên hướng dẫn sử dụng, Độ * 100 + phút.

Theo như tôi biết, Đó là độ phút giây và giây nằm trong khoảng từ 0-59, cao hơn mức này sẽ tăng thêm phút. Nhưng điều này là cho phút ở vị trí thập phân. Điều này có nghĩa là 1/1000 giây?

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

Cũng như thế nào tôi sẽ chuyển đổi nó sang thập phân, Tôi đang sử dụng công thức

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

**. 3644 ** là phút mà là bằng giây **/60 ** – Gangadhar

+0

Hi, tôi đang phải đối mặt với vấn đề tương tự, NEMA nhận dạng là ddmm.mmmm. Tôi cần phải chuyển đổi giống với ddmm.mmmmmm. 1. định dạng này giải thích là gì? ddmm.mmmmmm? Vui lòng giải thích. 2. Để chuyển ddmm.mmmm thành ddmm.mmmmmm, tôi đã ddmm (mmmm * 60). Đây có phải là chính xác – Aada

Trả lời

16

Để chuyển đổi thành định dạng thập phân, chúng tôi bắt đầu bằng cách giữ phần DD và chỉ cần chia MM.MMM cho 60 để xác định phần MMM của định dạng thập phân.

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

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

43.80375, -79.98456  

Trong trường hợp của bạn

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

Cảm ơn vì điều này, tôi dành nhiều thời gian – Shridhar

+0

giải quyết vấn đề của tôi là tốt. Tôi biết về Longi nhưng không chắc về lati. –

+0

@Gangadhar - liên kết chết – Ian

2

1 phút = 60 giây, vì vậy phút .3644 = .3644 * 60 = 21,86 giây.

1

Giá trị không phải là số nhưng một chuỗi có trình độ và phút nối vào nhau. Bạn cần phải cẩn thận vì có khả năng giá trị vĩ độ chỉ có hai chữ số (tức là DDMM.MMMM), vì vậy nếu bạn sử dụng xử lý chuỗi để tách các giá trị, bạn phải tính đến điều đó. Tuy nhiên cả hai dài và lat có thể bị xử lý số lượng như sau:

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

Bạn cũng có thể vượt qua các nhân vật bán cầu E/W hoặc N/S để chức năng này và sử dụng nó để xác định phù hợp +/- dấu nếu có yêu cầu.

1

thực hiện đơn giản bằng 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 

Thay vĩ độ và logitude.

0

Làm theo thuật toán để chuyển đổi giống nhau.

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))

Các vấn đề liên quan