【发布时间】:2014-06-27 20:57:40
【问题描述】:
我正在研究基于地理坐标查找最近人的实现。比如人A有坐标(经度和纬度)m,我想在以m为半径的圆内找人x。
我打算将地理坐标存储在 MySQL 数据库中,搜索最近坐标的有效方法是什么?
我的具体问题是:
- 应该在数据库中存储哪些字段以进行高效搜索?我打算只存储人的坐标。
- 寻找最近人的算法是什么?我计划计算人 A 的坐标与数据库中存储的坐标之间的距离。
但是,如果数据库中的坐标数量很大,我认为计算效率会降低。
实现此应用程序的更好方法是什么?
【问题讨论】:
-
如何仅提取具有可能可能在半径内的 X 或 Y 坐标的每个人,然后对其进行半径计算?
-
如果您关心性能,我肯定会考虑使用面向列的数据库来解决此类问题。
-
一个“面向列的数据库”?如果他的数据库不是“面向列”的,它可能是 NoSQL 数据库之一,在某种程度上,它仍然会关心“列”(或文档属性)。
-
面向列与面向行:en.wikipedia.org/wiki/Column-oriented_DBMS。两者都有“列”。一个按列查看数据,另一个按行查看。
标签: algorithm search coordinates