Chinaunix首页 | 论坛 | 博客
  • 博客访问: 392466
  • 博文数量: 48
  • 博客积分: 1628
  • 博客等级: 上尉
  • 技术积分: 482
  • 用 户 组: 普通用户
  • 注册时间: 2009-09-30 14:20
文章分类

全部博文(48)

文章存档

2013年(6)

2012年(14)

2011年(6)

2010年(5)

2009年(17)

我的朋友

分类:

2012-06-15 00:05:02

如果你在你的手机装过Google Mobile Maps,你可以发现只要你的手机能连GPRS,即使没有GPS功能,也能定位到你手机所在位置,只是精度不是很精确。在探讨这个原理之前,先让我们了解一下一些移动知识,了解什么是MNC/MCC/LAC/Cell ID。

  • Mobile Network Code (MNC)

    移动网号码,中国联通CDMA系统的MNC为03,中国移动的应该为00。

  • Mobile Country Code (MCC)

    移动用户所属国家代号,中国是:460。

  • Location Area Code (LAC)

    地区区域码,用来划分区域,一般小地方就一个LAC,大地方就有多几个。

  • Cell Tower ID (Cell ID)

     CellID代表一个移动基站,如果你有基站数据,查CellID你就可以知道这个基站在哪里,移动公司或者警察通过这个知道你是在哪个基站范围打的移动电话。

    这些信息有什么用呢? 通过这些信息可以知道你的手机是从哪个国家,区域和哪个基站接入移动网络的。所以有些防盗手机丢失后,会发一些类似"MCC:460;MNC:01;LAC:7198:CELLID:24989"内容的短信到你指定号码就是这个用途,通过这些信息可以从移动查到你的被盗手机在哪里出现过。不过知道了也没用,中国人口这么密集,就是在你身边你也不知道谁是小偷:)

    这些信息从哪里来呢,一般的手机系统都提供相应的API来获取这些信息(Tower Info),比如Window SmartPhone 或Mobile就是通过RIL.dll里的API来取得,每个手机操作系统不一样,相关的信息可以查相关资料。

    得到了这些信息,如果没有基站信息表,得到了这些信息也不知道在哪,因为只有移动运营商有相关的信息,除非你是运营商或者警察才能得到这些信息。是不是我们就查不到相应的数据呢,当然不是,强大的Google就有,这里就要提到Google Mobile Maps API,里面囊括了比较全的基站信息,中国的也有,就是偏远地区的有没有就不知道了。Google Mobile Maps本身就是使用的这些信息,感兴趣可以试一试,没有GPS模块也能定位到你手机位置,但精度不大,取决于基站的位置离你多远。

    同样我们自己也可以开发相应的手机应用来定位,只要调用Google现成的API(Secret API)“.

  • 首先读取你自己手机的CellID和LAC。
  • 通过Http连接发送Post请求到。
  • 传入CellID和LAC参数,从API返回基站的经纬度(Latitude/Longitude)。

    另外有个可以参考的例子

  • 阅读(1410) | 评论(0) | 转发(0) |
    给主人留下些什么吧!~~