ionic 獲取手機所在位置


之前項目中需要使用到定位功能,前邊的文章提到的坐標位置是有問題的,是國際坐標,國內的環境使用google地圖會出現問題,所以需要使用國內的地圖進行坐標解析,因為國內和國外的坐標體系不一致,需要通過轉換才能使用【具體原因請到網上自由查找】

1.先需要安裝插件,在項目的根目錄下運行命令

cordova plugin add cordova-plugin-geolocation
然后這里需要注意,你的跟模塊需要加入ngCordova才能使用,否則不能操作設備的,注入方式如下:
angular.module('app', ['ionic',
  'ngCookies',
/*在該處注入*/
'ngCordova' ]);

 

2.控制器中注入$cordovaGeolocation

3.添加如下代碼

// 根據GPS獲取獲取用戶所在位置
var getAutoLocation = function() {
  //GPS定位
  scope.location = ''; 
  $cordovaGeolocation.getCurrentPosition({
    timeout: 10000,
    enableHighAccuracy: false
  }).then(function(position) {
    var gcj = coordtransform.wgs84togcj02(position.coords.longitude, position.coords.latitude);
    var baidu = coordtransform.gcj02tobd09(gcj[0], gcj[1]);
    var pt = new BMap.Point(baidu[0], baidu[1]);
    var gc = new BMap.Geocoder();
    // 根據坐標獲取地址
    gc.getLocation(pt, function(rs) {
      var addComp = rs.addressComponents;      
    });
  }, function() {
    // myToast.success('定位失敗!');
  });
};

這里使用了兩個類庫

一個是coordtransform

地址是:

鏈接: https://pan.baidu.com/s/1nT7Qh90ndtZ3OquC-uy1bw 密碼: btsm【使用方法直接引用即可,也可以自己封裝。這個類庫是別人封裝的,現在找不到地址了,只好自己上傳了一個】

另外一個是Bmap,使用的是百度地圖的類庫,可以在網上直接下載,也有直接封裝好的ionic的服務和指令,可以自行查找

 
        


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM