我正在使用 Google Geocoding API,特别是依赖于 XML 输出格式。下面的代码循环遍历数组$arrGeocodeSales
,并为每一行检索$lat
and $long
,然后将其显示在表中。
这段代码运行良好,但我想扩展它,以便从$xml
返回的结果中提取更多字段。例如,我想从 $xml 结果中提取的一些附加字段是formatted_address
and 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; ?>