首先搞清楚幾個問題:
1.GPS輸出的經緯度
GPS獲取的數據:
3438.1633,N,11224.4992,E
格式是ddmm.mmmmm
2.Onenet服務器識別的經緯度坐標格式
服務器識別需要把度分秒轉換為度
轉換成度分秒的
緯度lat
34° 38.1633′
38.1633/60=0.636055
34.636055
經度lon:
112°24.4992′
24.4992/60=0.40832
緯度為112.40832
然后上傳到服務器的數據流格式如下:
POST /devices/3225187/datapoints HTTP/1.1
api-key: R9xO5NZm6oVI4YBHvCPKEqtwYtMA
Host: api.heclouds.com
Content-Length:94
{"datastreams":[{"id":"location","datapoints":[{"value":{"lon":112.40832,"lat":34.636055}}]}]}
3.百度地圖的坐標
這部分沒有轉換公式,一般GPS坐標轉換百度地圖的過程被稱為“糾偏”
而使用Onenet我們根本不需要去研究這個復雜的計算或者API調用,因為中國移動的服務器會自動去轉換地圖坐標,我們不需要關心,只知道有這個糾偏過程就行了
如果自己想轉換坐標,需要看到百度地圖的坐標抓換API
http://lbsyun.baidu.com/index.php?title=webapi/guide/changeposition