]> git.openstreetmap.org Git - nominatim.git/blob - lib/template/address-xml.php
Reverse geocode include geometry
[nominatim.git] / lib / 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 (!sizeof($aPlace))
15         {
16                 if (isset($sError))
17                         echo "<error>$sError</error>";
18                 else
19                         echo "<error>Unable to geocode</error>";
20         }
21         else
22         {
23                 echo "<result";
24                 if ($aPlace['place_id']) echo ' place_id="'.$aPlace['place_id'].'"';
25                 $sOSMType = ($aPlace['osm_type'] == 'N'?'node':($aPlace['osm_type'] == 'W'?'way':($aPlace['osm_type'] == 'R'?'relation':'')));
26                 if ($sOSMType) echo ' osm_type="'.$sOSMType.'"'.' osm_id="'.$aPlace['osm_id'].'"';
27                 if ($aPlace['ref']) echo ' ref="'.htmlspecialchars($aPlace['ref']).'"';
28                 if (isset($aPlace['lat'])) echo ' lat="'.htmlspecialchars($aPlace['lat']).'"';
29                 if (isset($aPlace['lon'])) echo ' lon="'.htmlspecialchars($aPlace['lon']).'"';
30                 if (isset($aPlace['aBoundingBox']))
31                 {
32                         echo ' boundingbox="';
33                         echo join(',', $aPlace['aBoundingBox']);
34                         echo '"';
35
36                         if ($bAsPoints && isset($aPlace['aPolyPoints']))
37                         {
38                                 echo ' polygonpoints=\'';
39                                 echo json_encode($aPlace['aPolyPoints']);
40                                 echo '\'';
41                         }
42                 }
43
44                 if (isset($aPlace['asgeojson']))
45                 {
46                         echo ' geojson=\'';
47                         echo $aPlace['asgeojson'];
48                         echo '\'';
49                 }
50
51                 if (isset($aPlace['assvg']))
52                 {
53                         echo ' geosvg=\'';
54                         echo $aPlace['assvg'];
55                         echo '\'';
56                 }
57
58                 if (isset($aPlace['astext']))
59                 {
60                         echo ' geotext=\'';
61                         echo $aPlace['astext'];
62                         echo '\'';
63                 }
64                 echo ">".htmlspecialchars($aPlace['langaddress'])."</result>";
65
66                 if (isset($aPlace['aAddress']))
67                 {
68                         echo "<addressparts>";
69                         foreach($aPlace['aAddress'] as $sKey => $sValue)
70                         {
71                                 $sKey = str_replace(' ','_',$sKey);
72                                 echo "<$sKey>";
73                                 echo htmlspecialchars($sValue);
74                                 echo "</$sKey>";
75                         }
76                         echo "</addressparts>";
77                 }
78
79                 if (isset($aPlace['sExtraTags']))
80                 {
81                         echo "<extratags>";
82                         foreach ($aPlace['sExtraTags'] as $sKey => $sValue)
83                         {
84                                 echo '<tag key="'.htmlspecialchars($sKey).'" value="'.htmlspecialchars($sValue).'"/>';
85                         }
86                         echo "</extratags>";
87                 }
88
89                 if (isset($aPlace['sNameDetails']))
90                 {
91                         echo "<namedetails>";
92                         foreach ($aPlace['sNameDetails'] as $sKey => $sValue)
93                         {
94                                 echo '<name desc="'.htmlspecialchars($sKey).'">';
95                                 echo htmlspecialchars($sValue);
96                                 echo "</name>";
97                         }
98                         echo "</namedetails>";
99                 }
100
101                 if (isset($aPlace['askml']))
102                 {
103                         echo "\n<geokml>";
104                         echo $aPlace['askml'];
105                         echo "</geokml>";
106                 }
107
108         }
109
110         echo "</reversegeocode>";