如果我正在执行“查找靠近我”选项,我是否应该将经度/纬度存储在数据库中


Should I store longitude/latitude in database if I'm doing a "find close to me" option?

我正在构建一个目录,让您根据当前位置查看周围的业务。目前,这些业务存储在数据库中,作为地址1,地址2,城市,省postal_code。

如果我想做距离,我是否也应该存储纬度/经度?最好的方法是什么?

我正在使用PHP,HTML5地理定位和谷歌地图。

除非您有其他方法可以缩小数据库搜索范围,否则您可能确实希望保留纬度/经度,因为它将帮助您过滤数据库搜索以查找附近的地址。使用经度/经度精确计算两点之间的确切距离很复杂,但它至少是缩小要更详细查看的地址数量的起点。

此外,如果您希望能够在没有数据连接时运行,则需要一些数据来代替 Web 查找。从经度到纬度可以获得相当准确的距离,而不必太担心经度线的收敛,至少对于我周围的精度而言。

如果您查看谷歌地图中的远程服务,您不必"必须",您可以传递地址或纬度,长:

https://developers.google.com/maps/documentation/javascript/distancematrix

您不想对数据库中的每个条目进行距离计算,您需要缩小距离。postal_code可能就足够了。如果不是,您可以通过将每个纬度限制在位置周围的范围内来快速缩小搜索范围;这提供了一个近乎正方形的梯形区域,可能已经足够好了。