百度定位SDK的使用示例
生活随笔
收集整理的這篇文章主要介紹了
百度定位SDK的使用示例
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文基于最新的百度地圖定位SDK(V4.0 版本)使用的定位Demo
使用百度地圖SDK進(jìn)行實(shí)時定位的主要有6步:
// 啟用定位 mBaiduMap.setMyLocationEnabled(true); // 1. 初始化LocationClient類 mLocationClient = new LocationClient(getApplicationContext()); // 2. 聲明LocationListener類(負(fù)責(zé)監(jiān)聽位置變化) locationListener = new MyLocationListener(); // 3. 注冊監(jiān)聽函數(shù) mLocationClient.registerLocationListener(locationListener); // 4. 設(shè)置參數(shù) LocationClientOption clientOption = new LocationClientOption(); clientOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);// 設(shè)置定位模式 clientOption.setCoorType("bd09ll"); // 設(shè)置定位結(jié)果類型 clientOption.setScanSpan(5000); // 設(shè)置發(fā)起定位請求的時間間隔,ms clientOption.setIsNeedAddress(true); // 設(shè)置返回的定位結(jié)果包含地址信息 clientOption.setNeedDeviceDirect(true);// 設(shè)置返回結(jié)果包含手機(jī)的方向// 5. 應(yīng)用上面的參數(shù) mLocationClient.setLocOption(clientOption); // 6. 注冊位置提醒監(jiān)聽事件// 7. 開啟/關(guān)閉 定位SDK mLocationClient.start(); mLocationClient.stop();為了實(shí)時監(jiān)聽我們位置的變化,我們需要實(shí)現(xiàn)BDLocationListener類,獲得系統(tǒng)實(shí)時的位置信息,并重載onReceiveLocation方法返回位置結(jié)果 class MyLocationListener implements BDLocationListener { // 異步返回的定位結(jié)果 @Override public void onReceiveLocation(BDLocation bdLocation) { if (bdLocation == null) { return; } locType = bdLocation.getLocType(); Toast.makeText(MainActivity.this, "當(dāng)前定位的返回值是:" + locType, Toast.LENGTH_SHORT).show(); longitude = bdLocation.getLongitude(); latitude = bdLocation.getLatitude(); if (bdLocation.hasRadius()) {// 判斷是否有定位精度半徑 radius = bdLocation.getRadius(); } if (locType == BDLocation.TypeGpsLocation) {// Toast.makeText(MainActivity.this, "當(dāng)前速度是:" + bdLocation.getSpeed() + "定位使用衛(wèi)星數(shù)量:" + bdLocation.getSatelliteNumber(), Toast.LENGTH_SHORT).show(); } else if (locType == BDLocation.TypeNetWorkLocation) { addrStr = bdLocation.getAddrStr();// 獲取反地理編碼(文字描述的地址) Toast.makeText(MainActivity.this, addrStr, Toast.LENGTH_SHORT).show(); } direction = bdLocation.getDirection();// 獲取手機(jī)方向,【0~360°】,手機(jī)上面正面朝北為0° province = bdLocation.getProvince(); // 省份 city = bdLocation.getCity(); // 城市 district = bdLocation.getDistrict(); // 區(qū)縣 Toast.makeText(MainActivity.this, province + "~" + city + "~" + district, Toast.LENGTH_SHORT).show(); // 構(gòu)造定位數(shù)據(jù) MyLocationData locData = new MyLocationData.Builder() .accuracy(radius) // 定位精度半徑 .direction(direction) // 方向 .latitude(latitude) // 緯度 .longitude(longitude) // 精度 .build(); // 設(shè)置定位數(shù)據(jù) mBaiduMap.setMyLocationData(locData); LatLng ll = new LatLng(latitude, longitude); MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(ll); mBaiduMap.animateMapStatus(msu); } }
轉(zhuǎn)載于:https://www.cnblogs.com/hot-destiny/p/5904976.html
總結(jié)
以上是生活随笔為你收集整理的百度定位SDK的使用示例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CSS优先级算法是如何计算?
- 下一篇: kvm之三:本地安装虚拟机