根据数据库值计算列表是否在“范围内”

时间:2013-07-30 16:18:12

标签: php database distance postal-code

首先,我为标题道歉!我想不出怎么说出来!

我有一个包含英国所有区号的数据库,其平均纬度和经度。现在我希望能够计算出哪个区域代码在距离另一个区域的“n”英里范围内。

我尝试在我的本地主机上运行大量计算以计算所有距离并将它们存储在一个庞大的数据库中,因此我所要做的就是稍后查看距离,但是内存耗尽,我我想知道这是否是最佳方式呢?我是否忽略了一种简单的方法来实时计算它?

所以为了说清楚,我希望人们能够以英里为单位输入区号和范围,然后获得该范围内的所有区号。 我可用的信息是一个包含以下字段的数据库:

| Postcode_ID | Pcode | GRID_N | GRID_E |纬度|经度|

2 个答案:

答案 0 :(得分:1)

有几种方法可以达到你想要的效果。

  1. 查看距离计算的“Haversine Formula

  2. 在google上查看Google Maps API examples,因为这些可能会提供有关如何解决问题的见解

  3. 要存储我建议使用PostgreSQL DatabasePostGIS

  4. 一起使用PHP Postal (Zip) Code Range and Distance Calculation

    关于PostGIS (网站引用)

      

    PostGIS是PostgreSQL对象关系数据库的空间数据库扩展器。它增加了对地理对象的支持允许位置查询在SQL中运行。

    如果您能够使用上述设置,那么使用数据库数据会更容易。


    这可能也很有用:

    {{3}}

    让你的眼睛翻过来让我知道你的想法。

    祝你好运。

答案 1 :(得分:0)

此处已回答类似问题How to calculate distance from lat/long in php?

您需要计算给定距离的半径,并确定圆圈内的其他邮政编码。