【发布时间】:2014-02-25 18:25:04
【问题描述】:
我有一个地址表“街道”、“城市”、“州”和“邮编”。
我可以使用 google maps API 拉出完整地址的网格,haversine 公式就足够了,但我如何根据它进行搜索?
示例。假设有人搜索“纽约市”,我该如何搜索最接近该纬度/经度的地址?我知道我需要将其转换为纬度/经度。
我是否应该添加另一个字段,以便以纬度/经度存储地址?如果是这样,我该怎么做才能根据距离进行搜索?
【问题讨论】:
-
如果您有
originlat/long,您可以使用数学来确定范围内其他lat/long 坐标的半径。然后只需在数据库中查询具有 lat/long 在 min/max 值内的记录。 -
视情况而定。你想要行驶距离还是直线距离?线性距离,按照@BotskoNet 所说的去做,否则,您可能必须使用 google maps api 并在 PHP 脚本中计算出来,将每个 ID 和 Distance 存储在一个数组中,然后获取最接近的 X 个位置起点。
标签: php mysql distance latitude-longitude haversine