【问题标题】:Google Map Lat Long issue.谷歌地图经纬度问题。
【发布时间】:2016-02-26 07:11:29
【问题描述】:

在 PHP 中,我可以从提供的地址中搜索 lat long。但是在相反的情况下,如果我从以前的 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

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

【问题讨论】:

  • 它是这样工作的,有些地址不能这样验证。
  • 那么,有什么准确的方法吗?

标签: php google-maps


【解决方案1】:
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;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多