cordova-gizwits-geofencing

Gizwits Geofencing tool

Usage no npm install needed!

<script type="module">
  import cordovaGizwitsGeofencing from 'https://cdn.skypack.dev/cordova-gizwits-geofencing';
</script>

README

Gizwits 地理围栏工具

iOS注意事项:

  • 地理围栏功能起作用前提:用户授予始终使用定位功能的权限;
  • 地理围栏最多设置20个。

安装移除

cordova plugin add cordova-gizwits-geofencing
(Android添加插件需要传入高德地图的AppKey,添加方法如下:cordova plugin add cordova-gizwits-geofencing --variable AMAP_KEY=your_key --variable GMAP_KEY=your_google_map_key)
cordova plugin rm cordova-gizwits-geofencing

接口使用说明

App 使用该插件时,需调用 setServerInfo 方法设置服务器信息。

当发生错误时,error 返回的是错误码。错误码请参照最后的错误码表。

  1. 设置主题 setThemeInfo

    // themeColor: 主题色
    // navi_bg: 导航栏背景色 
    // titleColor: 标题颜色 
    // title: 标题 
    // right_title: 导航右侧按钮标题
    cordova.plugins.gizGeofencing.setThemeInfo({"themeColor": "FFFFFF", "navi_bg": "FFFFFF", "titleColor": "FFFFFF", "title": "标题", "right_title": "导航栏右侧按钮标题"}, success, error);
    
  2. 设置服务器信息 setServerInfo

    // url: 服务器地址
    // token
    // appKey
    // type: 表明 appKey 类型, 传入的值为 appId 或 enterpriseId(不传时默认值)
    // version: 接口版本
    cordova.plugins.gizGeofencing.setServerInfo({"url": "", "version": "", "token": "", "appKey": "", "type": ""}, success, error);
    
  3. 选择或编辑区域 pickRegion

    // 区域参数
    region = {"latitude": 22.123456, "longitude": 113.123456, "radius": 200, "status": "enter/leave", "conditionId": ""};
    
    // 选择新区域时,传入空的 JSON 对象。
    cordova.plugins.gizGeofencing.pickRegion({}, func (newRegion) {
        // newRegion 区域参数
    }, func (errorCode) {
        // errorCode 错误码,请参照最后的错误码表。
    });
    
    // 编辑区域时,传入要编辑的区域
    cordova.plugins.gizGeofencing.pickRegion(region, func (editedRegion) {
        // editedRegion 区域参数
    }, func (errorCode) {
        // errorCode 错误码,请参照最后的错误码表。
    });
    
  4. 选择地址 pickAddress

    // 地址参数
    address = {"latitude": 22.123456, "longitude": 113.123456};
    
    // 选择新地址时,传入空的 JSON 对象。
    cordova.plugins.gizGeofencing.pickAddress({}, func (newAddress) {
        // newAddress 地址参数
    }, func (errorCode) {
        // errorCode 错误码,请参照最后的错误码表。
    });
    
    // 编辑地址时,传入要编辑的地址
    cordova.plugins.gizGeofencing.pickAddress(address, func (editedAddress) {
        // editedAddress 地址参数
    }, func (errorCode) {
        // errorCode 错误码,请参照最后的错误码表。
    });
    
  5. 添加区域 addRegion

    region = {"latitude": 22.123456, "longitude": 113.123456, "radius": 200, "status": "enter/leave", "conditionId": ""};
    cordova.plugins.gizGeofencing.addRegion(region, success, error);
    
  6. 移除区域 removeRegion

    region = {"latitude": 22.123456, "longitude": 113.123456, "radius": 200, "status": "enter/leave", "conditionId": ""};
    cordova.plugins.gizGeofencing.removeRegion(region, success, error);
    
  7. 移除所有区域 removeAllRegions

    cordova.plugins.gizGeofencing.removeAllRegions(success, error);
    
  8. 获取区域列表 getRegionList

    cordova.plugins.gizGeofencing.getRegionList(func (regionList) {
        // regionList 区域列表
    }, error);
    
  9. 设置区域列表 setRegionList

    region = {"latitude": 22.123456, "longitude": 113.123456, "radius": 200, "status": "enter/leave", "conditionId": ""};
    regionList = [region];
    cordova.plugins.gizGeofencing.setRegionList(regionList, success, error);
    
  10. 获取位置功能授权状态 getAuthorizationStatus

    cordova.plugins.gizGeofencing.getAuthorizationStatus(func (status) {
        // status 授权状态值 (整型)
    }, error);
    

    授权状态值及对应说明:

    授权状态值 描述
    0 未授权 Authorization status not determined
    1 位置功能不可用 Authorization status restricted
    2 拒绝授权 Authorization status denied
    3 位置功能总是可用 Authorization status authorized always
    4 位置功能在App运行时可用 Authorization status authorized when in use
  11. 请求总是使用位置信息的权限 requestAlwaysAuthorization

    cordova.plugins.gizGeofencing.requestAlwaysAuthorization(func (status) {
        // status 授权状态值请参照第10接口的说明。
    }, error);
    
  12. 获取当前位置 getCurrentLocation

    cordova.plugins.gizGeofencing.getCurrentLocation(func (coordinate) {
        // coordinate 当前位置GPS坐标 {"latitude": 23.123456, "longitude": 123.123456}
    }, func (errorCode) {
        // errorCode 错误码,请参照最后的错误码表。
    });
    
  13. 解析地址 getAddressInfo

    // 位置GPS坐标
    coordinate = {"latitude": 23.123456, "longitude": 123.123456};
    
    cordova.plugins.gizGeofencing.getAddressInfo(coordinate, func (address) {
        // address 地址。地址格式如下。
    }, func (errorCode) {
        // errorCode 错误码,请参照最后的错误码表。
    });
    
    // 地址格式
    {
        "FormattedAddressLines": [
            "中国广东省广州市天河区沙东街道沙太路陶庄5号"
        ],
        "Street": "沙太路陶庄5号",
        "Thoroughfare": "沙太路陶庄5号",
        "Name": "沙东轻工业大厦",
        "City": "广州市",
        "Country": "中国",
        "State": "广东省",
        "SubLocality": "天河区",
        "CountryCode": "CN"
    }
    

坐标转换

  • WGS-84:是国际标准,GPS坐标(Google Earth使用、或者GPS模块)
  • GCJ-02:中国坐标偏移标准,Google Map、高德、腾讯使用 (火星坐标系)
  • BD-09 :百度坐标偏移标准,Baidu Map使用
  1. transformFromWGSToGCJ: WGS-84 转换为 GCJ-02
  2. transformFromGCJToWGS: GCJ-02 转换为 WGS-84
  3. transformFromGCJToBaidu: GCJ-02 转换为 BD-09
  4. transformFromBaiduToGCJ: BD-09 转换为 GCJ-02
coordinate = {"latitude": 23.123456, "longitude": 123.123456};
    
cordova.plugins.gizGeofencing.transformFromWGSToGCJ(coordinate, func (targetCoordinate) {
    // targetCoordinate 坐标 {"latitude": 23.123456, "longitude": 123.123456}
}, error);

错误码

当发生错误时,所有接口都只返回一个错误码。错误码及对应信息如下:

错误码 描述
0 (保留)
1 取消选择位置 (在选择位置界面按了“返回”键)
2 没有使用定位功能的权限
3 没有始终允许定位
4 参数不正确
5 定位功能受限
6 位置解析失败
7 高德地图用户Key不正确或过期
8 高德地图MD5安全码未通过验证
9 google paly服务不可用