我们如何将纬度和经度转换为网站中的地址?
Posted
技术标签:
【中文标题】我们如何将纬度和经度转换为网站中的地址?【英文标题】:How will we convert latitude and longitude to the address in web site? 【发布时间】:2017-05-10 19:19:15 【问题描述】:我有一个提供纬度和经度的 API,我想要基于这些值的地点(城市、地区等)的地址。
假设像http://ip-api.com/php/2.50.153.139这样的网站,如果我们给出位置的ip,它将给出我们居住的位置的名称。 json 输出将如下所示:
a:14:s:5:"query";s:12:"2.50.153.139";s:10:"regionName";s:9:"Abu Dhabi";s:3:"lat";d:24.466699600219727;s:3:"org";s:39:"Emirates Telecommunications Corporation";s:3:"zip";s:0:"";s:2:"as";s:24:"AS5384 Emirates Internet";s:6:"status";s:7:"success";s:7:"country";s:20:"United Arab Emirates";s:4:"city";s:9:"Abu Dhabi";s:3:"lon";d:54.36669921875;s:8:"timezone";s:10:"Asia/Dubai";s:3:"isp";s:39:"Emirates Telecommunications Corporation";s:11:"countryCode";s:2:"AE";s:6:"region";s:2:"AZ";
但在 mu 情况下,我有纬度,经度,我想要区域名称。
我需要它通过使用 php 或 js 。我该怎么做?
【问题讨论】:
【参考方案1】:包括这个脚本 -
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
然后:-
<script type="text/javascript">
function GetAddress()
var lat = parseFloat(document.getElementById("#yourinputlat").value);
var lng = parseFloat(document.getElementById("#yourinputlon").value);
var latlng = new google.maps.LatLng(lat, lng);
var geocoder = geocoder = new google.maps.Geocoder();
geocoder.geocode( 'latLng': latlng , function (results, status)
if (status == google.maps.GeocoderStatus.OK)
if (results[1])
alert("Location: " + results[1].formatted_address);
);
</script>
【讨论】:
@biswas 我可以知道这是什么结果[1]? 实际上,地理编码器 api 给出了最接近给定 lat 和 lon 的地址,如您在此处看到的:- maps.googleapis.com/maps/api/geocode/json?latlng=53,7 所以 results 是上面的输出, results[1] 是输出的第二个对象,如果你愿意,你也可以使用 results[0] ,它会给你第一个建议的结果。【参考方案2】:使用以下 url 和数据制作 ajax -> lat 和 long
http://maps.googleapis.com/maps/api/geocode/json?latlng=44.4647452,7.3553838&sensor=true
【讨论】:
【参考方案3】:你应该试试这个,你正在寻找谷歌(或其他任何人)的reverse geocoding service.
【讨论】:
以上是关于我们如何将纬度和经度转换为网站中的地址?的主要内容,如果未能解决你的问题,请参考以下文章