获取下 N 个最近的地理点

2024-02-03

我在我的 Android 应用程序中有一个包含地理点的数据库表(纬度和经度是十进制度值),大约 1000 点。我需要选择距离某个给定地理点最近的 20 个点。

我在 Stackoverflow 找到了如何计算两个地理点之间的距离的答案,并且非常高兴,直到我尝试编写我的查询。我发现,在 android 的内置 sqlite 中使用三角函数是不可能的。

但后来我有一个想法。我真的不需要计算距离。一个点距离另一个点越近,它们的地理坐标差异就应该越小。

我该如何利用这个事实呢?按 (lat_0 - lat_n)^2 + (lon0-lon_n)^2 对保存的点进行排序是否足够,其中 lat_0 和 lon_0 是给定点的地理坐标?

谢谢你,

Mur

UPD

因此,获得问题答案的最佳方法是测试我上面描述的方法。

它工作得很好,但与精确距离相比并不完全准确。

因此,如果您只需要计算距离,这个解决方案是可以的,但就我而言,我还需要按距离排序车站,并且无法使用这个解决方案。

我要感谢 CashCommons 的约翰和菲利普。感谢你们


如果您的点在一个城市内(或多或少)是分开的,那么该近似值就可以很好地工作。不过,如果你环游世界,这个近似值就会崩溃。

EDIT:根据下面 Philip 的评论,您应该扩展其中一个组件。德国位于北纬约 50 度,因此将经度乘以 (cos 50 度) 效果会更好。

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

获取下 N 个最近的地理点 的相关文章

  • 编译后从字节代码中删除注释

    我们正在使用一个包含使用 JAXB 注释进行注释的 bean 的库 我们使用这些类的方式完全不依赖于 JAXB 换句话说 我们不需要 JAXB 也不依赖注释 但是 由于注释存在 它们最终会被处理注释的其他类引用 这要求我将 JAXB 捆绑到
  • 如何将 Android Instrumentation 测试推送到模拟器/设备?

    我正在尝试使用 Ubuntu 9 04 中的命令行 shell 在 Android 模拟器上运行 Webkit 布局测试 adb s emulator 5554 shell am instrument w com android dumpr
  • 从 BroadcastReceiver 获取方法来更新 UI

    我正在尝试根据变量的变化更新用户界面BroadcastReceiver 因此 我需要调用一个扩展类的方法 以获取我提到的变量 BroadcastReceiver in MainActivity取决于但我无法以任何方式获得真正的返回值 扩展的
  • 游标索引越界异常

    打开后出现光标索引越界错误 数据库 请任何人告诉我如何打开现有数据库 sqllite Android 我想在数据库上触发一个选择查询 检索一些信息 public void getPatient SQLiteDatabase db Strin
  • Android 8.1 中 Activity 自行旋转并恢复正常

    我的应用程序在所有 Android 版本上运行良好 但我注意到在 Android 8 1 0 Oreo 中 当我将屏幕从纵向活动转到横向活动时 以及当我按后退按钮时 它会显示异常行为 屏幕自动从横向旋转并恢复正常 看起来 Activity
  • Android 谷歌地图 V2 已停止

    我正在尝试构建地图应用程序并关注这个链接 https blog emildesign rhcloud com p 435一步步 我在这里找到了类似的主题 但对我没有帮助 我想显示地图 但是当我运行它时 它返回强制关闭和我的 Android
  • 使用 RxJava 限制吞吐量

    我现在遇到的情况很难解释 所以我会写一个更简单的版本来解释这个问题 我有一个Observable from 它发出一系列由ArrayList文件数量 所有这些文件都应上传到服务器 为此 我有一个函数可以完成这项工作并返回一个Observab
  • 收到“无法解析上传的APK的AndroidManifest.xml。它是否正确编译?”启用 Google 应用签名后出现错误

    启用后谷歌应用程序签名 https support google com googleplay android developer answer 7384423 hl en 每次我尝试将签名版本 APK 上传到 Play 商店时 都会收到一
  • 截图显示黑色

    我正在拍摄快照并创建缩略图 然后共享此图像 但缩略图显示全黑 我使用了以下代码 Bitmap bitmap View v1 v getRootView v1 setDrawingCacheEnabled true bitmap Bitmap
  • 使用 UPI url 调用 PSP 应用程序

    我正在尝试创建一个商家应用程序 它将根据 NPCI 的指南生成一个 url 此 url 将作为意图共享 并且 PSP 应用程序 任何注册的银行应用程序 应该能够侦听该 url 并被调用 我已经形成了这样的网址 upi pay pa icic
  • java数学中的组合“N选择R”?

    java库中是否有内置方法可以为任何N R计算 N选择R 公式 实际上很容易计算N choose K甚至不需要计算阶乘 我们知道 公式为 N choose K is N N K K 因此 公式为 N choose K 1 is N N N
  • 无法登录 Google Play 游戏服务

    我在开发者控制台上使用包名称和正确的签名证书设置了我的游戏 并为其创建了排行榜 但没有创建任何成就 然后 我从以下位置下载了示例 Type A Number Challenge 和 BaseGameUtils https developer
  • BitmapFactory.decodeResource() 忽略 jpg 图像的 inPreferredConfig 选项

    我尝试将jpeg资源图像加载到ARGB 8888格式的位图 BitmapFactory Options opts new BitmapFactory Options opts inPreferredConfig Bitmap Config
  • 如何在 kotlin 中检查 lambda 空值

    在 Kotlin 中如何检查 lambda 是否为空 例如 我有这样的签名 onError Throwable gt Unit 我如何区分它的默认值是应用于主体还是应用于此函数的值 您无法测试 lambda 的主体是否为空 因此它不包含源代
  • 用 python 编写的数学语法检查器

    我需要的只是使用 python 检查字符串是否是有效的数学表达式 为了简单起见 假设我只需要 运算符 也作为一元 带有数字和嵌套括号 为了完整性 我还添加了简单的变量名称 所以我可以这样测试 test 3 2 1 valid test 3
  • Android 4.2 - Environment.getExternalStorageDirectory().getPath() 行为

    我一直在开发一个android应用程序 在上次更新到4 2之前 我使用 Environment getExternalStorageDirectory getPath 它返回了我 storage sdcard0 但自从更新后我现在得到了 s
  • Android复杂布局线性和相对

    I have to implement a layout like shown in the diagram and I do not know the best combination to achieve the required de
  • 动态创建 JSON 对象

    我正在尝试使用以下格式创建 JSON 对象 tableID 1 price 53 payment cash quantity 3 products ID 1 quantity 1 ID 3 quantity 2 我知道如何使用 JSONOb
  • 对于大型简单数据库,SQLite 和 DISQLite 有何比较?

    两者有什么区别SQLite http www sqlite org and DISQLite http www yunqa de delphi doku php products sqlite3 index为什么我要选择其中一个而不是另一个
  • Android Espresso - 如果未选中,请单击复选框

    I have onView withId R id check box perform click 但我只想在尚未选中该复选框时执行此操作 我怎样才能在浓缩咖啡中做到这一点 我还想根据其之前的状态来切换复选框 开关 起初 我尝试用此方法打开

随机推荐

  • PHP向上转换对象[重复]

    这个问题在这里已经有答案了 我可以将一个对象向上转换为其父对象吗 示例代码 class ClassA public function foo echo get class this class ClassB extends ClassA p
  • 如何测试 UIStoryBoard segue 是由 didSelectRow(at:) 触发的

    所以我有一个带有 UITableView 的故事板 有一个原型单元 其显示序列连接到另一个 UIViewController Example 小区标识符是 CellOne Segues 没有标识符 我的类是 tableView 的数据源和委
  • i18n 错误(错误:您正在传递未定义的模块!请检查您传递给 i18next.use() 的对象)

    我正在尝试在我的 Gatsby 项目中设置 i18n 我一直在逐步遵循本教程 https www gatsbyjs org blog 2017 10 17 building i18n with gatsby https www gatsby
  • 为什么 .join() 不能使用函数参数?

    为什么这样有效 返回 一 二 三 var words one two three main append p words join p 和这项工作 返回 列表 111 var displayIt function return the li
  • guvectorize 在 nopython 模式下不解析类型

    我正在努力解决 numba 错误Untyped global name is a subset Cannot determine Numba type of
  • React div 容器 onClick 与复选框 onChange 冲突

    在下面的 React 类中 我在 div 容器中有一个复选框 我想要单击容器来切换复选框 我也think我需要绑定复选框输入本身的 onChange 以处理诸如用户使用制表符 空格来切换复选框状态之类的事情 如果我don t指定 onCha
  • Kubernetes - 从作业连接到 cassandra 到不同的 pod

    当我尝试执行以下命令时 bin sh c cqlsh cassandra my namespace svc cluster local f path to schema cql 从我的工作中 我收到以下错误 Traceback most r
  • GZIP PlayFramework 2.0 中的响应正文

    我正在开发 Playframework 2 x 应用程序 我的应用程序中的控制器将 JSON 响应返回到浏览器 端点 我想知道是否有一种简单的方法来启用响应正文的 GZIP 压缩 目前在 2 0 4 版本中 对于非资产没有简单的方法 对于
  • 使用 Angular 5 的 IE 11 兼容性错误

    我已经构建了 Angular 应用程序 然后在服务器中运行它 我收到的错误未在本地主机中显示 Unable to get property onHover of undefined or null reference File Chart
  • 按列值将数据拆分为不同的工作表

    假设我有一个工作表 A 列中有多个不同的值 有没有办法创建一个宏 将列条目为 0 的所有行放入一个单独的工作表中 所有行的条目 1 都放在另一个工作表中 依此类推 我的第一直觉是创造一些东西 1 按相关列排序 2 使用 IF 语句检查前一个
  • ListViewItem水平拉伸UWP 10

    我想水平拉伸ListView在UWP 10中 我还设置了HorizontalContentAlignment to Stretch 它有点有效 但并不完全是我想要的结果 我将 ListView 背景设置为 Aqua 因此您可以看到 List
  • 在另一个类中创建类的实例(使用通用示例)

    我正在通过书籍和互联网学习Python 但我陷入了课堂问题 2个问题 如何在另一个 单独的 类中创建一个类的实例 如何在类和嵌套 类之间传递变量 当我尝试在另一个 单独的 类中创建类的实例时 我可以在方法中执行此操作 这是代码 import
  • C#:当一个字段可以是不同类型时反序列化 JSON

    我正在与返回包含 true false 或字符串数 组数组的 JSON 的 API 进行通信 我希望反序列化此 JSON 并将布尔值 如果有 存储在数据类型 bool 的名为 Success 的类字段中 并将数组 如果有 存储在自定义数据类
  • 建议使用 postgres 工具来查找模式和数据之间的差异

    各位 任何人都可以建议我使用 Linux 的 postgres 工具来查找2个给定数据库之间的差异 我尝试使用 apgdiff 2 3 但它给出了模式而不是数据方面的差异 但我两者都需要 提前致谢 比较数据并不容易 尤其是当您的数据库很大时
  • 重写 Objective-C 中的可变参数方法

    在 Objective C 中子类化时 在可变参数方法的情况下如何将调用转发到超类 我应该用什么来替换 下面发送我得到的所有对象 void appendObjects id firstObject super appendObjects 你
  • 如何在 Android 应用程序的 Activity 之间传递数据?

    我有一个场景 通过登录页面登录后 会出现注销button在各个activity 点击时sign out 我将通过session id登录用户的注销 谁能指导我如何保持session id所有人都可以使用activities 这种情况的任何替
  • 在 Python 中调用函数列表的惯用方式是什么?

    我有一个回调函数列表 当事件触发时我需要调用这些函数 这是惯用的Python吗 def first callback m print first m def second callback m print second m lst firs
  • 在状态计算中“不断转动曲柄”的有效方法

    我有一个有状态的进程 被建模为i gt RWS r w s a 我想给它一个输入cmds i 目前我做的是批发 let play runGame theGame go where go finished go v n cmds do end
  • 位置相关代码和位置无关代码有什么区别? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 位置相关代码和位置无关代码有什么区别
  • 获取下 N 个最近的地理点

    我在我的 Android 应用程序中有一个包含地理点的数据库表 纬度和经度是十进制度值 大约 1000 点 我需要选择距离某个给定地理点最近的 20 个点 我在 Stackoverflow 找到了如何计算两个地理点之间的距离的答案 并且非常