日志样式

公开的手机基站、Wi-Fi定位查询入口

 

 

谷歌作为全球数一数二的科技巨头,其手中拥有的数据资源也是十分丰富的,如果你善于利用的话,它就是一座取之不尽大数据“金山”,今天老编就取沧海之一栗来讲讲关于移动定位方面的资源。
 
谷歌的
 Geolocation API接口  
 
这个接口的功能,能够让你根据手机基站或是Wi-Fi热点信息(BSSID)来获取该设备的所在位置和精度半径
 
也就是常说到的“手机定位”啦。
 

是不是拿到了话单之后不知道如何自己动手把它转成地理位置呢?那就试试它吧!

 
老编我也曾使用了它数年之久。也就是基站定位和Wi-Fi定位数据来源之一,如果你有一定代码基础能力,你也能够利用它来做一个与本公众号一样的基站查询、Wi-Fi位置查询功能。
 
我们为什么会推荐谷歌,当然是因为它在这颗星球上无可比拟的、强大的科技能力,以及超强悍的数据采集能力。
 
 
这个接口的文档地址如下:
https://developers.google.com/maps/documentation/geolocation/intro
 
下面简单介绍一下如何使用它,基本可以归纳为三个步:
 
  1. 注册一个谷歌账号,成为谷歌开发者;

  2. 申请一个谷歌开发者的Key(你的密钥);

  3. 根据API(接口)文档指引,按约定格式发送数据和接收返回数据;

 

1、2步其实也可以合并一步,按引导操作即可,我们就不谈了。
 
发送查询数据和接收返回结果数据你需要记住以下几项:
 
接口地址 (你应该记牢它,它是通往仓库之路):
https://www.googleapis.com/geolocation/v1/geolocate?key= YOUR_API_KEY

提交数据的格式 (你应该熟悉它,它是进入仓库的通关文谍):

{
  "homeMobileCountryCode": 460,
  "homeMobileNetworkCode": 00,
  "radioType": "gsm",
  "carrier": "Vodafone",
  "considerIp": "true",
  "cellTowers": [
    // 这里填基站参数
  ],
  "wifiAccessPoints": [
    // 这里填Wi-Fi参数
  ]
}
其中,如果是GMS基站的话,提交的数据格式如下:
{
  "cellTowers": [
    {
      "cellId": 42,
      "locationAreaCode": 415,
      "mobileCountryCode": 310,
      "mobileNetworkCode": 410,
      "age": 0,
      "signalStrength": -60,
      "timingAdvance": 15
    }
  ]
}
如果是CDMA基站的话,提交的数据格式如下:
{
  "cellTowers": [
    {
      "cellId": 21532831,
      "locationAreaCode": 2862,
      "mobileCountryCode": 214,
      "mobileNetworkCode": 7
    }
  ]
}
如果是Wi-Fi的话,提交的数据格式为:
{
  "macAddress": "00:25:9c:cf:1c:**",
  "signalStrength": -43,
  "age": 0,
  "channel": 11,
  "signalToNoiseRatio": 0
}

以上各项参数的含义,可以在文章前面提到的文档说明地址里查阅,点击“阅读原文”也可以,我这里就略过不介绍了。

 

所有这些都是通过HTTPS完成POST通信, 数据请求和响应都为JSON格式,内容类型都是application/json 。

 

你可以利用所有你擅长的语言,无论是Java、Python、PHP…或是直接cURL…来发起查询。

 

具体的代码实现过程就不详谈了,本文重点是介绍途径。

 
然后,最后的返回结果也就是位置信息如下,是一个经纬度坐标,带参考精度半径:
{
  "location": {
    "lat": 39.908860, // 纬度
    "lng": 116.397516 // 经度
  },
  "accuracy": 300
}
上面返回结果是一个举例,这个坐标地址是首都天安门的位置——当然它是GPS的坐标,你要在国内地图上查询,还需要做一个坐标系的转换,否则直接查看是有偏移的。

 

 

不太愉快的是,谷歌这个商业接口是收费的,收费情况如何呢:

 

 

—— 10万次以下,每次查询是0.005美元,每1000次支付5美元。
 
话说谷歌也曾经是提供过免费服务的,不过免费服务的数据齐全度差,而且目前好像是关停了。
 

如果一条对你来说是很重要的位置轨迹,那么掏个几块钱也是可以接受的啊!

 

最后,发现了老编的好了吧,老编提供的查询从来没收费呢(迄今为止提供了近2亿次啦)!所以如果你们看到了一些广告,请多多海涵啊,那是唯一能用来支抵服务器开支的收入呢!

 

谷歌的资源之多之全,在这颗星球上可以说几乎是个标杆,好好利用吧!其它更多有趣的资源,下次再讲。