如何根据地理位置搜索城市?
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,我只是想从数据库中获取给我最近值的记录。以上是关于如何根据地理位置搜索城市?的主要内容,如果未能解决你的问题,请参考以下文章