我们如何将经纬度转换为网站的地址?
问题描述:
我有一个给出经度和纬度的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";}
但是万亩的情况下,我有纬度,经度和我想的区域名称。
我需要它通过使用php或由js。我该怎么办?
答
包括这个脚本 - <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>
答
使得Ajax与下面的网址和数据 - > lat和长
http://maps.googleapis.com/maps/api/geocode/json?latlng=44.4647452,7.3553838&sensor=true
@biswas我可以知道这是什么结果[1]? – gitu
其实geocoder api给出了最接近的地址给定的经度和长度,你可以看到这里: - http://maps.googleapis.com/maps/api/geocode/json?latlng=53,7 所以结果是上面的输出和结果[1]是输出的第二个对象,如果你想要,你也可以使用结果[0],它会给你第一个建议的结果。 –