如何根据地理位置搜索城市?

Posted

技术标签:

【中文标题】如何根据地理位置搜索城市?【英文标题】:How to search city based on Geographic location? 【发布时间】:2017-05-02 06:27:20 【问题描述】:

我是 php 新手,我想搜索位于一定英里数内的城市?

为了。例如

当人们注册时,他们将注册他们的实际地址。当有人搜索成员时,他们将按城市搜索,搜索功能将基于距离。

我的 html 代码

<form method="get" id="sul-searchform" action="" ?>">
        <div class="frmSearch">
            <input type="text" id="search-box" name="as"  placeholder="City, state or zip" />
            <label>Select a distance in miles:</label>
                    <select name="distance">
                    <option>5</option>
                    <option>10</option>
                    <option>25</option>
                    <option>50</option>
                    <option>100</option>
            <input type="submit" class="submit" name="submit" id="sul-searchsubmit" value="Search Member" />
            <div id="suggesstion-box"></div>
        </div>
    </form>

我也想要这样的click here

我不知道如何做到这一点,有没有人知道,然后请逐步分享代码?

【问题讨论】:

【参考方案1】:

有一种方法可以做到这一点。

1 - 使用 Web 浏览器的 GeoLocation API 获取用户的地理位置。

2 - 获取地理位置后,您可以使用该信息与 Google Map 的反向地理编码 API 来获取用户当前所在的城市名称详细信息。

3 - 然后将城市详细信息与表格中的相应用户映射。因此,每当您需要所有成员都出现在任何特定城市时,您都可以直接查询您的数据库以获取所有这些成员的详细信息。

地理定位 API 参考 -

https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/getCurrentPosition https://developer.mozilla.org/en-US/docs/Web/API/Geolocation/Using_geolocation

反向地理编码 API 参考 -

https://developers.google.com/maps/documentation/geocoding/start?csw=1#ReverseGeocoding

反向地理编码 API 的示例

http://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&sensor=true

希望对你有帮助。

【讨论】:

我想要数据库中的位置数据。 为此,在注册时仅获取那些 CITY 详细信息并存储在您的数据库中。然后,每当您需要搜索任何城市的成员时......您可以直接从 DB 中搜索。 您能否分享一下位于一定英里数内的城市的代码? 我不这么认为,有这样的api存在。但是,如果你有 2 个地理点,那么通过使用一些计算你可以计算出来。他们之间的距离是多少。因此,如果您在数据库中拥有所有城市的地理坐标,那么通过将这些坐标与任何特定的地理坐标进行比较,您就可以知道这两个城市之间的确切距离。参考 - ***.com/questions/27928/… 我没有创建任何 api,我只是想从数据库中获取给我最近值的记录。

以上是关于如何根据地理位置搜索城市?的主要内容,如果未能解决你的问题,请参考以下文章

如何进行基于位置的搜索

如何在国家/地区最近的城市内使用 MongoDB 地理空间查询搜索文档?

使用地理位置查找最近的城市

地理网格搜索算法

如何做一个简单的网页版地图

如何使用地理位置获取城市名称并重定向到该城市的 URL?