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