我想知道如何使用 JavaScript 从纬度和经度获取国家名称。我愿意使用 Google Maps 的 JavaScript API。我也可以得到城市和邮编吗?
编辑:我的目标是自动填写地址字段,而不是在地图上显示它。
我想知道如何使用 JavaScript 从纬度和经度获取国家名称。我愿意使用 Google Maps 的 JavaScript API。我也可以得到城市和邮编吗?
编辑:我的目标是自动填写地址字段,而不是在地图上显示它。
我不知道它是否适用于谷歌地图,但有一个网络服务返回一个国家代码并将纬度和经度作为参数。
这是一个例子:http :
//api.geonames.org/countryCodeJSON?lat=49.03&lng=10.2&username=demo
返回一个 JSON 数据:
{"languages":"de","distance":"0","countryCode":"DE","countryName":"Germany"}
我还找到了一个小说明:
任何给定点的 iso 国家/地区代码。
- 网络服务类型:REST
- 网址:
ws.geonames.org/countryCode?- 参数:
lat,lng,type,lang,radius(沿海地区最近国家的缓冲区,以公里为单位)- 结果:返回给定纬度/经度的 iso 国家/地区代码
使用参数,
type=xml此服务返回一个带有 iso 国家/地区代码和国家/地区名称的 xml 文档。可选参数 lang 可用于指定国家/地区名称应使用的语言。 JSON 输出使用type=JSON
查看文档
编辑:请注意,这demo只是一个演示用户,您应该在http://www.geonames.org/login创建一个用户帐户才能使用该服务。
Google Geocoding API 以 JSON 格式提供这些结果。它有一个免费层,但您需要为对 API 的无限制请求付费。
请求的 API 链接如下所示:
'https://maps.googleapis.com/maps/api/geocode/json?latlng=11.2742848,75.8013801&key=YOUR_API_KEY_HERE'
如果需要一个自包含的库(即没有服务器/互联网连接,并且速度快),并且只需要国家信息,那么以下基于 openstreetmap 数据的库会很有用 - https://github.com/hlaw/codegrid- js
<script type="text/javascript" src="[path]/codegrid.js"></script>
grid = codegrid.CodeGrid(); // initialize
grid.getCode (lat, lng, function (err, code) { ... });
使用codelatlng 的国家代码调用回调。
<form id="form1" runat="server">
<div>
<script type="text/javascript" src="http://j.maxmind.com/app/geoip.js" ></script>
<br />Country Code:
<script type="text/javascript">document.write(geoip_country_code());</script>
<br />Country Name:
<script type="text/javascript">document.write(geoip_country_name());</script>
<br />City:
<script type="text/javascript">document.write(geoip_city());</script>
<br />Region:
<script type="text/javascript">document.write(geoip_region());</script>
<br />Region Name:
<script type="text/javascript">document.write(geoip_region_name());</script>
<br />Latitude:
<script type="text/javascript">document.write(geoip_latitude());</script>
<br />Longitude:
<script type="text/javascript">document.write(geoip_longitude());</script>
<br />Postal Code:
<script type="text/javascript">document.write(geoip_postal_code());</script>
</div>
</form>
是的,您可以使用谷歌地图查找给定纬度和经度的国家/地区。使用反向地理编码服务。
您可以从服务器的响应中获取国家、城市、邮政编码和完整地址。查看链接中的示例以了解详细信息;)