二十一、定位(ch21).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
二十一、定位(ch21).ppt

android.location套件讓應用程式可以使用行動裝置提供的定位服務,其中心類別為「LocationManager」,其他常用的類別有「LocationProvider」、「Location」、「GeoCoder」與「LocationListener」介面。 定位應用除了能提供行動裝置目前所在位置以外,還可以讓行動裝置在進入指定範圍時,發出通知讓使用者知道,也可以透過Location類別計算2個位置之間的近似距離。 因為在空間中任何一點是以3維座標表示,因此理論上只要取得行動裝置與其他3個已知位置點的關係,就能準確的得到行動裝置的位置。 因為GPS定位時衛星與接收機(即行動裝置)之間還多了一個時間差的變數(變數從3個座標,再加上時間差擴大為4個),因此以GPS定位至少必須能接收到4顆衛星的資料。 用GPS定位的誤差可以小到只有幾公尺(商用衛星),因此這種定位又稱為「Fine Location」。 行動裝置只要一開機不論是否通話,都會隨時「ping」最接近的基地台,而每一個基地台都有自己的「CellID」與經緯度座標,因此行動裝置也可以透過基地台的位置得到它自己「近似」位置;如果行動裝置在多個基地台範圍內,也可以用多個基地台的三角關係從Wi-Fi得到定位,這2種定位方式都稱為網路定位或「Coarse Location」。 以下幾種是開發定位應用程式時最常用到的類別與介面: LocationManager類別 應用程式是透過這個類別使用系統的定位服務,包括定期更新行動裝置的地理位置,或是當進入一個預先指定範圍時觸發特定意圖等。 程式利用呼叫「getSystemService(Context.LOCATION_SERVICE)」方法從系統取得此類別的實體。LocationManager類別常用的方法如下: LocationManager類別常用的方法如下: getAllProviders():傳回所有已知位置提供者名稱清單。 getBestProvider(Criteria criteria, boolean enabledOnly):回傳最符合指定標準的位置提供者名稱;參數1為指定的標準,參數2設定是否只對目前已經啟動的位置提供者作用。 getProvider(String name):取得對指定名稱的位置提供者參考,呼叫時需提供位置提供者名稱。 getProviders(boolean enabledOnly):傳回所有位置提供者名稱清單,呼叫時設定是否只回傳已經啟動的位置提供者名稱。 getLastKnownLocation(String provider):依據指定位置提供者取得位置資料,呼叫時需提供位置提供者名稱。 requestLocationUpdates(String provider, long minTime, float minDistance, LocationListener listener):要求指定位置提供者定期更新位置資訊;參數1是位置提供者名稱,參數2以毫秒為單位設定更新的最小間隔時間,參數3設定2次更新之間最小變化距離(公尺),參數4設定偵測位置更新的偵聽器,當位置更新時會呼叫此偵聽器內的「onLocationChanged(Location)」方法。 addProximityAlert(double latitude, double longitude, float radius, long expiration, PendingIntent intent):以經緯度及半徑設定一個警告範圍,當行動裝置偵測進入/離開此範圍時會觸發一個指定的意圖;參數1是指定位置緯度,參數2是指定位置經度,參數3是範圍的半徑(公尺),參數4是偵測期限(毫秒),參數5為觸發的意圖。 removeProximityAlert(PendingIntent intent):依據觸發意圖移除位置警告,呼叫時需提供PendingIntent意圖。 LocationProvider類別 主要作用是週期性的提供行動裝置所在位置資訊,此類別常用方法說明如下: getAccuracy():回傳描述此提供者水平位置精確度的常數,例如「ACCURACY_FINE」或「ACCURACY_COARSE」。 getName():回傳此提供者名稱。 requiresSatellite():以布林值回傳此提供者是否需要存取基於衛星的定位系統(如GPS)。 requiresCell():以布林值回傳此提供者是否需要存取基地台網路。 requiresNetwork():以布林值回傳此提供者是否需要存取Internet。 supportsAltitude():以布林值回傳此提供者是否能提供高度資訊。 supportsBearing():以

文档评论(0)

zhaoxiaoj + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档