假设我有一个Cell Tower的指纹数据库。 数据(包括Long。& Lat.CellID,信号强度等)是通过'wardriving'实现的,类似于OpenCellID.org。
我希望能够获得没有GPS的客户端手机的位置(类似于OpenCellID / Skyhook Wireless / Google的“MyLocation”),它会向我发送目前“看到”的Cell塔的信息:连接的Cell塔和另外6个相邻的蜂窝塔(假设是GSM)。
我已经阅读并使用Google搜索了很长时间,并且遇到了一些有效的理论,例如使用SQL 2008 Spatial功能,或使用欧几里德算法或马尔可夫模型。
但是,我缺乏实用的解决方案,最好是在C#中或使用SQL 2008:)
位置计算将在服务器上完成,而不是在客户端手机上完成。这部手机的唯一工作就是通过HTTP / GPRS,它连接的塔和其他相邻的手机信号塔发送。
任何意见都值得赞赏,我已经阅读了很多,到目前为止还没有真正进步。
感谢名单
答案 0 :(得分:2)
为什么不根据单元格位置和信号强度进行简单的三角测量计算?
答案 1 :(得分:0)
您不能进行三角测量,因为手机只会扫描来自两个基站而不是三个基站的信号。此外,我不知道是否有可能以某种方式访问两个站的数据,因为您必须处理低级GSM / 3G协议。
通过使用较新手机SDK(Java,Android,iPhone,Symbian ...)的AT命令或功能,您可以检索有关cell id,lac,mnc,mcc,信号强度和时间提前的信息。
通过检查定时提前,您可以确定您离开基站的距离,因为信号以光速传播,但您无法确定准确的位置,只需计算“可能位置的圆圈”近似半径(近似是因为信号一般不直接传播 - 信号可以从附近的物体反射)。
如果您正在使用.NET here,则可以从cellID和手机上可访问的其他数据中检索基站位置。希望它有所帮助。