基站就是移动通信信号收发设备,手机靠它接收发送信号,实现打电话、上网。简单说就是手机和网络之间的 "信号中转站"。
基站一般建在居民楼、写字楼、屋顶和农村田地旁边,覆盖范围在农村 / 山区可达几公里;基站越多,信号越好;基站位置就是基站 API 查询出来的经纬度。
一、应用场景
-
物联网兜底定位:无 GPS 的物联网终端,获取设备粗略位置,作为 GPS 失效备用定位。
-
设备地域风控:解析基站地址,校验设备所属地域,识别异地异常风险。
-
通信运维分析:获取基站坐标与覆盖半径,辅助网络勘测、覆盖统计、故障排查。
-
GIS 地图展示:基站点位数据用于通信专题地图绘制。
二、接口说明
提供移动、联通、电信三大运营商的LBS基站定位服务。移动、联通通过基站号和小区号获取对应基站位置信息,电信通过基站的系统识别码、网络识别码和基站号获取对应基站位置信息。
支持2G / 3G / 4G基站位置查询
请求参数

返回参数

三、拿到返回参数可以做什么?
-
获取粗略地理位置
lat/lng(WGS84 经纬度)+addr地址,得到设备大致所在位置,适合物联网设备无 GPS 时做位置兜底。 -
判断设备大致区域 风控、设备管理中,用
addr地址做地域校验,判断设备是否在预期地区,辅助识别异地异常。 -
估算信号覆盖范围
radius是覆盖半径(米),用来参考定位误差范围;可以用于业务判断:误差大就不采信该位置。 -
地图展示 把经纬度转 GCJ‑02,在高德、百度地图上渲染基站大致点位。
-
网络运维分析 结合地址、半径,辅助做基站覆盖调研、信号点位统计。
⚠️注意:只能基于设备采集到的基站参数解析,不能通过手机号反查位置。
四、关键注意事项
- 模组获取的
lac、cellid多为16 进制,调用前需要转为十进制; - 返回坐标为 WGS84,高德 / 百度地图展示需要做坐标转换;
- 基站定位为粗略定位,
radius为参考覆盖半径,不作为精准定位依据。
五、调用方法
以java为例
java
public static void main(String[] args) {
String host = "https://market.aliyun.com/detail/cmapi00065871";//地址
String path = "/cell/index";
String method = "GET";
String appcode = "你自己的AppCode";
Map<String, String> headers = new HashMap<String, String>();
//最后在header中的格式(中间是英文空格)为Authorization:APPCODE 83359fd73fe94948385f570e3c139105
headers.put("Authorization", "APPCODE " + appcode);
Map<String, String> querys = new HashMap<String, String>();
querys.put("mnc", "0");
querys.put("lac", "33204");
querys.put("cellid", "202944490");
try {
/**
* 重要提示如下:
* HttpUtils请从
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
* 下载
*
* 相应的依赖请参照
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
*/
HttpResponse response = HttpUtils.doGet(host, path, method, headers, querys);
System.out.println(response.toString());
//获取response的body
//System.out.println(EntityUtils.toString(response.getEntity()));
} catch (Exception e) {
e.printStackTrace();
}
}