私はGoogleのジオコーディングAPIを使用しています。具体的にはXML出力フォーマットに依存しています。以下のコードは配列$arrGeocodeSales
をループし、各行に対して$lat
と$long
を取得し、テーブルに表示します。GoogleジオコーディングAPIを使用してXML結果からすべてのフィールドを抽出します
このコードは正常に動作していますが、返される結果の$xml
より多くのフィールドを抽出できるように拡張したいと考えています。たとえば、$ xmlの結果から抽出したい追加フィールドの一部は、formatted_address
とpostal_code
です。追加フィールドを抽出するために、以下のコードを変更するにはどうすればよいですか?
現在の$ xmlの結果の例を見ることができます:
をここで変更する必要があるコードがあります。私は戻ってきたSimpleXMLElement
で作業する方法を理解していないと思います。助けてくれてありがとう。
<table border="1" style="margin-bottom:0px;">
<tr>
<th>ID</th>
<th>Roll</th>
<th>Address</th>
<th>Lat</th>
<th>Long</th>
<th>MapSaleNumber</th>
</tr>
<?php foreach ($arrGeocodeSales as $key => $value):
$address = $value['Address']."+".$value['Municipality']."+Ontario+Canada";
$googleAddress = "https://maps.google.com/maps/geo?q=".urlencode($address)."&output=xml";
// Retrieve the URL contents
$googlePage = file_get_contents($googleAddress);
// Parse the returned XML file
$xml = new SimpleXMLElement($googlePage);
// Parse the coordinate string
list($lng, $lat, $alt) = explode(",", $xml->Response->Placemark->Point->coordinates);
?>
<tr>
<td ><?php echo str_pad($row++, 2, '0', STR_PAD_LEFT); ?></td>
<td ><?php echo $value['SingleRoll']; ?></td>
<td ><?php echo $address; ?> </td>
<td ><?php echo $lat ?></td>
<td ><?php echo $lng ?></td>
<td ><?php echo $value['MapSaleNumber']; ?></td>
</tr>
<?php endforeach; ?>