java - 基于坐标的搜索

标签 java sql search geocoding latitude-longitude

我正在开发一个网页,用户可以在其中创建 Activity ,其他人可以通过搜索功能找到它们。当你创建一个 Activity 时,你必须指定它发生的确切位置,借助谷歌地图我检索纬度和经度。现在,在进行搜索时,我希望能够找到靠近指定位置的所有 Activity (也可以借助谷歌地图)。

所以我有一组带坐标的 Activity ,我想在附近找到 Activity 的点的坐标,我想返回不超过,比方说,5 公里(或英里或任何你喜欢的)的 Activity 远离这一点。

我脑子里有这个想法,这可以通过计算最大/最小纬度和经度来解决,并将它们用作 sql 查询中的参数,我在其中使用 where 子句进行过滤...我的问题m 面向这里首先计算这些最大值/最小值,其次是在一个圆形区域(半径为 5km),而不是矩形

在此欢迎任何意见! 谢谢!:)

最佳答案

您得到的坐标可能不是 x 和 y,而是纬度和经度;你需要 spherical distance除非你所有的点都在相当小的半径内,例如几百英里。

如果你有很多点,直接穷举搜索会变得太慢,无论是否是球形的。幸运的是,GIS 扩展同时可用 for MySQLfor Postgres .商业数据库也有空间扩展。这些使得搜索附近的物体变得高效。

关于java - 基于坐标的搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5093025/

相关文章:

java - 这个android函数返回什么

java - 使用泛型时如何解决这个未经检查的转换错误?

java - 基本 libGDX 项目运行速度为 47-48 fps

sql - Laravel eloquent where with 关系

c++ - 如何创建一个函数来查找文本中单词的匹配项,包括跳过

java: log4j: jar 可执行文件的问题

具有特殊条件的 MySQL 求和

drupal - 更改搜索表单操作不适用于自定义搜索模块,Drupal 6

search - 您可以批量编辑 grep 返回的所有文件吗?

PHP:SQL 查询从任何表中选择 php 数组提供的列