如何在 Android 中找到附近的应用程序用户?

2024-03-21

我正在制作一个应用程序,需要能够找到附近的人,他们是我的应用程序的用户。
我看了很多类似问题的答案,似乎我别无选择,只能不断将用户的当前位置上传到服务器,并在必要时获取附近的用户列表。

那么我的问题是,
1. 要获取附近的列表,应该有一些计算距离的算法或函数。那么这是否意味着我必须获取我的位置与其他应用程序用户之间的所有距离?因此服务器返回一定数量的具有最小距离结果的用户。如果我是对的,那么不会有内存或时间问题吗?
2. 这可能听起来很奇怪,但是这样怎么样?
我可能会将纬度和经度信息或地址信息发送到服务器。我不能使用字符串搜索算法或其他方式将这些字符串与所有用户的地址列表中的第一个数字或字母进行比较吗?
例如,如果我最后更新的地址是服务器上的“abcde”,算法将查找以“a”开头的地址,如果搜索完成,则查找“a”后面有“b”的地址,换句话说'ab'。
这可能不是一个正确的解决方案,但我认为它可能有效,因为地址将以相同的形式保存。


为了有效地找到附近的用户,您需要一个空间索引。看:分层三角网格 http://research.microsoft.com/apps/pubs/default.aspx?id=64531.

您还可以使用其中之一支持空间查询的数据库 http://en.wikipedia.org/wiki/Spatial_database.

我可能会将纬度和经度信息或地址信息发送到服务器。我不能使用字符串搜索算法或其他方式将这些字符串与所有用户的地址列表中的第一个数字或字母进行比较吗?

这不适用于纬度和经度,因为这样您只能搜索一维的邻近度。例如,30°N 30°E 看起来更接近 30°N 90°E,而不是 31°N 30°E。

它可能适用于地址,但前提是它们与坐标可靠连接(即不是由用户输入),并且仅当您不介意相距 200 米但位于某些行政边界不同侧的用户不算作接近时对彼此。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Android 中找到附近的应用程序用户? 的相关文章

  • 高度并行化的Levenshtein距离算法

    实际上 我必须实现一个字符串比较 最后得到匹配百分比 不仅仅是布尔结果匹配 不匹配 为此 我找到了 Levenstein 距离算法 但现在的问题是性能 例如 我有 1k 个字符串需要相互比较 现在大约需要 10 分钟 对于每个算法 我已经并
  • 从响应中获取标头(Retrofit / OkHttp 客户端)

    我正在使用 Retrofit 与 OkHttp 客户端和 Jackson 进行 Json 序列化 并希望获取响应的标头 我知道我可以扩展 OkClient 并拦截它 但这发生在反序列化过程开始之前 我基本上需要的是获取标头以及反序列化的 J
  • AdapterContextMenuInfo 始终为 null

    我尝试通过 android 开发文档中的书来做到这一点 this didn t create a menu i don t know why registerForContextMenu getListView setListAdapter
  • 如何以最低的价格优化购物车?

    我有一个我想买的物品清单 这些商品由不同的商店提供 价格也不同 商店有单独的送货费用 我正在寻找一种最佳的购物策略 以及支持它的java库 以最低的总价购买所有商品 Example 商品 1 在 Shop1 的售价为 100 美元 在 Sh
  • 如何正确释放Android MediaPlayer

    我正在尝试向我的 Android 应用程序添加一个按钮 当点击该按钮时它会播放 MP3 我已经让它工作了 但没有办法释放 mediaPlayer 对象 因此即使在我离开活动后它仍然会继续播放 如果我在react 方法之外初始化MediaPl
  • 按下按钮时应用不同的样式

    有没有办法在按下按钮时将样式应用于按钮 如果我有一种风格样式 xml
  • Dialog.setTitle 不显示标题

    我正在尝试向我的对话框添加自定义标题 但是每当我运行我的应用程序时 它都不会显示标题 我创建对话框的代码是 final Dialog passwordDialog new Dialog this passwordDialog setCont
  • 以编程方式将文本颜色设置为主要 Android 文本视图

    如何设置我的文本颜色TextView to android textColorPrimary以编程方式 我已经尝试了下面的代码 但它将 textColorPrimary 和 textColorPrimary Inverse 的文本颜色始终设
  • 在 android 中建立与 MySQL 的池连接

    我需要从我的 Android 应用程序访问 MySQL 数据库 现在所有的工作都通过 DriverManager getConnection url 等等 但我必须从多个线程访问数据库 所以我必须使用连接池 问题1 是 com mysql
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • okhttp 获取失败响应

    我已经在我的 android 客户端中实现了 okhttp 来进行网络调用 当我收到失败响应时 我会收到失败代码以及与该代码相关的文本作为消息 但我没有收到服务器发送给我的自定义失败响应 在我实施的代码中的失败响应中 我收到的消息只是 错误
  • Mipmap 与可绘制文件夹[重复]

    这个问题在这里已经有答案了 我正在使用 Android Studio 1 1 Preview 1 我注意到 当我创建一个新项目时 我得到以下层次结构 不同 DPI 的 Mipmap 文件夹 不再有不同 DPI 的可绘制文件夹 我应该将所有资
  • Android:无法使用 DbHelper 和 Contract 类将数据插入 SQLite

    public class Main2Activity extends AppCompatActivity private EditText editText1 editText2 editText3 editText4 private Bu
  • Dagger 2 没有生成我的组件类

    我正在使用 Dagger 2 创建我的依赖注入 几个小时前它还在工作 但现在不再生成组件 这是我创建组件的地方 public class App extends Application CacheComponent mCacheCompon
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • 在 Samsung Galaxy S5 Android 5.0 上使用 MediaPlayer 加载音频流需要超过 10 秒

    由于更新至 Android 5 0 MediaPlayer 在 Samsung Galaxy S5 上无法正常工作 启动音频流后加载时间超过 10 秒 示例代码 MediaPlayer mPlayer new MediaPlayer Str
  • Android - 以编程方式选择菜单选项

    有没有办法以编程方式选择菜单选项 基本上 我希望视图中的按钮能够执行与按特定菜单选项相同的操作 我正在考虑尝试调用 onOptionsItemSelected MenuItem item 但我不知道要为菜单项添加什么 是的 有一种方法可以选
  • 没有用于警告的设置器/字段 Firebase 数据库检索数据填充列表视图

    我只是想将 Firebase 数据库中的数据填充到我的列表视图中 日志显示正在检索数据 但适配器不会将值设置为列表中单个列表项中的文本 它只说 没有二传手 场地插入值 这让我觉得我的设置器没有正确制作 但 Android Studio 自动
  • Dagger 2 中“HasFragmentInjector”的实际用法是什么

    我之前已经实现了 dagger2 v2 2 但现在他们也添加了 dagger android 部分 所以我正在用它创建示例项目 我知道旧的方法论 Provide and Modules and 成分等注释 但从 Dagger 2 8 开始
  • Android 后台倒计时器

    我有一个 Android 应用程序 它管理一个倒计时器 类 CountDownTimer 它显示在应用程序屏幕中 以显示到达 00 00 还剩多少时间 我现在的问题是 当我按主页按钮或启动另一个应用程序时 应用程序 计时器不会在后台运行 所

随机推荐

  • CATALINA_OPTS 在 Tomcat 中如何工作?

    我很好奇 CATALINA OPTS 在 Apache Tomcat 的后台如何工作 是的 我知道它在 Tomcat 启动和运行时执行 我添加了一些参数供我的程序使用 甚至我使用它很长时间 将其添加到我的 VM 参数中 但不确定它是如何运行
  • 有条件的承诺

    在我的脚本中 我需要检索一个字典以将编码值转换为名称 ajax retrieve dictionary done function dictionary convert encoded values into names done func
  • 计算时间戳之间的营业时间[重复]

    这个问题在这里已经有答案了 我使用的是Postgres 8 3 目前没有选择版本 我的原始数据表如下 ID start time finish time 01 2013 01 23 10 47 52 05 2013 02 25 11 18
  • 如何在 Scala 中创建没有文字元素名称的 XML 根节点?

    我正在寻找创建一个这样的文档
  • Spark ml 和 PMML 导出

    我知道可以将模型导出为PMML with Spark MLlib 但是关于Spark ML 是否可以转换LinearRegressionModel from org apache spark ml regression to a Linea
  • PoseWarping:如何矢量化此 for 循环(z 缓冲区)

    我正在尝试使用地面真实深度图 姿势信息和相机矩阵将帧从视图 1 扭曲到视图 2 我已经能够删除大部分 for 循环并将其矢量化 除了一个 for 循环 扭曲时 由于遮挡 视图 1 中的多个像素可能会映射到视图 2 中的单个位置 在这种情况下
  • 将列的元素分配到基于另一列的矩阵中

    我需要帮助编写执行以下操作的脚本 data 1 1 2 2 1 3 3 3 4 3 3 5 4 3 6 该脚本需要检查第二列中的数字是否重复 下面的草图解释了我想要完成的任务 对于第二列中的每个重复值 我希望第三列中共享第二列中每个重复值的
  • 尝试使用 POSIX 消息队列创建消息队列时权限被拒绝

    我正在使用以下代码片段创建一个消息队列Linux 编程接口 http man7 org tlpi if mq open my message queue O CREAT O RDWR NULL 1 perror mq creation fa
  • 自定义软键盘按键预览

    I am 使用软键盘工作 我已经完成了所有功能 但现在我只需要更改关键预览的视图当关键是 按下 目前显示了我的按键预览 默认示例键盘按键 预览 如下图所示 正如我们所看到的 当按下按键时会弹出字符 d 但现在我需要定制它 作为目前主要预览背
  • 从 pyarrow.Table 转换为 pandas 时处理大时间戳

    我有一个时间戳9999 12 31 23 59 59以 int96 形式存储在 parquet 文件中 我使用 pyarrow dataset 读取此镶木地板文件 并将结果表转换为 pandas 数据框 使用 pyarrow Table t
  • @material-ui/core 和 @types/material-ui 是什么关系?

    这里我看到一个使用material ui 的示例项目 我看到 package json 文件中有以下包 dependencies material ui core 1 4 1 devDependencies types material u
  • 基本页或基本母版页或嵌套母版页?

    我有一个包含两个母版页的网站 一个用于一列布局 一个用于两列布局 它们嵌套在提供通用页眉和页脚的母版页中 我希望每个内容页面都具有功能 我是不是该 创建一个页面基类并在我的内容页面中继承它 或者 创建一个母版页基类并在我的嵌套母版页级别之一
  • 编写依赖于其他键的更复杂的 json 模式

    我一直在编写简单的 JSON 模式 但遇到了一个稍微复杂一点的 API 输入调用 我有一条宁静的最终路线 可以采用 3 种截然不同类型的 JSON 本地主机 foo 可以采取 类型 冰淇淋 锥体 华夫饼 or 类型 热狗 小圆面包 小麦 如
  • Onclick 图像按钮 - 逻辑没有意义[重复]

    这个问题在这里已经有答案了 我对 Javascript html 中这个非常简单的 onClick 函数感到非常困惑 我知道对此有很多问题 但鉴于我的脚本的作用 或者在本例中没有 无法完全找到答案 它应该很简单 但由于某种原因 逻辑也没有像
  • 使用 @PersistenceContext 为空 EntityManager

    我正在尝试使用 Spring Boot 的简单编码 在实体管理器中使用 PersistenceContext 在 MySQL 中创建一个对象 但我发现我的实体管理器对象为空 不知道为什么 因为使用的方法实体管理器有 transaction注
  • 在 ASP.NET 应用程序中是否强制注入 DbContext .InPerRequestScope?

    我一直在我的 ASP NET MVC3 门户中使用 Ninject IoC 容器 每当我注入实体框架时DbContext in PerThread范围 我的数据不一致 在对实体进行更改后一段时间内不会显示更改等 在我切换 IoC 配置以解析
  • 在 PHPStorm 中复制并粘贴字符串(波斯语、阿拉伯语)是错误的

    在 PHPStorm 中复制并粘贴字符串 波斯语 阿拉伯语 是错误的 我的字符串是 巴巴尼 巴尼巴巴 描述如图 如何解决这个问题呢 在安装目录下的文件中bin idea properties add one以下的 editor new re
  • 如何在Jboss AS 7.0中启用Quartz调度?

    Quartz 似乎没有包含在 Jboss AS 7 0 Final 完整版 的默认安装中 当尝试加载消息驱动 Bean MDB FareMonitorBean 时 我的 EAR 部署似乎失败 该MDB 是quartz 调度执行的内容 错误信
  • 当方法尝试使用可以为空的字段时抛出哪个异常? [复制]

    这个问题在这里已经有答案了 我实际上正在从事框架开发 这意味着需要非常强大的编码方法 我面临一个问题 我不知道需要抛出哪个 System Exception 派生类 基本上情况是 我有一个类 其中的字段可以由构造函数选择性地初始化 并且具有
  • 如何在 Android 中找到附近的应用程序用户?

    我正在制作一个应用程序 需要能够找到附近的人 他们是我的应用程序的用户 我看了很多类似问题的答案 似乎我别无选择 只能不断将用户的当前位置上传到服务器 并在必要时获取附近的用户列表 那么我的问题是 1 要获取附近的列表 应该有一些计算距离的