假设您拥有用户的纬度和经度,并且想要找到附近...让我们说餐馆,您如何查询您的关系数据库?对于像“25英里范围内的餐馆”这样的东西?
您是否只是查询一个正方形的餐馆,其长度和纬度大于/小于用户的位置+/- 25英里(转换为我猜的度数),然后以任何语言过滤掉“角落”使用?或者可以/应该直接在SQL中执行吗?
答案 0 :(得分:4)
例如,查看oracle中可用的空间要素 - 这是维基百科条目http://en.wikipedia.org/wiki/Spatial_query,以及来自noaa https://www.ngdc.noaa.gov/wiki/index.php?title=Sample_Oracle_Spatial_Queries的示例的链接
答案 1 :(得分:3)
在这里找到一个非常好的指南:http://code.google.com/apis/maps/articles/phpsqlsearch.html
比许多其他解释简单得多......
答案 2 :(得分:2)
答案 3 :(得分:2)
如果您将纬度/长度视为距离赤道任何显着距离的直线网格(例如,在纽约,或伦敦,或莫斯科),则您的“圆”将已经完全变形。修剪“正方形”的角落并没有太大改善。
答案 4 :(得分:1)
我知道你特别提到过关系数据库,但我认为你至少要研究一个具有空间查询本机实现的系统。
就个人而言,我发现MongoDB非常优雅:http://www.mongodb.org/display/DOCS/Geospatial+Indexing