概述

产品简介

WZLocation SDK for uni-app 是维智科技(Wayz)面向 uni-app 生态打造的一站式位置服务 SDK。SDK 深度融合了 Wi-Fi 辅助定位、IP 定位、GPS 定位等多种定位策略,并在此基础上提供逆地理编码、正地理编码、POI 关键词搜索、POI 附近搜索以及坐标系转换等完整的位置服务能力。开发者只需几行代码,即可在 H5、微信小程序及原生 App(Android/iOS)等多端获取高质量的位置信息。

核心能力

1. 多策略融合定位

SDK 内部构建了分层定位决策链路,按优先级自动切换:

  • Wi-Fi 辅助定位 — 扫描周边 Wi-Fi 热点信息,上传至 Wayz 定位服务进行三角定位,室内和城市峡谷场景下精度显著优于纯 GPS;
  • 原生 GPS/网络定位 — 当 Wi-Fi 扫描不可用时,自动降级为 uni-app 原生定位能力;
  • IP 定位 — 作为最终兜底方案,在前两种方式均失败时通过 IP 地址获取大致位置。

定位模式支持单次定位连续定位(可配置间隔,最低 2 秒),满足从一次性签到到实时轨迹追踪的不同业务需求。

2. 地理编码与逆地理编码

  • 逆地理编码(getReverseCode — 将经纬度坐标转换为结构化地址(国家/省/市/区/街道/门牌号),同时返回周边 POI 信息及其直线距离;
  • 正地理编码(getGeoCode — 将地址关键词(如 "泛悦城")转换为精确的经纬度坐标。

3. POI 搜索

  • 关键词搜索(poiSearch — 按名称和城市搜索兴趣点,支持分页查询;
  • 附近搜索(poiNearbySearch — 在指定坐标周边按半径、分类、关键词进行 POI 检索,支持按距离排序。

4. 坐标系转换

内置 WGS84、GCJ02、BD09 三种主流坐标系之间的双向转换算法,并提供校准数据确保转换精度。定位接口支持指定返回坐标系,开发者无需自行处理坐标偏移问题。

平台支持

平台支持状态说明
H5 / Web支持仅 IP/GPS 定位;Chrome 因依赖谷歌服务不支持
App支持含 Wi-Fi 辅助定位
微信小程序支持需配置 requiredPrivateInfos;后台定位需额外权限

快速开始

// 1. 导入 SDK
import * as wzLocation from '@/utils/wz_sdk_uniapp.js';

// 2. 初始化(accessKey, deviceId, 是否单次定位, 定位间隔 ms)
wzLocation.initOption("YOUR_ACCESS_KEY", "DEVICE_ID", true, 0);

// 3. 获取位置
wzLocation.getLocation(
  (res) => {
    console.log(res.longitude, res.latitude);        // 经纬度
    console.log(res.address.name);                    // 结构化地址
    console.log(res.spatialReference);                // 坐标系 (gcj02/wgs84/bd09)
  },
  (err) => {
    console.error(err.code, err.msg);                 // 错误处理
  }
);

API 一览

方法功能返回方式
initOption(ak, deviceId, isOnce, interval)初始化 SDK 参数
setAk(accessKey)设置/更新 AccessKey
getLocation(success, error)单次/连续定位(GCJ02)回调
getLocationByCoordinate(sprf, success, error)指定坐标系定位回调
stopLocation()停止所有定位
getReverseCode(lng, lat, sprf)逆地理编码(坐标→地址)Promise
getGeoCode(address, city)正地理编码(地址→坐标)Promise
poiSearch(keyword, city, page, size)POI 关键词搜索Promise
poiNearbySearch(kw, cat, loc, r, order, page, size)POI 附近搜索Promise

错误码参考

错误码说明
1001定位权限未开启
1002Wi-Fi 开关未开启
1003未配置 accessKey
1004option 参数未配置
1005需提供设备唯一 ID
1006Wi-Fi 开启失败
10010定位服务返回失败
10012坐标系不支持
10015经纬度为空或无效值
2001特殊异常