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

Javasacript中两个移动设备之间的距离(离子型)

扶誉
2023-03-14

对于我的一个项目,我目前想构建一个Ionic应用程序,为iOS和Android平台编写一次代码。我正在寻找一种方法来测量两个移动设备之间的距离。一个设备应放置在特定位置,另一个设备应在其进入第一个设备的范围(或更具体地说,第一个设备所在的位置)时被检测到。

位于特定位置的设备1将连接到internet,访问该位置的设备2也是如此。

我已经读过很多不同的实现,但大多数时候它需要Android或iOS的本机代码。

以下是我已经找到的解决方案:

  • 蓝牙:每部手机都有蓝牙功能,所以当一部手机靠近另一部手机时,应该不难检测到,但这意味着要与另一部手机配对,而且实际上不可能测量两部手机之间的距离
  • iBeacons和BLE:我们希望避免在发射时购买大量信标。这意味着我们想创建一个移动应用程序,作为一个灯塔,但在很多设备的Android上是不可能的。此外,我们不关心微型位置,这意味着我们不会100%地使用信标
  • GPS:在安全方面不是很好,以确保两台设备的位置都是好的
  • 在位置手动值机:确保设备2进入设备1位置的最佳方法是在位置进行手动检查。但这有点令人沮丧,因为根本没有创新

我的想法真的快用完了。实现应该使用Javascript编写一个快速原型,因此选项有限。

我读过一篇关于StackExchange:Stack的文章,但问题是没有描述任何实现。

换句话说,我希望一个签入系统知道设备2去了设备1的位置。即使在请求我们服务器的应用编程接口之间进行交换,我们如何确保两个设备被关闭,或者至少设备2在特定位置?

为了给可能面临同样情况的人提供更多选择,我联系了一位在微软工作的人,并参与了一个名为:ThaliProject的项目。你可以在谷歌上找到这个项目。谷歌是一个PeerToPeer库,用于在移动设备之间进行通信。但它不适合这个问题:

不幸的是,Thali无法解决您的问题(我们依赖Android上的Bluetooth 4.2支持(因此我们可以同时作为一个可扩展的中央和外围设备)。

如果你需要在Android和iOS设备之间工作,蓝牙也不会工作,因为苹果使用的是一种专有的蓝牙变体,无法工作。

现在BLE可以在Android和iOS之间工作。虽然许多Android手机不能是外围设备,但大多数都可以是中央设备。

另一种可能是不同的人在玩声音。差不多https://developers.google.com/nearby/messages/overview?hl=en.许多研究小组一直在试验通过超声波通信进行局部发现。只要发送挑战并通过超声波获得响应,您就已经证明设备1和2彼此非常接近。

我偶然发现了一个名为SonicNet的JavaScript库。JS能够通过超声波发送数据字符串,但实际上我正在努力让它在我的电脑上工作。这可能是一种解决方案,可以避免互操作性问题。

共有2个答案

郭远
2023-03-14

从wifi设备飞行的时间怎么样?基本上,设备A上的应用程序需要发送一轮信号。设备B拾取它并返回带有签名的信号。设备A接收它并根据飞行时间计算距离。

或者使用下面的API怎么样?https://indoor.here.com/#/.其思想是gps高精度地图。我知道你已经考虑过gps了。但高清地图为您提供了一种验证设备接收的gps信息的方法,以解决您的安全问题。

云啸
2023-03-14

您可以为Cordova使用蓝牙低能插件(https://github.com/evothings/cordova-ble).它主要适用于Android和iOS。

当然,这些设备应该支持BLE,但许多新智能手机就是这样。

你可以先用evothing扫描你周围的东西。可悲的。开始扫描(成功、错误),然后使用RSSItxPower值获取设备之间的距离。

 类似资料:
  • 我试图将X Y Z变量的数组或列表传递给计算欧几里德距离的方法。 这是我的方法: 这是我的主要代码: 输出为:1.7782794。。应该是10的时候。有什么想法吗?

  • 问题内容: 我需要测量以字符串形式提供名称的两个地方之间的物理距离。由于有时名称的书写方式略有不同,因此我一直在寻找一个可以帮助我测量差异的库,然后将其与纬度和经度结合起来以选择正确的匹配项。首选语言:Java或PHP。 有什么建议? 问题答案: 看看Levenshtein距离。这是一种测量两个字符串彼此之间有多不同的方法。 希望我能正确理解你的问题;在与“经度”相同的句子中使用“距离”可能会造成

  • 问题内容: 我需要创建一个类来计算两点之间的距离。我被困住了,我是一个完全的初学者。这是我的课程: 第二课。 我不确定如何在两个定义的点之间获取点对象(中间点)。 我可以创建点对象,但不确定如何通过位于这两个点对象之间的方法返回点对象。 问题答案: 平面上的两个点(x1,y1)和(x2,y2)之间的距离为: 但是,如果您想要的只是两个点的中点,则应将中点函数更改为: 这将返回一个全新的点对象,其点

  • 我试图找到树中两个节点之间的最大距离。这是我的程序: 程序似乎正在运行;但是没有为一些测试用例显示正确的输出。我采取的方法是: 求根节点的子节点数(我一直认为根节点为0)。 找到每个子树的最大深度(尽可能多的子树,因为有根节点的子节点)。 将每个子树的最大深度存储在中,对其进行排序并打印最后两个值的总和。 有人能指出我程序中的错误吗?

  • 问题内容: 我对计算两个numpy数组(x和y)之间的各种空间距离感兴趣。 http://docs.scipy.org/doc/scipy-0.14.0/reference/generation/scipy.spatial.distance.cdist.html 但是,以上结果会产生太多不必要的结果。我如何仅将其限制为所需的结果。 我想计算[1,11]和[31,41]之间的距离;[2,22]和[3

  • 我对计算两个numpy阵列(x和y)之间的各种空间距离感兴趣。 http://docs.scipy.org/doc/scipy-0.14.0/reference/generated/scipy.spatial.distance.cdist.html 但是,上述结果会产生太多不需要的结果。我怎样才能限制它只用于我所需的结果。 我想计算[1,11]和[31,41]之间的距离;[2,22]和[32,42