从纬度经度获取国家/地区

aWe*_*per 47 javascript google-maps geolocation

我想知道如何使用JavaScript从纬度和经度获取国家/地区名称.我愿意使用Google Maps的JavaScript API.我还可以获得城市和拉链吗?

编辑:我的目标是自动填写地址字段,而不是在地图上显示.

Chr*_*ian 64

我不知道它是否适用于谷歌地图,但有一个网络服务返回国家代码,并作为参数lat和long.

以下是一个示例:http:
//api.geonames.org/countryCodeJSON?la = 49.03&lng = 10.2&username = demo

返回JSON数据: {"languages":"de","distance":"0","countryCode":"DE","countryName":"Germany"}

我还找到了一点描述:

任何给定点的iso国家代码.

  • Web服务类型: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上创建一个用户帐户才能使用该服务.


Nis*_* Up 12

Google Geocoding API以JSON格式提供这些结果.它是免费的,但您可能需要支付无限制访问权.

尝试下面的链接

'https://maps.googleapis.com/maps/api/geocode/json?latlng=11.2742848,75.8013801&key=YOUR_API_KEY_HERE'
Run Code Online (Sandbox Code Playgroud)


小智 9

<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>
Run Code Online (Sandbox Code Playgroud)

  • 似乎不起作用,因为 http://j.maxmind.com/app/geoip.js 脚本不再加载。 (2认同)

hea*_*uck 7

如果需要一个独立的库(即没有服务器/互联网连接和快速),并且只需要国家/地区信息,则基于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) { ... });
Run Code Online (Sandbox Code Playgroud)

使用codelatlng的国家/地区代码调用回调.


ani*_*iri 5

是的,您可以使用谷歌地图查找给定纬度和经度的国家/地区.使用反向地理编码服务.

您可以从服务器获得的响应中获取国家/地区,城市,邮政编码和完整地址.请查看链接中的示例以获取详细信息;)