¿Hay alguna manera de obtener long / lat para una dirección dada en Google Maps con solo PHP?

Sé que esto es posible en Javascript pero necesito hacerlo solo con PHP, ¿cómo puedo hacerlo?

Sí, hay una interfaz de geoencoding HTTP a la que puede llamar desde cualquier idioma de servidor.

Y de otra manera:

$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; 

Usando Google Map API y PHP para obtener coordenadas:

 $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]; } 

aquí está mi clase:

 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; } } 

}

Puede usar una API de Google Maps para obtener direcciones de latitud y longitud ( uso de ejemplo ).