]> git.openstreetmap.org Git - nominatim.git/blob - lib-php/template/address-xml.php
ab0bc72cbab623cbe62ff13d217ba6325b0deaf3
[nominatim.git] / lib-php / template / address-xml.php
1 <?php
2 header('content-type: text/xml; charset=UTF-8');
3
4 echo '<';
5 echo '?xml version="1.0" encoding="UTF-8" ?';
6 echo ">\n";
7
8 echo '<reversegeocode';
9 echo " timestamp='".date(DATE_RFC822)."'";
10 echo " attribution='Data © OpenStreetMap contributors, ODbL 1.0. http://www.openstreetmap.org/copyright'";
11 echo " querystring='".htmlspecialchars($_SERVER['QUERY_STRING'], ENT_QUOTES)."'";
12 echo ">\n";
13
14 if (empty($aPlace)) {
15     if (isset($sError))
16         echo "<error>$sError</error>";
17     else echo '<error>Unable to geocode</error>';
18 } else {
19     echo '<result';
20     if ($aPlace['place_id']) echo ' place_id="'.$aPlace['place_id'].'"';
21     $sOSMType = formatOSMType($aPlace['osm_type']);
22     if ($sOSMType) echo ' osm_type="'.$sOSMType.'"'.' osm_id="'.$aPlace['osm_id'].'"';
23     if ($aPlace['ref']) echo ' ref="'.htmlspecialchars($aPlace['ref']).'"';
24     if (isset($aPlace['lat'])) echo ' lat="'.htmlspecialchars($aPlace['lat']).'"';
25     if (isset($aPlace['lon'])) echo ' lon="'.htmlspecialchars($aPlace['lon']).'"';
26     if (isset($aPlace['aBoundingBox'])) {
27         echo ' boundingbox="';
28         echo join(',', $aPlace['aBoundingBox']);
29         echo '"';
30     }
31     echo " place_rank='".$aPlace['rank_search']."'";
32     echo " address_rank='".$aPlace['rank_address']."'";
33
34
35     if (isset($aPlace['asgeojson'])) {
36         echo ' geojson=\'';
37         echo $aPlace['asgeojson'];
38         echo '\'';
39     }
40
41     if (isset($aPlace['assvg'])) {
42         echo ' geosvg=\'';
43         echo $aPlace['assvg'];
44         echo '\'';
45     }
46
47     if (isset($aPlace['astext'])) {
48         echo ' geotext=\'';
49         echo $aPlace['astext'];
50         echo '\'';
51     }
52     echo '>'.htmlspecialchars($aPlace['langaddress']).'</result>';
53
54     if (isset($aPlace['address'])) {
55         echo '<addressparts>';
56         foreach ($aPlace['address']->getAddressNames() as $sKey => $sValue) {
57             $sKey = str_replace(' ', '_', $sKey);
58             echo "<$sKey>";
59             echo htmlspecialchars($sValue);
60             echo "</$sKey>";
61         }
62         echo '</addressparts>';
63     }
64
65     if (isset($aPlace['sExtraTags'])) {
66         echo '<extratags>';
67         foreach ($aPlace['sExtraTags'] as $sKey => $sValue) {
68             echo '<tag key="'.htmlspecialchars($sKey).'" value="'.htmlspecialchars($sValue).'"/>';
69         }
70         echo '</extratags>';
71     }
72
73     if (isset($aPlace['sNameDetails'])) {
74         echo '<namedetails>';
75         foreach ($aPlace['sNameDetails'] as $sKey => $sValue) {
76             echo '<name desc="'.htmlspecialchars($sKey).'">';
77             echo htmlspecialchars($sValue);
78             echo '</name>';
79         }
80         echo '</namedetails>';
81     }
82
83     if (isset($aPlace['askml'])) {
84         echo "\n<geokml>";
85         echo $aPlace['askml'];
86         echo '</geokml>';
87     }
88 }
89
90 echo '</reversegeocode>';