接口说明
融合定位接口综合利用基站、Wi-Fi 热点列表进行推测定位,在 GPS 信号不好的环境中(如室内)仍能提供高精度定位结果。 融合定位依赖参考点(基站/Wi-Fi 热点)的信号特征进行位置推算:参考点越多,定位基准越丰富,有助于提升推算精度;但信号环境复杂多变(如热点迁移、信号衰减等),更多数据并不保证一定能成功定位,建议根据实际场景尽可能多地采集可用的信号数据。 Wi-Fi 热点的 MAC 地址和信号强度(dBm)属于无线 Beacon 广播帧中的公开信息,终端在未连接热点、未获取密码的情况下即可扫描获取,无需鉴权。
请求方式POST
支持地区中国大陆
坐标系GCJ02(火星坐标系)
认证方式
所有 API 请求均需通过 HTTP Authorization 请求头携带 Bearer Token 进行身份验证。 Token 可在控制台的「团队设置 → API 密钥」中创建和管理。
// 请求头示例
Authorization: Bearer <YOUR_API_KEY>
Token 属于密钥凭证,请勿提交到代码仓库或公开渠道。建议通过服务端代理调用 API,避免在前端直接暴露 Token。
请求参数
POST
/api/service/location| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| from | integer | 必填 | 返回坐标系:0=WGS84,1=BD09(BD09LL),3=GCJ02 |
| time | integer | 必填 | 当前时间戳(毫秒) |
| asset | string | 必填 | 设备唯一标识编号 |
| cellulars | array | 可选 | 基站列表,与 wifis 二选一 |
| └cell | integer | 必填 | 小区识别码 Cell ID |
| └primary | boolean | 可选 | 是否主基站,多基站时设置 |
| └asu | integer | 可选 | 信号强度,与 dbm 至少填写 1 个,示例:0、20、31 |
| └dbm | integer | 可选 | 信号功率,与 asu 至少填写 1 个,单位 dBm,示例:-113、-93、-73 |
| └country | integer | 必填 | MCC 码,移动国家码 |
| └network | integer | 必填 | MNC 码,CDMA 时为 SID(System ID)码 |
| └area | integer | 必填 | 区域码,CDMA 时为 NID(Network ID),LTE 时为 TAC(Tracking Area Code),范围 0-65535 |
| wifis | array | 可选 | Wi-Fi 热点列表,与 cellulars 二选一 |
| └mac | string | 必填 | Wi-Fi 网卡 MAC 地址(Beacon 广播帧公开信息,无需连接或获取密码即可扫描获取) |
| └signal | integer | 必填 | Wi-Fi 信号强度,单位 dBm(Beacon 广播帧公开信息,无需连接或获取密码即可扫描获取),示例:-113、-68 |
返回字段
成功响应
result: 1HTTP 200| 字段名 | 类型 | 说明 |
|---|---|---|
| result | integer | 成功标识,1 为成功 |
| name | string | 地点名称 |
| point | object | 融合后坐标 |
| └lng | number | 经度 |
| └lat | number | 纬度 |
| address | object | 地址信息 |
| └name | string | 完整地址字符串 |
| └context | object | 行政区划信息 |
| └country | object | 国家信息 |
| └province | object | 省份信息 |
| └city | object | 城市信息 |
| └district | object | 区县信息 |
| └township | object | 街道/乡镇信息 |
代码示例
请求示例
JavaScript
fetch('https://lts.maiyun.net/api/service/location', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
from: 3,
time: 1768535120038,
asset: 'byabc',
cellulars: [
{
"cell": 132605532,
"primary": false,
"asu": 80,
"dbm": -113,
"country": 460,
"network": 0,
"area": 12321
},
],
wifis: [
{ mac: '9E:2B:A6:86:2A:0E', signal: -74 },
{ mac: '54:52:84:86:03:A8', signal: -79 },
{ mac: 'EE:60:73:AF:AD:0C', signal: -81 },
{ mac: '50:64:2B:94:A4:7F', signal: -87 },
{ mac: 'D8:15:0D:FE:5C:09', signal: -90 },
],
}),
})
.then(r => r.json())
.then(data => {
console.log(data.point);
});返回示例(成功)
JSON
{
"result": 1,
"name": "代码示例位置",
"point": { "lng": 117.334369, "lat": 39.116094 },
"address": {
"name": "天津市东丽区万新街道平盈路8号服务8100室",
"context": {
"country": { "name": "中国", "code": "CN" },
"province": { "name": "天津市", "code": "120000" },
"city": { "name": "天津市", "code": "120100" },
"district": { "name": "东丽区", "code": "120110" },
"township": { "name": "万新街道", "code": "120110006" }
}
}
}错误码
| 错误码 | 描述 |
|---|---|
| -1 | 参数错误:cellulars 和 wifis 至少需要传入一项 |
| -3 | 信号数据不足,无法完成定位 |
| -400 | 未提供授权信息,请检查 Authorization 请求头 |
| -401 | Token 不存在或已过期,请重新获取 |
| -402 | 关联的团队账号不存在 |
| -429 | 超出 QPS 限制,请适当降低请求频率后重试 |
当请求失败时,接口将返回对应的 result 值(≤ 0)及错误描述字符串。 其中 -400 及以下为通用鉴权错误,其余为当前接口特有错误。