如何从坐标[无限请求]获取城市名称?

时间:2018-01-20 10:48:28

标签: javascript google-maps

我需要从用户的GeoLocation获取城市名称。我知道Google的反向地理编码服务,但它每天限制为2500个请求。

是否存在无限量请求的服务,或者是否存在将坐标映射到城市的其他有效方法?

1 个答案:

答案 0 :(得分:0)

您可以使用基于OpenStreetMap(OSM)API的工具进行反向地理编码。这是一个开放的数据项目,所以有no pricing(尽管你可以通过捐赠来帮助他们)。他们对usage and bandwidth

有一些限制

其中一个工具是Nominatim,您可以使用纬度和经度坐标获取城市地址。以下是链接维基的示例

  

https://nominatim.openstreetmap.org/reverse?format=xml&lat=52.5487429714954&lon=-1.81602098644987&zoom=18&addressdetails=1

给你这个结果

<reversegeocode timestamp="Sat, 20 Jan 18 10:53:40 +0000" attribution="Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright" querystring="format=xml&lat=52.5487429714954&lon=-1.81602098644987&zoom=18&addressdetails=1">
<result place_id="91015268" osm_type="way" osm_id="90394420" lat="52.54877605" lon="-1.81627033283164" boundingbox="52.5487321,52.5488299,-1.8163514,-1.8161885">

137, Pilkington Avenue, Sutton Coldfield, Birmingham, West Midlands Combined Authority, West Midlands, England, B72 1LH, United Kingdom
</result>
<addressparts>
<house_number>137</house_number>
<road>Pilkington Avenue</road>
<suburb>Sutton Coldfield</suburb>
<city>Birmingham</city>
<county>West Midlands Combined Authority</county>
<state_district>West Midlands</state_district>
<state>England</state>
<postcode>B72 1LH</postcode>
<country>United Kingdom</country>
<country_code>gb</country_code>
</addressparts>
</reversegeocode>

<强>更新

  1. 使用前请参阅Nominatim服务的usage guidelines
  2. 您还可以查看其他search engines for OSM