Google Map Lat Long问题。

时间:2016-02-26 07:11:29

标签: php google-maps

在PHP中,我能够从提供的地址搜索lat long。但在相反的情况下,如果我从先前得到的lat中搜索地址,那么它会显示不同的结果。 这意味着如果我通过检查google map lat long和adress,反之亦然,它会显示不同的结果

//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

以上代码假设返回先前给定的$ address。但它显示了不同的地址

1 个答案:

答案 0 :(得分: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;
    }