ionic+cordova定位插件的使用

网上可以搜到好多,不过能直接用的没几个,可能是新手的锅吧,折腾了几天才做出来,梳理一下吧。

ios的直接用官网的定位插件就行,只有ios的能使用,Android不能定位,并且坐标为Google坐标。命令如下:

ionic cordova plugin add cordova-plugin-geolocation
npm install --save @ionic-native/geolocation

 获取位置信息的调用方法:

/*ios定位插件,GPS定位,需要手机测试效果*/
getLocation() {
  this.geolocation.getCurrentPosition().then((resp) => {
    console.log('GPS定位:您的位置是 ' + resp.coords.longitude + ',' + resp.coords.latitude);
    let x = resp.coords.longitude;
    let y = resp.coords.latitude;
    this.transBd(x, y);//获取数据,并将Google坐标转成百度坐标使用。
  }).catch(e => {
    console.log("获取定位失败" + e);
  });
}

android定位就比较麻烦一些了,我用的百度地图的定位插件,同样先进行插件引入。 这里的key申请的时候要是web端的key,不能是android的key。也可以用我的先试一下。

定位插件,百度地图定位插件:

cordova plugin add https://github.com/liangzhenghui/cordova-qdc-baidu-location -variable API_KEY="7wPXnti8wNvttfVpEeWI3h9Ej4Vksx7X"

或者用文件的方式:

cordova plugin add F:\cordova-qdc-baidu-location-master -variable API_KEY="7wPXnti8wNvttfVpEeWI3h9Ej4Vksx7X" 

 调用方法如下:

getBaidulocation() {
  this.httpService.getGpsModule().then(resp => {
    console.log(resp);//获取的位置信息
    let data = JSON.parse(resp + "");
    alert(data);
  }).catch(error => {
    console.log("未获取位置信息");
  });
}

 其中httpService是我自己定义的一个公共ts,代码如下:

getGpsModule() {
  return new Promise(function (resolve, reject) {
    baidu_location.getCurrentPosition(function (data) {
      let resp = JSON.stringify(data);
      console.log(resp);
      resolve(resp);
    }, function (error) {
      console.log('Error getting location', error);
      reject("定位失败");
    });
  });
}

 其中baidu_location要在import下面声明一下:

declare let baidu_location: any;//定位插件

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值