4

假设您有用户的纬度和经度,并且您想在附近找到……比如说餐馆,您如何查询您的关系数据库?对于诸如“25 英里半径内的餐厅”之类的东西?

您是否只需查询长和纬度大于/小于用户的 loc +/- 25 英里(我猜转换为度数)的广场中的餐厅,然后以您使用的任何语言过滤掉“角落”?还是可以/应该直接在 SQL 中执行?

4

5 回答 5

4

例如,看看 oracle 中可用的空间功能 - 这是维基百科条目http://en.wikipedia.org/wiki/Spatial_query,以及来自 noaa 示例的链接https://www.ngdc.noaa.gov /wiki/index.php?title=Sample_Oracle_Spatial_Queries

于 2010-06-23T01:49:15.550 回答
3

在这里找到了一个非常好的指南:http ://code.google.com/apis/maps/articles/phpsqlsearch.html

比许多其他解释简单得多......

于 2010-06-24T19:52:13.477 回答
2

使用Haversine 公式的 SQL 实现

于 2010-06-23T01:50:49.180 回答
2

如果您将纬度/经度视为距赤道任何显着距离的直线网格(例如,在纽约、伦敦或莫斯科),您的“圆”已经非常变形。修剪“正方形”的角落并没有太大改善。

于 2010-06-23T01:56:51.693 回答
1

我知道您特别提到了关系数据库,但我认为您至少要研究一个具有空间查询本机实现的系统。

就个人而言,我发现 MongoDB 非常优雅:http ://www.mongodb.org/display/DOCS/Geospatial+Indexing

于 2010-06-23T02:02:01.463 回答