精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

關(guān)于Android上如何做GPS相關(guān)定位服務(wù)

移動開發(fā) Android
今天因為工作需要,把以前編寫的一個GPS測試程序拿出來重新修改了一下。這個程序說起來有些歷史了,是我11年編寫的,那時候?qū)W了Android開發(fā)沒多久,算是一個實驗性的作品。現(xiàn)在工作需要,重新拿出來修整。

今天因為工作需要,把以前編寫的一個GPS測試程序拿出來重新修改了一下。這個程序說起來有些歷史了,是我11年編寫的,那時候?qū)W了Android開發(fā)沒多久,算是一個實驗性的作品。現(xiàn)在工作需要,重新拿出來修整。同時發(fā)現(xiàn)我對android的GPS服務(wù)了解并不深,所以今天特意閱讀了有關(guān)GPS服務(wù)的一些資料,把相關(guān)知識點記錄下來。

本人做了GPS相關(guān)的嵌入式軟件已經(jīng)幾年了,所以說起要做個測試GPS定位模塊的程序,第一反應(yīng)就是串口讀取GPS模塊的數(shù)據(jù),然后解析GPS的NMEA格式數(shù)據(jù)。NMEA是一種標準化數(shù)據(jù)格式,不僅僅GPS上應(yīng)用了,其他一些工業(yè)通信也是使用這種標準化數(shù)據(jù)格式。解析相關(guān)數(shù)據(jù)然后顯示出來,就完成了一個基本的GPS定位測試功能。

查了一下才發(fā)現(xiàn)Android上做GPS相關(guān)定位服務(wù),不需要讀取NMEA數(shù)據(jù)分析,Android已經(jīng)封裝好了相關(guān)服務(wù),你要做的就是調(diào)用API。這個不知道應(yīng)該覺得爽還是覺得糾結(jié)。(Android也提供了讀取NMEA接口,下面會說到)

1、Android 定位服務(wù)

下面我們先來看看Android有關(guān)定位服務(wù)提供的支持:

 

Android定位服務(wù)都是位于location下,上面都有相關(guān)說明,這里就不詳細解析。有一點有需要說說的是:GpsStatus.NmeaListener 官方的說法是可以讀取NMEA數(shù)據(jù),但是我這里測試發(fā)現(xiàn),并沒有讀取到NMEA的數(shù)據(jù)。查閱過一些資料,說是google在底層并沒有實現(xiàn)數(shù)據(jù)反饋的功能。有時間,需要查看一下源碼。

2、LocationManager定位

  1. //獲取定位服務(wù) 
  2. LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE); 
  3. //判斷是否已經(jīng)打開GPS模塊 
  4. if (locationManager.isProviderEnabled(android.location.LocationManager.GPS_PROVIDER)) { 
  5. //GPS模塊打開,可以定位操作 
  6. // 通過GPS定位 
  7. String LocateType = locationManager.GPS_PROVIDER; 
  8. Location location = locationManager.getLastKnownLocation(LocateType); 
  9. // 設(shè)置監(jiān)聽器,設(shè)置自動更新間隔這里設(shè)置1000ms,移動距離:0米。 
  10. locationManager.requestLocationUpdates(provider, 1000, 0, locationListener); 
  11. // 設(shè)置狀態(tài)監(jiān)聽回調(diào)函數(shù)。statusListener是監(jiān)聽的回調(diào)函數(shù)。 
  12. locationManager.addGpsStatusListener(statusListener); 
  13. //另外給出 通過network定位設(shè)置 
  14. String LocateType = locationManager.NETWORK_PROVIDER; 
  15. Location location = locationManager.getLastKnownLocation(LocateType);  

3、GpsStatus監(jiān)聽器

上面給出了定位服務(wù)的初始化設(shè)置步驟,但我們都知道GPS衛(wèi)星是定期廣播數(shù)據(jù)的,也就是說會定期收到衛(wèi)星的GPS數(shù)據(jù)。我們并不能跟衛(wèi)星主動申請數(shù)據(jù),只能被動接收數(shù)據(jù)。(中國的北斗2倒是可以發(fā)送衛(wèi)星報文給衛(wèi)星)因此我們需要注冊一個監(jiān)聽器來處理衛(wèi)星返回的數(shù)據(jù)。

  1. private final GpsStatus.Listener statusListener = new GpsStatus.Listener() { 
  2.         public void onGpsStatusChanged(int event) { 
  3. // GPS狀態(tài)變化時的回調(diào),獲取當前狀態(tài) 
  4.             GpsStatus status = locationManager.getGpsStatus(null); 
  5. //自己編寫的方法,獲取衛(wèi)星狀態(tài)相關(guān)數(shù)據(jù) 
  6.             GetGPSStatus(event, status); 
  7.         } 
  8.     };  

4、獲取搜索到的衛(wèi)星

  1. private void GetGPSStatus(int event, GpsStatus status) { 
  2.         Log.d(TAG, "enter the updateGpsStatus()"); 
  3.         if (status == null) { 
  4.         } else if (event == GpsStatus.GPS_EVENT_SATELLITE_STATUS) { 
  5. //獲取最大的衛(wèi)星數(shù)(這個只是一個預(yù)設(shè)值) 
  6.             int maxSatellites = status.getMaxSatellites(); 
  7.             Iterator it = status.getSatellites().iterator(); 
  8.             numSatelliteList.clear(); 
  9. //記錄實際的衛(wèi)星數(shù)目 
  10.             int count = 0; 
  11.             while (it.hasNext() && count <= maxSatellites) { 
  12. //保存衛(wèi)星的數(shù)據(jù)到一個隊列,用于刷新界面 
  13.                 GpsSatellite s = it.next(); 
  14.                 numSatelliteList.add(s); 
  15.                 count++; 
  16.                 Log.d(TAG, "updateGpsStatus----count=" + count); 
  17.             } 
  18.             mSatelliteNum = numSatelliteList.size(); 
  19.         } else if (event == GpsStatus.GPS_EVENT_STARTED) { 
  20. //定位啟動 
  21.         } else if (event == GpsStatus.GPS_EVENT_STOPPED) { 
  22. //定位結(jié)束 
  23.         } 
  24.     }  

上面就是從狀態(tài)值里面獲取搜索到的衛(wèi)星數(shù)目,主要是通過status.getSatellites()實現(xiàn)。獲取到的GpsSatellite對象,保存到一個隊列里面,用于后面刷新界面。上面是獲取GPS狀態(tài)監(jiān)聽器,除了GPS狀態(tài)外,我們還需要監(jiān)聽一個服務(wù),就是:LocationListener,定位監(jiān)聽器,監(jiān)聽位置的變化。這個對做定位服務(wù)的應(yīng)用來說,十分重要。

5、LocationListener監(jiān)聽器

  1. private final LocationListener locationListener = new LocationListener() 
  2.     { 
  3.         public void onLocationChanged(Location location) 
  4.         { 
  5. //當坐標改變時觸發(fā)此函數(shù),如果Provider傳進相同的坐標,它就不會被觸發(fā) 
  6.             updateToNewLocation(location); 
  7.             Log.d(TAG, "LocationListener  onLocationChanged"); 
  8.         } 
  9.         public void onProviderDisabled(String provider) 
  10.         { 
  11. //Provider被disable時觸發(fā)此函數(shù),比如GPS被關(guān)閉 
  12.             Log.d(TAG, "LocationListener  onProviderDisabled"); 
  13.         } 
  14.         public void onProviderEnabled(String provider) 
  15.         { 
  16. // Provider被enable時觸發(fā)此函數(shù),比如GPS被打開 
  17.             Log.d(TAG, "LocationListener  onProviderEnabled"); 
  18.         } 
  19.         public void onStatusChanged(String provider, int status, Bundle extras) 
  20.         { 
  21.             Log.d(TAG, "LocationListener  onStatusChanged"); 
  22. // Provider的轉(zhuǎn)態(tài)在可用、暫時不可用和無服務(wù)三個狀態(tài)直接切換時觸發(fā)此函數(shù) 
  23.             if (status == LocationProvider.OUT_OF_SERVICE || status == LocationProvider.TEMPORARILY_UNAVAILABLE)       { 
  24.         } 
  25.         } 
  26.     };  

位置監(jiān)聽回調(diào)是用來處理GPS位置發(fā)生變化的時候,自動回調(diào)的方法,我們可以從這里獲取到當前的GPS數(shù)據(jù)。另外我們可以通過回調(diào)函數(shù)提供的location參數(shù),獲取GPS的地理位置信息,包括經(jīng)緯度、速度、海拔等信息。 6、獲取地理位置信息(經(jīng)緯度、衛(wèi)星數(shù)目、海拔、定位狀態(tài))

  1. //location對象是從上面定位服務(wù)回調(diào)函數(shù)的參數(shù)獲取。 
  2. mLatitude = location.getLatitude();   // 經(jīng)度 
  3. mLongitude = location.getLongitude();  // 緯度 
  4. mAltitude = location.getAltitude();   //海拔 
  5. mSpeed = location.getSpeed();       //速度 
  6. mBearing = location.getBearing();    //方向  

7、獲取指定衛(wèi)星信息(方向角、高度角、信噪比)

  1. //temgGpsSatellite就是我們上面保存的搜索到的衛(wèi)星 
  2. //方向角 
  3. float azimuth = temgGpsSatellite.getAzimuth(); 
  4. //高度角 
  5. float elevation = temgGpsSatellite.getElevation(); 
  6. //信噪比 
  7. float snr = temgGpsSatellite.getSnr();  

利用方向角、高度角我們可以繪畫出一個二維圖形,表示衛(wèi)星在地球哪個方位,信噪比作用更大。一般的衛(wèi)星定位測試軟件,都提供了信噪比的狀態(tài)圖,這是表示GPS模塊搜星能力的代表。

8、繪畫二維衛(wèi)星位置圖

下面是我做的GPS測試的效果圖:

 

下面給出一個根據(jù)方向角和高度角,計算衛(wèi)星二維圖里面位置的方法,上面效果圖左邊的綠色圓點就代表衛(wèi)星位置。

右邊的信噪比柱狀圖,代表衛(wèi)星的接收信號能力。

  1. //根據(jù)方向角和高度角計算出,衛(wèi)星顯示的位置 
  2. Point point = new Point(); 
  3. int x = mEarthHeartX; //左邊地球圓形的圓心位置X坐標 
  4. int y = mEarthHeartY; //左邊地球圓形的圓心位置Y坐標 
  5. int r = mEarthR; 
  6. x+=(int)((r*elevation*Math.sin(Math.PI*azimuth/180)/90)); 
  7. y-=(int)((r*elevation*Math.cos(Math.PI*azimuth/180)/90)); 
  8. point.x = x; 
  9. point.y = y; 
  10. //point就是你需要繪畫衛(wèi)星圖的起始坐標  

信噪比的繪畫,就是一個單位換算,這里就不給代碼了。

9、總結(jié):

Android為我們提供了很方便的位置服務(wù),主要通過GpsStatus、LocationManager、GpsSatellite這幾個類實現(xiàn)相關(guān)服務(wù)和監(jiān)聽。

不過個人覺得如果能直接讀取NMEA的數(shù)據(jù)也是很方便,起碼對于某些應(yīng)用來說,可以獲取更多信息。 

責任編輯:龐桂玉 來源: Android開發(fā)中文站
相關(guān)推薦

2010-06-11 17:04:17

OSPF路由協(xié)議

2009-12-30 11:16:36

Silverlight

2011-05-27 15:56:30

Android

2013-11-13 10:21:42

混合云服務(wù)私有數(shù)據(jù)中心公共云

2023-10-28 09:08:19

微服務(wù)saas私有化

2014-11-13 14:07:04

2020-08-06 11:20:49

數(shù)據(jù)泄露NSA位置數(shù)據(jù)

2022-08-29 08:08:58

SQLOracleCPU

2022-08-03 09:11:31

React性能優(yōu)化

2018-01-11 14:38:43

2017-12-12 16:17:55

微服務(wù)系統(tǒng)運維

2013-03-29 10:47:39

Android獲取經(jīng)緯AndroidGPS定

2015-07-30 11:21:16

代碼審查

2014-06-27 14:53:06

應(yīng)用App產(chǎn)品

2022-02-17 13:18:58

定價模型營銷AHP

2012-03-12 16:42:54

測試

2023-12-29 10:04:47

數(shù)據(jù)分析

2013-07-24 10:01:24

產(chǎn)品設(shè)計產(chǎn)品經(jīng)理新手做產(chǎn)品

2021-04-25 09:19:22

騰訊Code Reviewleader

2023-11-06 07:33:01

推薦策略數(shù)據(jù)分析
點贊
收藏

51CTO技術(shù)棧公眾號

2019中文字幕全在线观看| 91精品国产麻豆| 日韩av一区二区三区在线| 亚洲天堂中文字幕在线| 亚洲九九视频| 日韩电影中文字幕在线观看| 黄色三级视频在线| 在线电影福利片| 91麻豆123| 91在线国产电影| 日韩精品1区2区| 一本一道久久a久久精品蜜桃| 亚洲国产精品中文| 亚洲免费黄色录像| 国模私拍一区二区国模曼安| 中文字幕在线观看不卡视频| 久热国产精品视频一区二区三区| 国产精品视频第一页| 国产美女诱惑一区二区| 精品国产欧美成人夜夜嗨| 精品1卡二卡三卡四卡老狼| 国产精品高潮久久| 黑人精品xxx一区一二区| 在线视频一二三区| yjizz视频网站在线播放| 成人国产精品免费网站| 91夜夜未满十八勿入爽爽影院| 亚洲 欧美 中文字幕| 激情成人综合| 欧美超级免费视 在线| 一级黄色录像毛片| 亚洲激情77| 精品久久久网站| 免费精品99久久国产综合精品应用| 日韩深夜视频| 亚洲成人免费视频| 日产精品久久久久久久蜜臀| 浪潮av一区| 中文字幕国产精品一区二区| 蜜桃视频在线观看91| 黄色av网址在线| 国产麻豆视频一区二区| 成人av番号网| 国产精品伦理一区| 国内国产精品久久| 91九色视频导航| 国产精品久久久国产盗摄| 日韩成人午夜精品| 国产精品久久激情| 最近中文字幕免费观看| 日韩专区在线视频| 国产精品国语对白| 中文在线最新版天堂| 久久久天天操| 国产成人在线亚洲欧美| 中文字幕在线观看视频免费| 久久精品卡一| 国产成人综合久久| 日韩欧美一级大片| 麻豆一区二区在线| 亚洲在线免费观看| 亚洲精品18在线观看| 国产传媒日韩欧美成人| 国产精品中出一区二区三区| 天天干天天爽天天操| 26uuu成人网一区二区三区| 国产精品一区二区不卡视频| 午夜小视频免费| 2022国产精品视频| 亚洲精品一区二区三区蜜桃久| yw在线观看| 亚洲免费电影在线| 国产69精品久久久久久久| 蜜桃av在线| 欧美午夜精品久久久久久超碰| 57pao国产成永久免费视频| 久久久久久亚洲精品美女| 精品第一国产综合精品aⅴ| 国产精品无码一区二区三| 一本久久青青| 久久精品视频免费播放| 日韩精品――中文字幕| 日韩专区欧美专区| av资源站久久亚洲| 激情在线视频| 一区二区三区在线不卡| 五十路熟女丰满大屁股| av亚洲一区| 欧美mv和日韩mv的网站| 成人片黄网站色大片免费毛片| 日韩中文欧美| 久久久中精品2020中文| 精品人妻一区二区三区免费看 | 97国产在线播放| 欧美日韩国产网站| 日韩精品一区二区在线| 国产黄色三级网站| 香蕉av一区二区| 91成人在线观看国产| 一区二区小视频| av在线播放成人| 亚洲一区二区精品在线| 多野结衣av一区| 正在播放一区二区| 99久久久久久久久久| 欧美国产高清| 国产欧美久久久久久| 午夜影院在线视频| 亚洲精品欧美激情| 国产超碰在线播放| 国产91精品入| 免费成人高清视频| 伊人网综合在线| 久久久蜜臀国产一区二区| 成人污网站在线观看| 全亚洲第一av番号网站| 亚洲国产小视频| 国产va在线播放| 蜜桃av一区二区三区电影| 精品乱子伦一区二区三区| 九七电影韩国女主播在线观看| 色综合色狠狠综合色| 韩国三级hd中文字幕有哪些| 色综合久久网| 国产精品999| 青青操视频在线| 香蕉影视欧美成人| 在线观看一区二区三区视频| 日韩激情在线| 国产精品久久久久99| 日韩在线无毛| 精品久久中文字幕| 国产一级黄色录像| 亚洲电影成人| 精品不卡一区二区三区| 久久久123| 欧美大片在线观看| 丰满少妇高潮久久三区| 国产在线观看免费一区| 中文字幕人成一区| 四虎国产精品永久在线国在线| 欲色天天网综合久久| 久久久久久无码午夜精品直播| 久久久久国产精品人| av片中文字幕| 国产欧美日韩视频在线| 日韩av色综合| av在线之家电影网站| 欧洲一区二区三区在线| 成都免费高清电影| 男人的天堂久久精品| 涩涩日韩在线| 综合欧美精品| 久久69精品久久久久久国产越南| 国产喷水吹潮视频www| 亚洲免费色视频| 三大队在线观看| 影音先锋久久| 欧美少妇一区| 欧美黑粗硬大| 欧美大奶子在线| 欧美 日韩 国产 成人 在线 91| 午夜日韩在线电影| 色欲av无码一区二区三区| 日韩精品一区第一页| 香蕉久久夜色| 精品一区二区三区亚洲| 久久琪琪电影院| 久久精品蜜桃| 欧美精品久久99| 精品少妇久久久久久888优播| av在线一区二区| 欧美视频免费播放| 中文不卡在线| 狼狼综合久久久久综合网| 全球最大av网站久久| 久久精品亚洲热| 亚洲色图21p| 欧美特级限制片免费在线观看| 伊人在线视频观看| 99久久免费视频.com| 91香蕉视频污版| 国产字幕视频一区二区| 欧美一进一出视频| 另类视频一区二区三区| 91精品国产高清自在线| 在线看黄色av| 亚洲成年网站在线观看| 成人免费视频国产免费| 亚洲美腿欧美偷拍| 国产交换配乱淫视频免费| 老司机精品视频一区二区三区| 男人添女荫道口女人有什么感觉| 国产精品亚洲片在线播放| 91影院在线免费观看视频| 在线手机中文字幕| 欧美精品在线免费| 国产永久免费高清在线观看 | 性感美女久久精品| 成年人看的免费视频| 成人91在线观看| 在线看免费毛片| 久久久久久婷| 日韩欧美不卡在线| 中文精品久久| 日韩一区二区电影在线观看| 国产色噜噜噜91在线精品| 国产日本欧美一区二区三区在线 | 国产一级二级三级在线观看| 日韩免费在线观看| 一级特黄色大片| 欧美性猛交xxxx黑人| 久久免费在线观看视频| 国产精品国产三级国产| 波多野结衣 在线| av网站一区二区三区| 成人免费黄色av| 美女精品一区二区| 99视频精品免费| 国产一区二区你懂的| 久久人人爽人人爽人人av| 欧美aaaaaaaaaaaa| 视频一区国产精品| 亚洲日产av中文字幕| 精品无人乱码一区二区三区的优势 | 午夜不卡av免费| 日本少妇高清视频| 亚洲素人一区二区| 日韩欧美视频免费观看| 国产日韩欧美精品在线| 成人午夜福利一区二区| 91视频在线观看免费| 国产老熟女伦老熟妇露脸| 国产不卡视频在线播放| 精品人妻一区二区三区免费| 国内成+人亚洲+欧美+综合在线| 亚洲三级视频网站| 日产欧产美韩系列久久99| 中文字幕无码不卡免费视频| 亚洲欧美日韩专区| 自慰无码一区二区三区| 国产农村妇女毛片精品久久莱园子| 成年人看的毛片| 在线视频观看日韩| 免费 成 人 黄 色| 在线视频亚洲| 亚洲乱码国产一区三区| 日韩中文欧美在线| www.com操| 国产一区二区不卡老阿姨| 国产乱码一区二区三区四区| 激情综合色综合久久| 无套内谢丰满少妇中文字幕| 国产乱码精品一区二区三| 老司机av网站| 99精品桃花视频在线观看| 国产ts丝袜人妖系列视频| 久久久久国产成人精品亚洲午夜| 丰满少妇高潮一区二区| 国产欧美日韩麻豆91| 一区二区三区在线播放视频| 亚洲欧洲性图库| 久久久综合久久| 欧美日韩国产精品| 国产精品国产精品国产| 制服丝袜激情欧洲亚洲| 亚洲国产一二三区| 亚洲国产精品久久久久秋霞蜜臀| 色视频在线观看免费| 中文字幕免费精品一区高清| 黄网站视频在线观看| 午夜精品三级视频福利| 精品3atv在线视频| 国产日韩欧美在线看| 亚洲综合影院| 欧美亚洲免费高清在线观看| 久久一区二区三区喷水| 国产精品视频一二三四区| 久久高清免费观看| 91pony九色| 99精品视频中文字幕| 天堂av网手机版| 一区二区三区不卡视频在线观看 | 在线观看h网| 555www成人网| 99视频有精品高清视频| 久久免费一区| 91精品国产自产在线观看永久∴| cao在线观看| 久久超碰97人人做人人爱| 国产a级片视频| 国产精品情趣视频| 日本熟女一区二区| 欧美特级限制片免费在线观看| 国产小视频免费观看| 色久欧美在线视频观看| 99久久精品免费看国产小宝寻花| 国产精品久久久久9999| 麻豆一区二区| 91九色国产ts另类人妖| 久久一二三四| 久久精品女同亚洲女同13| 成人欧美一区二区三区白人| 综合激情网五月| 精品精品欲导航| 午夜激情视频在线| 日韩免费观看网站| 国产精品超碰| 日本老太婆做爰视频| 日韩成人一级大片| 中文字幕av观看| 亚洲一二三四区不卡| 国产精品久久久久久免费播放| 亚洲美女www午夜| ****av在线网毛片| 99三级在线| 亚洲一本二本| 亚洲一级片网站| 国产日韩欧美激情| 国产精品久免费的黄网站| 精品国产免费视频| 污视频网站在线免费| 国产日韩欧美在线看| 日韩欧美视频在线播放| 最近免费中文字幕中文高清百度| www.欧美色图| 九九九国产视频| 精品国产成人系列| 手机在线免费看av| 99在线视频首页| 欧美精品黄色| 亚洲精品一区二区18漫画| 亚洲婷婷综合色高清在线| 在线免费av片| 久久精品国产久精国产一老狼| 电影亚洲一区| 亚洲v国产v| 久久精品理论片| 日本二区三区视频| 欧美军同video69gay| 日本高清中文字幕在线| 国产欧美亚洲视频| 久久中文字幕av一区二区不卡| 粉色视频免费看| 综合久久一区二区三区| 国产三级在线观看视频| 欧美成在线观看| 国产精品美女在线观看直播| 精品少妇在线视频| www日韩大片| 国产九色91回来了| 北条麻妃一区二区三区中文字幕| 四虎影视国产精品| 超碰97在线看| 成人高清av在线| 久久99国产综合精品免费| 亚洲无限av看| 四虎国产精品永久在线国在线| 视色,视色影院,视色影库,视色网| 国产一区二区三区综合| 精品无码av在线| 亚洲精品一区二区在线| 成人高清一区| 日本美女爱爱视频| 99久久久精品| 亚洲视频在线免费播放| 久久在线免费视频| 日韩mv欧美mv国产网站| 国产又粗又长又大的视频| 1区2区3区精品视频| 精品免费久久久| 欧美最猛性xxxx| 天天综合一区| 国产一级伦理片| 精品视频一区二区三区免费| 羞羞的视频在线观看| 久久久久网址| 精品一区二区三区视频| 精品久久免费视频| 中文字幕欧美日韩在线| 中文字幕一区二区三区日韩精品| 国产免费毛卡片| 《视频一区视频二区| 神马午夜一区二区| 国产精品网红福利| 日韩视频在线一区二区三区 | 国产女主播在线直播| 91在线观看免费高清| 午夜一级久久| www.99re7| 揄拍成人国产精品视频| 久久精品66| 一级做a爱视频| 色素色在线综合| 超碰在线网站| 性做爰过程免费播放| 久久久亚洲国产美女国产盗摄| 亚洲国产欧美另类| 成人免费在线视频网站| 首页综合国产亚洲丝袜|