0

この住所 '81 w Columbus Street, Lithopolis, OH 43136 を Google マップに入力すると、住所が確認され、座標が返され、地図上にマーカーが表示されます。ただし、スクリプトで同じアドレスを使用すると、まったく異なる JSON アドレス/応答が得られます。必要に応じて使用するコード:

フォーム:

 <form action="json-decode-script.php" name="my-form" id="my-form" method="post">

             <input name="street_add" id="street_add" type="textbox" placeholder="street addres" class="address">
             <input name="city" id="city" type="textbox" placeholder="city" class="address">
             <input name="state" id="state" type="textbox" placeholder="state" class="address">
             <input name="postcode" id="postcode" type="textbox" placeholder="zipcode" class="address">

             <input type="submit" id="submit" value="go">
           </form>

スクリプト:

<?php
$street_add = (isset($_POST['street_add'])) ? $_POST['street_add'] : '';
$city = (isset($_POST['city'])) ? $_POST['street_add'] : '';
$state = (isset($_POST['state'])) ? $_POST['street_add'] : '';
$postcode = (isset($_POST['postcode'])) ? $_POST['postcode'] : '';
$address = $street_add . ',' . $city . ',' . $state . ',' . $postcode;
$latitude = '';
$longitude = '';

    // Send Encoded address to google api
$json = file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?address='.rawurlencode($address).'&sensor=false');
// Convert json to array
$array = json_decode($json);
// Results
$formatted =  $array->results[0]->formatted_address;
$latitude = $array->results[0]->geometry->location->lat;
$longitude = $array->results[0]->geometry->location->lng;
$theStreetNum = $array->results[0]->address_components[0]->long_name;
$theStreetName = $array->results[0]->address_components[1]->long_name;
$street_add = $theStreetNum . ' ' . $theStreetName;
$theCity = $array->results[0]->address_components[3]->long_name;
$theState = $array->results[0]->address_components[6]->short_name;
$thePostCode = $array->results[0]->address_components[8]->long_name;

?><pre><?php
print_r($array);
?></pre>

また、私が使用した他のアドレスは期待どおりに機能することに注意してください。

4

0 に答える 0