ionic添加百度地圖錨定外掛程式cordova-plugin-baidu-geolocation.git

來源:互聯網
上載者:User

該外掛程式適合在ionic工程的js代碼中直接調用定位功能(包括wifi、基站、GPS),返回指定座標系的位置資訊,支援位置追蹤。
具體步驟如下:
1,如果電腦沒有安裝git,請先安裝git,官方下載連結:
https://git-scm.com/download/win

2,進入ionic工程目錄,執行以下指令:

cordova plugin add https://github.com/ETENG-OSP/cordova-plugin-baidu-geolocation.git --variable API_KEY=百度分配的AK --save

3,如果工程已經添加了安卓或者iOS的platform,分別移除之後再添加,如果還未添加platform則忽略。

ionic remove platform androidionic remove platform iosionic add platform androidionic add platform ios

4,在ionic工程中的config.xml檔案中添加配置。

  <!-- android 使用本外掛程式 -->  <platform name="android">    ......    <plugin name="cordova-plugin-baidu-geolocation" spec="https://github.com/ETENG-OSP/cordova-plugin-baidu-geolocation">      <variable name="API_KEY" value="百度分配的AK" />    </plugin>    ......  </platform>  <!-- iOS 使用官方外掛程式 -->  <platform name="ios">    ......    <plugin name="cordova-plugin-geolocation" spec="~1.0.0" />    ......  </platform>

關於百度地圖的api_key,使用前需要在百度申請應用,擷取 API_KEY。填錯了的話僅能使用 GPS 定位,無法使用基站與 WIFI 定位。

5,在工程js代碼中使用,直接貼代碼:

if(navigator.geolocation) {          navigator.geolocation.getCurrentPosition(function(position) {            var point = new BMap.Point(position.coords.longitude, position.coords.latitude);            if(ionic.Platform.isIOS()){              //判斷終端是否為IOS,如果是IOS則進行座標轉換(IOS返回的不是百度地圖座標系)              var convertor = new BMap.Convertor();              var pointArr = [];              pointArr.push(point);              convertor.translate(pointArr, 0, 5, function(data){                if (data.status === 0) {                  //擷取到bd09ll座標系座標                  var locationPoint = new BMap.Point(data.points[0].lng, data.points[0].lat);                }              });            }else{                //安卓直接擷取的是bd09ll座標系座標,不需要轉換            }          }, function(error) {            //定位失敗相關操作          }, {            coorType: 'bd09ll',            maximumAge: 3000,            timeout: 2000,            enableHighAccuracy: true          });        }else {          //無法使用navigator.geolocation定位相關操作        }

關於配置項資訊解釋:

  coorType: 'bd09ll',         // 預設是 gcj02,可填 bd09ll 以擷取百度經緯度用於訪問百度 API  maximumAge: 3000,         // 緩衝時間  timeout: 2000,            // 逾時時間  enableHighAccuracy: true  // 是否使用 GPS

6,如需要持續追蹤使用者位置:

navigator.geolocation.watchPosition(success, [error], [options]);

注意:如果你使用sdk23版本進行打包的,你就要注意了,在最新的android6.0上面,和以前的許可權授權機制已經不同,如果使用23版本的進行打包,在android6.0以上的手機上運行不會給出擷取地理位置許可權的彈窗,務必改為23以下的版本進行編譯

參考資料:
https://github.com/ETENG-OSP/cordova-plugin-baidu-geolocation/blob/master/README.md
http://blog.csdn.net/sean_css/article/details/52248190

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.