2016-12-26 86 views
2

我有一个给出经度和纬度的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。我该怎么办?

回答

0

包括这个脚本 - <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> 
+0

@biswas我可以知道这是什么结果[1]? – gitu

+0

其实geocoder api给出了最接近的地址给定的经度和长度,你可以看到这里: - http://maps.googleapis.com/maps/api/geocode/json?latlng=53,7 所以结果是上面的输出和结果[1]是输出的第二个对象,如果你想要,你也可以使用结果[0],它会给你第一个建议的结果。 –