当前位置: 首页 > 知识库问答 >
问题:

通过cell Id、LAC、MCC和MNC Android获取当前移动站的相邻蜂窝塔距离和方向?

甄坚白
2023-03-14

我想做一个应用程序,找到接收信号强度和相邻的小区塔。我成功地得到了每个相邻的小区塔的大提琴、多数控、多数控、紫胶和信号强度。但是我想计算每个单元格塔的距离和方向,从目前的移动通过使用的大肠杆菌, lac, mnc, mcc。我不想用互联网连接来做那件事。有没有可能计算??请建议如何如果可能的话。

共有1个答案

金泉
2023-03-14

如果没有互联网连接,这将很困难(不可能?)。但是,如果您能够使用internet连接,您可以使用Mozilla定位服务查找邻居小区id(您提到的您已经获得),并获得纬度/经度。

关于获取手机的当前位置,有很多答案。下面是一个很好的例子:获取当前的纬度和经度

现在,一旦您拥有移动lat/long和相邻小区lat/long,使用余弦定律来查找相邻小区和移动台之间的距离:

d = acos( sin φ1 ⋅ sin φ2 + cos φ1 ⋅ cos φ2 ⋅ cos Δλ ) ⋅ R

可以这样实现,例如:

var φ1 = lat1.toRadians(), φ2 = lat2.toRadians(), Δλ = (lon2-lon1).toRadians(), R = 6371e3; // gives d in metres
var d = Math.acos( Math.sin(φ1)*Math.sin(φ2) + Math.cos(φ1)*Math.cos(φ2) * Math.cos(Δλ) ) * R;

关于标题,使用以下公式:

θ = atan2( sin Δλ ⋅ cos φ2 , cos φ1 ⋅ sin φ2 − sin φ1 ⋅ cos φ2 ⋅ cos Δλ )
where   φ1,λ1 is the start point, φ2,λ2 the end point (Δλ is the difference in longitude)

可以这样实现,例如:

var y = Math.sin(λ2-λ1) * Math.cos(φ2);
var x = Math.cos(φ1)*Math.sin(φ2) -
        Math.sin(φ1)*Math.cos(φ2)*Math.cos(λ2-λ1);
var brng = Math.atan2(y, x).toDegrees();

(距离/标题公式由本网站提供)

从相邻小区找到信号强度是另一回事。根据技术(LTE/WCDMA/GSM),这可能是可能的,也可能是不可能的。这里有一个如何做到这一点的例子,但它可能并不适用于所有的技术类型。

 类似资料:
  • 移动国家代码由三位小数组成,移动网络代码由两位或三位小数组成(例如:001的MNC与01的MNC不同)https://en.wikipedia.org/wiki/Mobile_country_code 那么,要将MCC MNC作为一个字符串,您如何在Android中获得手机的MCC和MNC?可用于SIM卡插槽的主服务单元。 但是,我需要相邻单元格的这些值。 返回单元格列表,每个单元格都很好地保存了

  • 蜂窝利用 目前,我们已经知道了如何在头单元上运行代码,前提是你能用USB设备(劫持)来连接汽车或访问车内的Wi-Fi(利用D-BUS漏洞/功能)。最大的问题是,这些入侵方法都要么需要接触到汽车,要么就需要攻击者加入到车上的Wi-Fi热点。 如果能加入到车内的Wi-Fi热点并进行漏洞利用是非常让人激动的,因为这就说明我们已经远程入侵了一辆原装汽车,但是,对我们来说,这其中的前提和限制还是太多了。首先

  • 本文向大家介绍写一个方法获取滚动条距离窗口顶部的距离相关面试题,主要包含被问及写一个方法获取滚动条距离窗口顶部的距离时的应答技巧和注意事项,需要的朋友参考一下

  • null 问题: 如何在Linux中将MCC、MNC、LAC、Cell ID转换为经纬度值? 为什么每次尝试读取时单元格ID都不同?

  • 我知道关于这个话题已经有了一些答案,但我不太清楚如何测量相机和物体之间的距离。 我的目标是: 我用OpenCV通过颜色检测成功地追踪了一个红色的球。现在我试着在红球的中间点一个激光。当红球移动时,激光器应始终跟随红球。我用一个小伺服电机来转动激光。 我在想,如果我能测量物体和相机之间的距离,我就能计算出伺服需要转动的角度。。。 我试图跟踪卡梅伦·洛厄尔·帕尔默的帖子。 我所做的: 我校准了我的Pi

  • 求一个vue单页面或者H5 对接任意地图的API 获取当前位置 输入结束位置 并测算公里距离的dome 类似这样的