我想知道:除了GPS位置,有没有办法找到两部手机是否在一定距离之内?例如,如果一部手机距离另一部手机不到3英尺,则GPS不准确.
我正在为Android平台上的最后一年项目开发一个多人互动游戏,它需要一个游戏玩家距离另一个玩家不超过3英尺.
任何事情都是最有帮助的,但从环顾四周看起来似乎并非真的可能.大多数手机数据都可以共享,我将同时使用蓝牙和多播套接字.
非常感谢你花时间陪伴.
感谢大家到目前为止的回复.我仍然在研究这个问题,当我发现一些比较容易做的事情时会更新; 但到目前为止,似乎使用蓝牙RSSI值是要走的路.
这个问题提出了几个问题.赏金将回答整体上的问题.
这是我一直在玩的问题.
注意我对不在欧几里得空间的解决方案特别感兴趣.
有一组Actors形成一个大小为K的人群.d(ActorA,ActorB)对于任何两个演员来说,距离很容易计算(解决方案应该适用于'距离'的各种定义)并且我们可以找到任何给定Actor使用的N个最近邻居的集合任何一种已建立的算法.
这个邻居集在第一瞬间是正确的,但是Actors总是在移动,我想维护每个Actor的N个最近邻居的进化列表.我感兴趣的是近似解决方案,它比完美解决方案更有效.
到目前为止,我一直在使用一个朋友的朋友算法:
recompute_nearest (Actor A)
{
Actor f_o_f [N*N];
for each Actor n in A.neighbours
append n to f_o_f if n != A and n not in f_o_f
Distance distances [N*N];
for 0 <= i < f_o_f.size
distances [i] = distance (A, f_o_f [i])
sort (f_o_f, distances)
A .neighbours = first N from f_o_f
}
Run Code Online (Sandbox Code Playgroud)
当人群缓慢移动且N适当大时,这表现得相当好.它在小错误之后收敛,满足第一个标准,但是
我想知道是否有办法计算绘图中的abline和数据点之间的距离?例如,concentration == 40与signal == 643(元素5)和基线之间的距离是多少?
concentration <- c(1,10,20,30,40,50)
signal <- c(4, 22, 44, 244, 643, 1102)
plot(concentration, signal)
res <- lm(signal ~ concentration)
abline(res)
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个库或使用现有库的方法(difflib,fuzzywuzzy,python-levenshtein)中查找的字符串(的最接近的匹配query)文本(corpus)
我开发了一个基于的方法difflib,我将其corpus分成大小n(长度query)的ngrams .
import difflib
from nltk.util import ngrams
def get_best_match(query, corpus):
ngs = ngrams( list(corpus), len(query) )
ngrams_text = [''.join(x) for x in ngs]
return difflib.get_close_matches(query, ngrams_text, n=1, cutoff=0)
Run Code Online (Sandbox Code Playgroud)
当查询和匹配字符串之间的差异只是字符替换时,它可以按我的意愿工作.
query = "ipsum dolor"
corpus = "lorem 1psum d0l0r sit amet"
match = get_best_match(query, corpus)
# match = "1psum d0l0r"
Run Code Online (Sandbox Code Playgroud)
但是当差异是字符删除时,它不是.
query = "ipsum dolor"
corpus = "lorem 1psum dlr sit …Run Code Online (Sandbox Code Playgroud) 我通过以下步骤得到了一个距离矩阵:
x <- read.table(textConnection('
t0 t1 t2
aaa 0 1 0
bbb 1 0 1
ccc 1 1 1
ddd 1 1 0
' ), header=TRUE)
Run Code Online (Sandbox Code Playgroud)
因此x是具有列标题和行标题的数据框
t0 t1 t2
aaa 0 1 0
bbb 1 0 1
ccc 1 1 1
ddd 1 1 0
require(vegan)
d <- vegdist(x, method="jaccard")
Run Code Online (Sandbox Code Playgroud)
距离矩阵d如下获得:
aaa bbb ccc
bbb 1.0000000
ccc 0.6666667 0.3333333
ddd 0.5000000 0.6666667 0.3333333
Run Code Online (Sandbox Code Playgroud)
通过输入str(d),我发现它不是普通的表格,也不是csv格式.
Class 'dist' atomic [1:6] 1 0.667 0.5 0.333 0.667 ...
..- attr(*, "Size")= …Run Code Online (Sandbox Code Playgroud) 在浏览器中使用JavaScript,如何确定从当前位置到具有纬度和经度的其他位置的距离?
目标不是真正的距离.这更简单.
目标是检查另一台设备是否非常接近.对或错.假设10或15厘米是关闭的,所以我们的检查是正确的,并且任何远离检查的设备都是错误的.
我的第一种方法是使用api的方法,fetchUuidsWithSdp()但它失败了!
无论是在几个cms之外还是在大房间另一端的设备,延迟似乎都是一样的!
任何解决方案即使没有蓝牙也是可以接受 例如,我对wifi直接p2p协议完全不熟悉.也许有一些东西可用来粗略估计距离.
编辑:我正在阅读有关接收信号强度指示器(RSSI)的信息.这可以用于我们的特定情况,粗略估计设备之间的距离.但也许可能有某些东西需要结合才能提高准确性.
编辑:我把Ralgha的答案放到测试中.我确实建立了一个连接并且有一个小的协议来在设备之间进行乒乓.
当1字节平均延迟时非常接近时平均延迟为22.6000毫秒,而在房间的另一角时则为22.6087毫秒.
当ping为1024字节时,平均延迟在非常接近时为40.3173毫秒,在房间的另一角时甚至更小,为32.3138毫秒.
毕竟,延迟确实没有任何关于距离的信息!
谢谢!
我有数百万个地理点.对于其中的每一个,我想找到所有"相邻点",即在某个半径内的所有其他点,比如说几百米.
对这个问题有一个天真的O(N ^ 2)解决方案---简单地计算所有点对的距离.但是,因为我正在处理适当的距离度量(地理距离),所以应该有更快的方法来做到这一点.
我想在python中这样做.想到的一个解决方案是使用一些数据库(带有GIS扩展的mySQL,PostGIS),并希望这样的数据库能够使用某些索引有效地执行上述操作.我更喜欢更简单的东西,这不需要我建立和学习这些技术.
几点
就python代码而言,我想要的是:
points = [(lat1, long1), (lat2, long2) ... ] # this list contains millions lat/long tuples
points_index = magical_indexer(points)
neighbors = []
for point in points:
point_neighbors = points_index.get_points_within(point, 200) # get all points within 200 meters of point
neighbors.append(point_neighbors)
Run Code Online (Sandbox Code Playgroud) 我正在构建一个基于找到一个位置的"方便会面点"的应用程序.
目前我将"方便"定义为"最小化总行程距离".这与查找质心的问题不同,如下例所示(为方便起见,使用笛卡尔坐标而不是纬度和经度):
这些点的最小总行程位置为(0,0),总行程距离为12; 质心位于(0,4),总行程距离为16(4 + 4 + 8).
如果位置被限制在其中一个点上,问题似乎变得更简单,但这不是我想要的约束(不像,例如,这个类似的问题).
我似乎无法做到的是提出任何类型的算法来解决这个问题 - 建议欢迎!
distance ×10
algorithm ×2
android ×2
bluetooth ×2
python ×2
r ×2
coordinates ×1
csv ×1
geo ×1
geolocation ×1
geospatial ×1
gis ×1
gps ×1
javascript ×1
lua ×1
match ×1
matrix ×1
n-gram ×1
optimization ×1
plot ×1
rectangles ×1
wifi-direct ×1