2.0.7 • Published 2 years ago

cordova-plugin-gaodelocation-chenyu v2.0.7

Weekly downloads
45
License
ISC
Repository
github
Last release
2 years ago

高德地图定位

插件环境 cordova-android >= 7.0.0

基础功能

  • 单次定位
  • 持续定位

1.申请密钥

请参照: 申请android密钥定位SDK 申请ios密钥定位SDK

2.安装插件

# 1.通过npm 安装 

cordova plugin add cordova-plugin-gaodelocation-chenyu --variable  ANDROID_API_KEY=your android key --variable  IOS_API_KEY=your ios key

npm install --save @ionic-native/gao-de-location

# 2.通过github安装 
cordova plugin add https://github.com/waliu/cordova-plugin-gaodelocation-chenyu  --variable  ANDROID_API_KEY=your android key --variable  IOS_API_KEY=your ios key

# 3.或者本地安装
cordova plugin add --link 文件路径  --variable ANDROID_API_KEY=your android key --variable  IOS_API_KEY=your ios key

3.js/ts使用方法

// 1.js项目调用
window.GaoDe.getCurrentPosition(successCallback, failedCallback,option);
window.GaoDe.startSerialLocation(successCallback, failedCallback,option);
window.GaoDe.stopSerialLocation(successCallback, failedCallback);
// 2.ts/ionic项目调用。
(<any>window).GaoDe.getCurrentPosition(successCallback, failedCallback,option);
(<any>window).GaoDe.startSerialLocation(successCallback, failedCallback,option);
(<any>window).GaoDe.stopSerialLocation(successCallback, failedCallback);

ionic 版本调用方式

4.定位方法说明

获取单次定位

getCurrentPosition(successCallback,failedCallback,option);

参数类型说明
successCallbackfuntion回调函数
failedCallbackfuntion回调函数
optionPositionOption定位参数

PositionOption

参数类型说明
androidOptionandroidOptionandroid定位参数
iosOptioniosOptionios定位参数

androidOption

参数类型说明
locationModeNumber1.精确定位 2.仅设备定位模式;3.低功耗定位模式
gpsFirstBoolean设置是否gps优先,只在高精度模式下有效。默认关闭
HttpTimeOutNumber设置网络请求超时时间。默认为30秒。在仅设备模式下无效
intervalNumber设置定位间隔。默认为2秒 连续定位有效
needAddressBoolean设置是否返回逆地理地址信息。默认是true
onceLocationBoolean设置是否单次定位。默认是false
onceLocationLatestBoolean设置是否等待wifi刷新,默认为false.如果设置为true,会自动变为单次定位,持续定位时不要使用
locationProtocolNumber设置网络请求的协议。可选HTTP或者HTTPS。默认为HTTP。1.http 2.https
sensorEnableBoolean设置是否使用传感器。默认是false
wifiScanBoolean设置是否开启wifi扫描。默认为true,如果设置为false会同时停止主动刷新,停止以后完全依赖于系统刷新,定位位置可能存在误差
locationCacheEnableBoolean设置是否使用缓存定位,默认为true

iosOption

参数类型说明
desiredAccuracyNumber1.最适合导航用的定位 iOS4.0以后新增 2.精度最高的定位 3.定位精度在10米以内 4.定位精度在100米以内 5.定位精度在1000米以内 6.3000m以内
pausesLocationUpdatesAutomaticallyString指定定位是否会被系统自动暂停。默认为NO。
allowsBackgroundLocationUpdatesString是否允许后台定位。默认为NO。
locationTimeoutNumber指定单次定位超时时间,默认为10s。最小值是2s。
reGeocodeTimeoutNumber指定单次定位逆地理超时时间,默认为5s。最小值是2s。
locatingWithReGeocodeString是否启用逆地址定位 默认YES
//调用实例
getCurrentPosition() {
    let obj={
      androidOption:{
        locationMode:1,//定位精度 1.精确定位 2.仅设备定位模式;3.低功耗定位模式
        gpsFirst:false,//设置是否gps优先,只在高精度模式下有效。默认关闭
        HttpTimeOut:30000,//设置网络请求超时时间。默认为30秒。在仅设备模式下无效
        interval:2000,//设置定位间隔。默认为2秒 连续定位有效
        needAddress:true,//设置是否返回逆地理地址信息。默认是true
        onceLocation:false,//设置是否单次定位。默认是false
        onceLocationLatest:false,//设置是否等待wifi刷新,默认为false.如果设置为true,会自动变为单次定位,持续定位时不要使用
        locationProtocol:1,// 设置网络请求的协议。可选HTTP或者HTTPS。默认为HTTP。1.http 2.https
        sensorEnable:false,//设置是否使用传感器。默认是false
        wifiScan:true,//设置是否开启wifi扫描。默认为true,如果设置为false会同时停止主动刷新,停止以后完全依赖于系统刷新,定位位置可能存在误差
        locationCacheEnable:true//设置是否使用缓存定位,默认为true
      },
      iosOption:{
        desiredAccuracy:4,// 1。最适合导航用的定位  iOS4.0以后新增 2.精度最高的定位 3.定位精度在10米以内定位精度在10米以内 4.定位精度在100米以内 5.定位精度在1000米以内 6.3000m
        pausesLocationUpdatesAutomatically:"YES",//指定定位是否会被系统自动暂停。默认为NO。
        allowsBackgroundLocationUpdates:"NO",//是否允许后台定位。默认为NO。只在iOS 9.0及之后起作用。设置为YES的时候必须保证 Background Modes 中的 Location updates 处于选中状态,否则会抛出异常。由于iOS系统限制,需要在定位未开始之前或定位停止之后,修改该属性的值才会有效果。
        locationTimeout:10, //指定单次定位超时时间,默认为10s。最小值是2s。注意单次定位请求前设置。注意: 单次定位超时时间从确定了定位权限(非kCLAuthorizationStatusNotDetermined状态)后开始计算
        reGeocodeTimeout:5, //指定单次定位逆地理超时时间,默认为5s。最小值是2s。注意单次定位请求前设置。
        locatingWithReGeocode:"YES" //是否 启用逆地址定位 默认YES
      }
    };
    (<any>window).GaoDe.getCurrentPosition( (res) => {
      console.log(JSON.stringify(res));
    }, () => {

    },obj);
  }

开启持续定位

startSerialLocation(successCallback,failedCallback,option);

参数类型说明
successCallbackfuntion回调函数
failedCallbackfuntion回调函数
optionPositionOption定位参数

androidOption

参数类型说明
locationModeNumber1.精确定位 2.仅设备定位模式;3.低功耗定位模式
gpsFirstBoolean设置是否gps优先,只在高精度模式下有效。默认关闭
HttpTimeOutNumber设置网络请求超时时间。默认为30秒。在仅设备模式下无效
intervalNumber设置定位间隔。默认为2秒 连续定位有效
needAddressBoolean设置是否返回逆地理地址信息。默认是true
onceLocationBoolean设置是否单次定位。默认是false
onceLocationLatestBoolean设置是否等待wifi刷新,默认为false.如果设置为true,会自动变为单次定位,持续定位时不要使用
locationProtocolNumber设置网络请求的协议。可选HTTP或者HTTPS。默认为HTTP。1.http 2.https
sensorEnableBoolean设置是否使用传感器。默认是false
wifiScanBoolean设置是否开启wifi扫描。默认为true,如果设置为false会同时停止主动刷新,停止以后完全依赖于系统刷新,定位位置可能存在误差
locationCacheEnableBoolean设置是否使用缓存定位,默认为true

iosOption

参数类型说明
pausesLocationUpdatesAutomaticallyString指定定位是否会被系统自动暂停。默认为NO。
allowsBackgroundLocationUpdatesString是否允许后台定位。默认为NO。
locatingWithReGeocodeString是否启用逆地址定位 默认YES
startSerialLocation() {
    let obj={
      androidOption:{
        locationMode:1,
        gpsFirst:false,
        HttpTimeOut:30000,
        interval:2000,
        needAddress:true,
        onceLocation:false,
        onceLocationLatest:false,
        locationProtocol:1,
        sensorEnable:false,
        wifiScan:true,
        locationCacheEnable:true
      },
      iosOption:{
        pausesLocationUpdatesAutomatically:"YES",
        allowsBackgroundLocationUpdates:"NO",
        locatingWithReGeocode:"YES"
      }
    };
    (<any>window).GaoDe.startSerialLocation( (res) => {
      console.log(JSON.stringify(res));
    }, (e) => {

    },obj);
  }

停止持续定位

stopSerialLocation(successCallback,failedCallback);

参数类型说明
successCallbackfuntion回调函数
failedCallbackfuntion回调函数

5.返回值说明:

返回值字段返回值类型说明android支持ios支持
latitudestring获取纬度
longitudestring获取经度
accuracystring获取精度信息
formattedAddressstring获取地址描述
countrystring获取国家名称
provincestring获取省名称
citystring获取城市名称
districtstring获取城区名称
citycodestring获取城市编码信息
adcodestring获取区域编码信息
streetstring获取街道名称
numberstring街道门牌号信息
POINamestring获取当前位置的POI名称
AOINamestring获取当前位置所处AOI名称
altitudestring获取海拔高度信息×
speedstring单位:米/秒×
bearingstring获取方向角信息×
buildingIdstring获取室内定位建筑物Id×
floorstring获取室内定位楼层×
gpsAccuracyStatusstring获取GPS当前状态,返回值可参考AMapLocation类提供的常量×
locationTypestring获取定位结果来源×
locationDetailstring定位信息描述×

6.Ionic4使用方法

//ionic 4+ 
import {
  GaoDeLocation,
  PositionOptions,
  LocationModeEnum,
  LocationProtocolEnum,
  DesiredAccuracyEnum,
  PositionRes
} from "@awesome-cordova-plugins/gao-de-location/ngx";
...

@NgModule({
  ...

  providers: [
    ...
    GaoDeLocation
    ...
  ]
  ...
})
export class AppModule { }
// app.component.ts
// ionic 4+ 
import {
  GaoDeLocation,
  PositionOptions,
  LocationModeEnum,
  LocationProtocolEnum,
  DesiredAccuracyEnum,
  PositionRes
} from "@awesome-cordova-plugins/gao-de-location/ngx";

@Component({ ... })
export class xxxComponent {
  //注入
  constructor(private gaoDeLocation: GaoDeLocation) {}
  //调用定位
  async getCurrentPosition() {
      const positionOptions: PositionOptions = {
        androidOption: {
          locationMode: LocationModeEnum.Hight_Accuracy,
          gpsFirst: false,
          HttpTimeOut: 30000,
          interval: 2000,
          needAddress: true,
          onceLocation: false,
          onceLocationLatest: false,
          locationProtocol: LocationProtocolEnum.HTTP,
          sensorEnable: false,
          wifiScan: true,
          locationCacheEnable: true
        }, iosOption: {
          desiredAccuracy: DesiredAccuracyEnum.kCLLocationAccuracyBest,
          pausesLocationUpdatesAutomatically: 'YES',
          allowsBackgroundLocationUpdates: 'NO',
          locationTimeout: 10,
          reGeocodeTimeout: 5,
        }
      };
      const positionRes: PositionRes = await this.gaoDeLocation.getCurrentPosition(positionOptions).catch((e: any) => {
        console.log(e);
      }) || null;
      console.log(JSON.stringify(positionRes));
    }
  
    startSerialLocation() {
      const positionOptions: PositionOptions = {
        androidOption: {
          locationMode: LocationModeEnum.Hight_Accuracy,
          gpsFirst: false,
          HttpTimeOut: 30000,
          interval: 2000,
          needAddress: true,
          onceLocation: false,
          onceLocationLatest: false,
          locationProtocol: LocationProtocolEnum.HTTP,
          sensorEnable: false,
          wifiScan: true,
          locationCacheEnable: true
        }, iosOption: {
          desiredAccuracy: DesiredAccuracyEnum.kCLLocationAccuracyBest,
          pausesLocationUpdatesAutomatically: 'YES',
          allowsBackgroundLocationUpdates: 'NO',
          locationTimeout: 10,
          reGeocodeTimeout: 5,
        }
      };
      this.gaoDeLocation.startSerialLocation(positionOptions).subscribe((positionRes: PositionRes) => {
        console.log(JSON.stringify(positionRes));
      });
    }
  
    stopSerialLocation() {
      const positionRes: any = this.gaoDeLocation.stopSerialLocation().catch((e) => {
        console.log(e);
      }) || null;
      console.log(JSON.stringify(positionRes));
    }
}

7.联系我:QQ群 390736068

8.插件调用方式已经传到ionic官网

ionic官网快捷链接

2.0.7

2 years ago

2.0.6

2 years ago

2.0.5

4 years ago

2.0.4

4 years ago

2.0.3

5 years ago

2.0.2

5 years ago

2.0.1

5 years ago

2.0.0

5 years ago

1.0.1

6 years ago

1.0.0

6 years ago