Проблема с Google Map API - PullRequest
       2

Проблема с Google Map API

0 голосов
/ 25 февраля 2012

У меня есть код, который принимает любой адрес и возвращает lat и long как переменную php.

if ($_SESSION['where']) {
    $where = stripslashes($_SESSION['where']);
    $whereurl = urlencode($where);

$location = file("http://maps.google.com/maps/geo?q=new+york+New+york
&output=csv&key=xxxxxxxxxxxxxxxxxxxxxxxx");
        list ($stat,$acc,$north,$east) = explode(",",$location[0]);
        $html = "Information for ".$where."<br>";
        $html .= "North: $north, East: $east<br>";
        $html .= "Accuracy: $acc, Status: $stat<br>";
} else {
        $html = "Varibles Undefined";
}

?>


     <?php $_SESSION['lat'] = "$html"; $_SESSION['lon'] = "$whereurl"; echo"<strong>"?><?php echo "$north";?>&deg; North, <?php echo "$east";?>&deg; East</strong>

Я знаю, что это работает, потому что, когда я ввожу

http://maps.google.com/maps/geo?q=$whereurl
    &output=csv&key=xxxxxxxxxxxxxxxxxxxx

вручную в браузер, возвращает

200,4,40.7143528,-74.0059731

, что мне нужно сохранить как переменную PHP. Однако он не сохраняет его как $ север или $ восток. Любые предложения о том, как это исправить? Спасибо заранее.

вот что это мне дает:

{"name": "New York New York", "Status": {"code": 200, "request": "geocode"}, "Placemark": [{"id": "p1", " address ":" New York, NY, USA "," AddressDetails ": {" Accuracy ": 4," Country ": {" AdministrativeArea ": {" AdministrativeAreaName ":" NY "," SubAdministrativeArea ": {" Locality ": {"LocalityName": "New York"}, "SubAdministrativeAreaName": "New York"}}, "CountryName": "USA", "CountryNameCode": "US"}}, "ExtendedData": {"LatLonBox": { "север": 40.8495342, "юг": 40.5788964, "восток": -73.7498543, "запад": -74.2620919}}, "точка": {"координаты": [-74.0059731, 40.7143528, 0]}}, {" id ":" p2 "," address ":" Манхэттен, Нью-Йорк, Нью-Йорк, США "," AddressDetails ": {" Точность ": 4," Страна ": {" AdministrativeArea ": {" AdministrativeAreaName ":" NY " , "SubAdministrativeArea": ​​{"Locality": {"DependentLocality": {"DependentLocalityName": "Manhattan"}, "LocalityName": "New York"}, "SubAdministrativeAreaName": "New York"}}, "CountryName": "США", "CountryNameCode ":" US "}}," ExtendedData ": {" LatLonBox ": {" north ": 40.8200450," south ": 40.6980780," east ": -73.9033130," west ": -74.0351490}}," Point ": {"координаты": [-73,9662495, 40,7834345, 0]}}]}

1 Ответ

0 голосов
/ 25 февраля 2012

Вместо этого используйте file_get_contents (который возвращает вам строку).

Краткий пример:

$location = file_get_contents("http://maps.google.com/maps/geo?q=$whereurl&output=csv");
$test = explode(",",$location);
print_r($test);

Полное решение здесь:

http://www.ece.uvic.ca/~casualt/random.php?location=Bermuda

Источник:

$theLocation = "new+york";
$locIn = $_GET['location'];
if($locIn)
{
    $theLocation = urlencode($locIn);   //Just to be safe (even though this got passed in via get
}
$location = file_get_contents('http://maps.google.com/maps/geo?q='.$theLocation.'&output=csv&key=AIzaSyAQtiJHUt5KiL-aGONLlACQQ3OdwpbvFzI');
$test = explode(",",$location);
//print_r($test);
$lat = $test[2];
$long = $test[3];
echo '<h1>Magical Location of '.$theLocation.':</h1>';
echo '<ul>';
echo '<li>Longitude: '.$long.'</li>';
echo '<li>Latitude: '.$lat.'</li>';
echo '</ul>';

Это должно помочь вам.:)

...