我终于搞清楚这个问题了,大家使用谷歌地图手机版、MobileTrack以及网优用的FieldTest获取到的WCDMA基站Cellid为什么不是大家手头的CellTrack91或基站表里的数字了。。。这个问题说起来非常的囧,以前我就知道有这个问题,但我从来没有深究过,因为反正不影响我使用嘛。但昨晚睡觉前躺在床上无聊,打开FieldTest研究白天附近基站掉线问题,突然发现了WCDMA基站Cellid的编号规则…………

 
以前2G时,大家用基站软件,获取到的LAC和CELL都是16进制的4位编号,比如我这里联通2G基站是:
LAC:1E8C
CELL:335F
他们换算过来就是LAC=7820,CELL=13511,很多基站软件会自动换算成10进制展现给大家。
OK,用这个参数去Google查询,就可以得到返回的经纬度了。
然而到了WCDMA基站下,很多人从基站软件,比如CellTrack91(中文翻译叫“基站定位”或“基站信息”)上获取到的基站号是如下这样:
LAC:DC10
CELL:2A2C
换算过来LAC=56336,CELL=10796。问题就来了,用这个CELL和LAC根本无法从Google查询到任何经纬度数据,但通过FieldTest或谷歌地图以及MobileTrack可以获取到另一组WCDMA的LAC和CELL,他们分别是:LAC=56336,CELL=190130732。用这组数据去查,就可以直接查到经纬度数据了!
 
但,这究竟是为什么?!
在昨晚之前,这个问题一直就困扰着我,但因为平时不影响我找到我需要的基站,所以我并不深究这个问题,直到昨晚把CellTrack91得到的WCDMA基站16进制代码和FieldTest得到的基站16进制代码放到一起时……眶!!!原来就这么简单!!大家还是不明白吗?呵呵……我来复现我昨晚看到的现象……
CellTrack91得到的WCDMA基站:
LAC=DC10
CELL=2A2C
FieldTest得到的WCDMA基站:
LAC=DC10
CELL=B552A2C
……还是没看明白?再看看啊!
对!FieldTest获得的WCDMA基站是7位16进制代码!包括谷歌地图,MobileTrack在内的基站软件,在WCDMA网络下,都是去获取完整的7位16进制代码,然后转换为10进制给大家看。而我们的运营商工程部的哥们,他们建基站时,不知是图方便,还是另有其他原因,他们只记录最后4位16进制代码!而且很有名的基站软件CellTrack91和其他一些工具,他们可能是出于2G时代的习惯或其他原因,也只记录4位16进制代码并换算为10进制展现给大家!
 
于是,就出现了,大家手头的CellTrack91、基站表能一一对应,但基站表和谷歌以及Fieldtest无法对应的情况!因为根本没换算出同一个数字嘛!!~我昨晚发现这个问题时……真是囧的我呦……这么简单的问题……居然这么久才搞明白!!……
 
通过这个问题,大家应该明白,谷歌、MobileTrack确实是支持联通WCDMA基站定位的,但大家不能用基站表上的数字来本站查询地理位置,因为那个号码本来就不对。如果要查询WCDMA基站位置,还是要获取完整的7位16进制基站代码,再换算成10进制来查询的。
 
毕竟这个问题困扰了自己那么久,还时常找接口安慰别人“反正不影响用嘛~”,现如今自己找到了问题的原因,也算是解开了一个心结。
可能有的朋友早就知道了其中的原因,只是我孤陋寡闻了,那实在不好意思,毕竟解答了自己心中的困惑,与还不知道的朋友互相分享一下吧。

我终于搞清楚为什么谷歌地图获取到的联通3G基站与大家手头的基站表不同了的更多相关文章

  1. 用html5调取谷歌地图获取位置

    function getmap(){ if(!navigator.geolocation) throw "Geolocation not supported"; var image ...

  2. 谷歌地图 API 开发之获取坐标以及街道详情

    自己的项目中有获取当前点击的坐标经纬度或者获取当前街道的信息的需求.估计这个对于新手来说,还是比较麻烦的,因为从官网上找这个也并不是很好找,要找好久的,运气好的可能会一下子找到. 献上自己写的测试案例 ...

  3. 谷歌地图地理解析和反解析geocode.geocoder详解

    地址解析就是将地址(如:贵州省贵阳市)转换为地理坐标(如经度:106.71,纬度:26.57)的过程. 地理反解析和上面的过程相反是将地理坐标(如纬度:26.57,经度:106.71)转换为地址(中国 ...

  4. 基于谷歌地图的Dijkstra算法水路路径规划

    最终效果图如下: 还是图.邻接表,可以模拟出几个对象=>节点.边.路径.三个类分别如下: Node 节点: using System; using System.Collections.Gene ...

  5. 怎样基于谷歌地图的Server缓存公布Image Service服务

    怎样基于谷歌地图的Server缓存公布Image Service服务 第一步:下载地图数据 下载安装水经注万能地图下载器,启动时仅仅选择电子.谷歌(这里能够依据自己的须要选择).例如以下图所看到的. ...

  6. 在AngularJS中使用谷歌地图把当前位置显示出来

    如何使用谷歌地图把当前位置显示出来呢? --在html5中,为我们提供了navigator.geolocation.getCurrentPosition(f1, f2)函数,f1是定位成功调用的函数, ...

  7. 【Javascript Demo】谷歌地图简单实现(附遮罩层和弹出层实现)

    虽然百度地图实现了,但只是国内的,而且前几天貌似还出问题了,对于国际的只能用谷歌地图了,所以就简单研究了下,做了个差不多的. 基本步骤,谷歌地图API文档其实写的很清楚了,先获取API密钥,然后引用j ...

  8. 谷歌地图地理解析和反解析geocode.geocoder详解(转)

    谷歌地图地理解析和反解析geocode.geocoder详解 谷歌Geocoder服务 实例代码 地址解析就是将地址(如:贵州省贵阳市)转换为地理坐标(如经度:106.71,纬度:26.57)的过程. ...

  9. 终于搞定在VS2010中将CString转换为const char*

    最近碰到了CString 转 const char *的问题. 以前只要简单的一个强制转换就OK了,可现在是不行了,搜索了很多资料,终于搞定,主要是Unicode和ANSI的问题,只要做一个转换就可以 ...

随机推荐

  1. 临时文件相关的v$tempfile v$sort_usage与V$tempseg_usage

    SQL> select username,user,segtype,segfile#,segblk#,extents,segrfno# from v$sort_usage; SEGFILE#代表 ...

  2. Web前端入门了解

    Web就是指万维网,网站,Web开发的方向包括Web前端,Web后台. Web前端又分为  静态Web 和 动态Web, 静态Web就是用HTML实现的. 动态Web的实现方式有多种. 动态Web的实 ...

  3. css做三角形

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  4. 优雅地在markdown插入图片

    markdown 中插入图片,好烦!!!   喜欢用Markdown写文字,但是它的图片引用是一个大问题(当然csdn不会遇到这个问题).借用第三方将图片储存在印象笔记上是一个好办法.但是会出现的一个 ...

  5. javascript 技巧

    1.将arguments转化为数组函数中的预定义变量arguments并非一个真正的数组,而是一个类似数组的对象. 它具有length属性,但是没有slice, push, sort等函数,那么如何使 ...

  6. sonar-gerrit-plugin-2.2.0 安装

    这是一个很新的插件国内使用的用户还是很少的,公司有需要才花了一段时间去研究. 作用:在 code review的时候可以将sonar的检测结果直接集成返回.帮助po对code 进行review. 请严 ...

  7. 生成XML文件

    import java.io.FileOutputStream;import java.io.IOException; import org.jdom.Document;import org.jdom ...

  8. pthread_mutex_lock

    pthread_mutex_lock pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mut ...

  9. new对象时,类名后加括号与不加括号的区别

    [1]默认构造函数 关于默认构造函数,请参见随笔<类中函数> 请看测试代码: 1 #include <iostream> 2 using namespace std; 3 4 ...

  10. register based 和 stack based虚拟机的区别

    其实其核心的差异,就是Dalvik 虚拟机架构是 register-based,与 Sun JDK 的 stack-based 不同,也就是架构上的差异.我先摘录几段网上可以找到的资料,重新整理和排版 ...