有没有办法仅使用 PHP 即可在 Google 地图中获取给定地址的长/纬度?

Is there a way to get long/lat for a given address in Google Maps with only PHP?

提问人:Andrew G. Johnson 提问时间:10/6/2009 更新时间:11/27/2013 访问量:12241

问:

我知道这在 Javascript 中是可能的,但我只需要使用 PHP 来做到这一点,我怎么能做到呢?

php 谷歌地图

评论


答:

13赞 Mike Williams 10/6/2009 #1

是的,有一个 HTTP 地理编码接口,您可以从任何服务器语言调用该接口。

4赞 mauris 10/6/2009 #2

使用 Google Map API 和 PHP 获取坐标:

$url = 'http://maps.google.com/maps/geo?q='.$address.'&output=json&oe=utf8&sensor=false&key='.$api_key;
$data = @file_get_contents($url);
$jsondata = json_decode($data,true);
if(is_array($jsondata )&& $jsondata ['Status']['code']==200){
  $lat = $jsondata ['Placemark'][0]['Point']['coordinates'][0];
  $lon = $jsondata ['Placemark'][0]['Point']['coordinates'][1];
}
8赞 Tizón 6/12/2011 #3

和其他方式:

$geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$address.'&sensor=false');

$output= json_decode($geocode);

$lat = $output->results[0]->geometry->location->lat;
$long = $output->results[0]->geometry->location->lng;
0赞 Amit Sanghani 5/11/2012 #4

您可以使用 Google Maps API 从 lat 和 long 获取地址(示例用法)。

3赞 Sebastian Viereck 11/27/2013 #5

这是我的班级:

class GeoCoder {
public static function getLatLng($address){
    try{
        $address = urlencode($address);
        $geocode=file_get_contents('http://maps.google.com/maps/api/geocode/json?address='.$address.'&sensor=false');

        $output= json_decode($geocode);

        $lat = $output->results[0]->geometry->location->lat;
        $lng = $output->results[0]->geometry->location->lng;
        if(is_numeric($lat) && is_numeric($lng)){
            return array("lat" => $lat, "lng" => $lng);
        }
    }
    catch(Exception $e){            
        return false;
    }
}

}