2016-02-26 181 views
1

在PHP中,我可以从提供的地址搜索纬度。但在相反的情况下,如果我从之前得到的lat地址搜索地址,则会显示不同的结果。 这意味着如果我划线支票谷歌地图Lat Long网和地址,或者反之亦然左右逢源它显示了不同的结果谷歌地图经纬度问题。

//Code to find Lat Long 
$address = "My address, My city, Zipcode"; 
$json = file_get_contents("http://maps.google.com/maps/api/geocode/json?address=".urlencode($address)."&sensor=false&region=India"); 
$json = json_decode($json); 
$lat = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'}; 
$long = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lng'}; 



//Code to find Address from lat long 
http://maps.google.com/maps/api/geocode/json?latlng=lat,long 

以上代码想回到以前定的$地址。但它显示了不同的地址

+0

也就是说它的工作方式,一些地址无法验证的方式。 – geocodezip

+0

那么,有没有准确的方法? – Jasmeen

回答

0
function get_lat_long($adrs) 
    { 
     $latlngArr=""; 
     $adrs=str_replace(" ", "+", $adrs); 
     $str_add=file_get_contents("http://maps.google.com/maps/api/geocode/xml?address=".$adrs."&sensor=false"); 
     $latlngArr["full_str"]=$str_add; 

     $array_lat=explode("<lat>", $str_add); 
     if(count($array_lat)>1) 
     { 
      $pos_lat=strpos($array_lat[1], "</lat>"); 
      $lat=substr($array_lat[1], 0, $pos_lat); 
      $latlngArr["lat"]=$lat; 
     } 
     $array_lng=explode("<lng>", $str_add); 
     if(count($array_lng)>1) 
     { 
      $pos_lng=strpos($array_lng[1], "</lng>"); 
      $lng=substr($array_lng[1], 0, $pos_lng); 
      $latlngArr["lng"]=$lng; 
     } 

     return $latlngArr; 
    }