【问题标题】:How should I make the "close to".. "near by"我应该如何使“接近”..“附近”
【发布时间】:2011-10-21 21:11:21
【问题描述】:

我想在我的搜索字段中添加一项功能。 所以你可以写 Close to: Copenhagen (example)。

然后应该在哥本哈根(哥本哈根是丹麦的首都)周围/内部大约 5 公里范围内,获取其中的地址,并将它们显示为结果..

所以它需要所有地址,检查它们是否在哥本哈根周围 5 公里范围内,然后显示那些。

这可能吗?如果没有,任何类似的方法可以做到这一点?我应该调查什么?

【问题讨论】:

    标签: php api


    【解决方案1】:

    您可以使用(例如)Google Maps API 将geocode 位置的文本描述(搜索词和地址)转换为 GPS 坐标位置。然后,您检查数据库中的哪些位置在搜索词位置的范围内。不过,该 API 的使用条款和条件要求您使用地理编码结果来显示 Google 地图。

    虽然有效地确定“范围内”可能会很棘手,但您通常需要一个支持 GIS 的数据库来为您进行计算。一个很容易在任何数据库上实现的黑客捷径是在搜索词位置的北、东、南和西 5 公里(或任何你想要的距离)处取点,然后寻找纬度和经度在最小值之间的地址和给你的最大纬度和经度。 This page 列出了所需的公式。 (如果搜索区域靠近经度“环绕”的位置并且由于地球的曲率而不搜索矩形,则此方法将不起作用,但没有多少人搜索餐厅评论或北极或北极地区有什么太平洋中部。)

    【讨论】:

    • 好的,所以我需要将搜索输入字段,例如哥本哈根(我可能需要写得更具体)转换为 gps 坐标。然后我从数据库中获取地址-> 将它们设置为 gps 坐标并检查它们中的哪一个?这就是我从中理解的对吗?
    • @Karem:是的,这基本上是对的。理想情况下,您希望尽早将存储的地址转换为 GPS 坐标并将坐标存储在数据库中。
    • 感谢您的解释。请看我制作这个stackoverflow.com/questions/7858905/…的第一个问题
    • @Karem:我的答案中有一个指向所需公式的链接。
    • 能否请您参考页面中我需要的具体内容?
    【解决方案2】:

    你应该看看地理编码。

    一种方法是使用 Google Maps API,它允许您将地址转换为坐标,然后您可以轻松地计算出一定距离内的地址。

    看看: http://code.google.com/apis/maps/documentation/webservices/index.html

    我敢肯定,如果您不喜欢“地理编码”,您会发现许多其他解决方案。

    【讨论】:

    • 你有任何链接可以阅读我如何“轻松”计算距离内的距离吗?
    猜你喜欢
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 2015-11-14
    • 1970-01-01
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多