diff --git a/lib/template/address-json.php b/lib/template/address-json.php new file mode 100644 index 00000000..4ae41116 --- /dev/null +++ b/lib/template/address-json.php @@ -0,0 +1,37 @@ +\n"; + + echo "\n"; + + if (!sizeof($aPlace)) + { + if ($sError) + echo "$sError"; + else + echo "Unable to geocode"; + } + else + { + echo "".htmlspecialchars($aPlace['langaddress']).""; + + echo ""; + foreach($aAddress as $sKey => $sValue) + { + $sKey = str_replace(' ','_',$sKey); + echo "<$sKey>"; + echo htmlspecialchars($sValue); + echo ""; + } + echo ""; + } + + echo ""; diff --git a/lib/template/details-html.php b/lib/template/details-html.php new file mode 100644 index 00000000..0d5f6dc6 --- /dev/null +++ b/lib/template/details-html.php @@ -0,0 +1,185 @@ + + + + OpenStreetMap Nominatim: <?php echo $aPointDetails['localname'];?> + + + + + + + +
+'; + if ($aPointDetails['icon']) + { + echo ''; + } + echo $aPointDetails['localname'].''; + echo '
'; + echo '
Name: '; + foreach($aPointDetails['aNames'] as $sKey => $sValue) + { + echo '
'.$sValue.' ('.$sKey.')
'; + } + echo '
'; + echo '
Type: '.$aPointDetails['class'].':'.$aPointDetails['type'].'
'; + echo '
Admin Level: '.$aPointDetails['admin_level'].'
'; + echo '
Rank: '.$aPointDetails['rank_search_label'].'
'; + echo '
Coverage: '.($aPointDetails['isarea']=='t'?'Polygon':'Point').'
'; + $sOSMType = ($aPointDetails['osm_type'] == 'N'?'node':($aPointDetails['osm_type'] == 'W'?'way':($aPointDetails['osm_type'] == 'R'?'relation':''))); + if ($sOSMType) echo '
OSM: '.$sOSMType.' '.$aPointDetails['osm_id'].'
'; + echo '
'; + + echo '

Address

'; + echo '
'; + $iPrevRank = 1000000; + $sPrevLocalName = ''; + foreach($aAddressLines as $aAddressLine) + { + $sOSMType = ($aAddressLine['osm_type'] == 'N'?'node':($aAddressLine['osm_type'] == 'W'?'way':($aAddressLine['osm_type'] == 'R'?'relation':''))); + + echo '
'; + if (!($iPrevRank<=$aAddressLine['rank_address'] || $sPrevLocalName == $aAddressLine['localname'])) + { + $iPrevRank = $aAddressLine['rank_address']; + $sPrevLocalName = $aAddressLine['localname']; + } + echo ''.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'No Name').''; + echo ' ('; + echo 'Type: '.$aAddressLine['class'].':'.$aAddressLine['type'].''; + if ($sOSMType) echo ', '.$sOSMType.' '.$aAddressLine['osm_id'].''; + echo ', '.$aAddressLine['admin_level'].''; + echo ', '.$aAddressLine['rank_search_label'].''; + echo ', '.($aAddressLine['fromarea']=='t'?'Polygon':'Point').''; + echo ', '.$aAddressLine['distance'].''; + echo ' GOTO'; + echo ')'; + echo '
'; + } + echo '
'; + + if (sizeof($aParentOfLines)) + { + echo '

Parent Of (named features only):

'; + + $aGroupedAddressLines = array(); + foreach($aParentOfLines as $aAddressLine) + { + if (!isset($aGroupedAddressLines[$aAddressLine['type']])) $aGroupedAddressLines[$aAddressLine['type']] = array(); + $aGroupedAddressLines[$aAddressLine['type']][] = $aAddressLine; + } + foreach($aGroupedAddressLines as $sGroupHeading => $aParentOfLines) + { + $sGroupHeading = ucwords($sGroupHeading); + echo "

$sGroupHeading

"; + foreach($aParentOfLines as $aAddressLine) + { + $aAddressLine['localname'] = $aAddressLine['localname']?$aAddressLine['localname']:$aAddressLine['housenumber']; + $sOSMType = ($aAddressLine['osm_type'] == 'N'?'node':($aAddressLine['osm_type'] == 'W'?'way':($aAddressLine['osm_type'] == 'R'?'relation':''))); + + echo '
'; + echo ''.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'No Name').''; + echo ' ('; +// echo 'Type: '.$aAddressLine['class'].':'.$aAddressLine['type'].''; +// echo ', '.$aAddressLine['admin_level'].''; +// echo ', '.$aAddressLine['rank_address'].''; + echo ''.($aAddressLine['isarea']=='t'?'Polygon':'Point').''; + echo ', ~'.(round($aAddressLine['distance']*69,1)).' miles'; + if ($sOSMType) echo ', '.$sOSMType.' '.$aAddressLine['osm_id'].''; + echo ', GOTO'; + echo ')'; + echo '
'; + } + } + echo ''; + } + +// echo '

Other Parts:

'; +// echo '

Linked To:

'; +?> + + + diff --git a/lib/template/search-html.php b/lib/template/search-html.php new file mode 100644 index 00000000..0952974d --- /dev/null +++ b/lib/template/search-html.php @@ -0,0 +1,465 @@ + + + + OpenStreetMap Nominatim: Search + + + + + + + + + + + + + + + +
+ +
+
+ + + + + + + + + + + +
> HighlightData: +Documentation | FAQ
Thank you for your problem report
+
+
+ + +
+
+Suggest: '.$sSuggestion.'
'; + } + foreach($aSearchResults as $iResNum => $aResult) + { + if ($aResult['aBoundingBox']) + { + echo '
'; + } + elseif (isset($aResult['zoom'])) + { + echo '
'; + } + else + { + echo '
'; + } + + echo ($aResult['icon']?'':''); + echo ' '.$aResult['name'].''; + echo ' '.round($aResult['lat'],3).','.round($aResult['lat'],3).''; + echo ' '.$aResult['place_id'].''; + echo ' ('.ucwords(str_replace('_',' ',$aResult['type'])).')'; + echo ' (details)'; + echo '
'; + } + if (sizeof($aSearchResults)) + { + if ($sMoreURL) + { + echo ''; + } + } + else + { + echo '
No search results found
'; + } + +?> +
Addresses and postcodes are approximate + +
+
+ + +
+ + + + + + diff --git a/lib/template/search-json.php b/lib/template/search-json.php new file mode 100644 index 00000000..8950f14c --- /dev/null +++ b/lib/template/search-json.php @@ -0,0 +1,65 @@ + $aPointDetails) + { + $aPlace = array( + 'place_id'=>$aPointDetails['place_id'], + 'licence'=>"Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.", + ); + + $sOSMType = ($aPointDetails['osm_type'] == 'N'?'node':($aPointDetails['osm_type'] == 'W'?'way':($aPointDetails['osm_type'] == 'R'?'relation':''))); + if ($sOSMType) + { + $aPlace['osm_type'] = $sOSMType; + $aPlace['osm_id'] = $aPointDetails['osm_id']; + } + + if (isset($aPointDetails['aBoundingBox'])) + { + $aPlace['boundingbox'] = array( + $aPointDetails['aBoundingBox'][0], + $aPointDetails['aBoundingBox'][1], + $aPointDetails['aBoundingBox'][2], + $aPointDetails['aBoundingBox'][3]); + + if (isset($aPointDetails['aPolyPoints']) && $bShowPolygons) + { + $aPlace['polygonpoints'] = $aPointDetails['aPolyPoints']; + } + } + + if (isset($aPointDetails['zoom'])) + { + $aPlace['zoom'] = $aPointDetails['zoom']; + } + + $aPlace['lat'] = $aPointDetails['lat']; + $aPlace['lon'] = $aPointDetails['lon']; + $aPlace['display_name'] = $aPointDetails['name']; + + $aPlace['class'] = $aPointDetails['class']; + $aPlace['type'] = $aPointDetails['type']; + if ($aPointDetails['icon']) + { + $aPlace['icon'] = $aPointDetails['icon']; + } + + if (isset($aPointDetails['address'])) + { + $aPlace['address'] = $aPointDetails['address']; + } + + $aFilteredPlaces[] = $aPlace; + } + + if (isset($_GET['json_callback']) && preg_match('/^[-A-Za-z0-9:_.]+$/',$_GET['json_callback'])) + { + echo $_GET['json_callback'].'('.javascript_renderData($aFilteredPlaces).')'; + } + else + { + echo javascript_renderData($aFilteredPlaces); + } diff --git a/lib/template/search-jsonv2.php b/lib/template/search-jsonv2.php new file mode 100644 index 00000000..7dd4b334 --- /dev/null +++ b/lib/template/search-jsonv2.php @@ -0,0 +1,65 @@ + $aPointDetails) + { + $aPlace = array( + 'place_id'=>$aPointDetails['place_id'], + 'licence'=>"Data Copyright OpenStreetMap Contributors, Some Rights Reserved. CC-BY-SA 2.0.", + ); + + $sOSMType = ($aPointDetails['osm_type'] == 'N'?'node':($aPointDetails['osm_type'] == 'W'?'way':($aPointDetails['osm_type'] == 'R'?'relation':''))); + if ($sOSMType) + { + $aPlace['osm_type'] = $sOSMType; + $aPlace['osm_id'] = $aPointDetails['osm_id']; + } + + if (isset($aPointDetails['aBoundingBox'])) + { + $aPlace['boundingbox'] = array( + $aPointDetails['aBoundingBox'][0], + $aPointDetails['aBoundingBox'][1], + $aPointDetails['aBoundingBox'][2], + $aPointDetails['aBoundingBox'][3]); + + if (isset($aPointDetails['aPolyPoints']) && $bShowPolygons) + { + $aPlace['polygonpoints'] = $aPointDetails['aPolyPoints']; + } + } + + if (isset($aPointDetails['zoom'])) + { + $aPlace['zoom'] = $aPointDetails['zoom']; + } + + $aPlace['lat'] = $aPointDetails['lat']; + $aPlace['lon'] = $aPointDetails['lon']; + $aPlace['display_name'] = $aPointDetails['name']; + + $aPlace['category'] = $aPointDetails['class']; + $aPlace['type'] = $aPointDetails['type']; + if ($aPointDetails['icon']) + { + $aPlace['icon'] = $aPointDetails['icon']; + } + + if (isset($aPointDetails['address'])) + { + $aPlace['address'] = $aPointDetails['address']; + } + + $aFilteredPlaces[] = $aPlace; + } + + if (isset($_GET['json_callback']) && preg_match('/^[-A-Za-z0-9:_.]+$/',$_GET['json_callback'])) + { + echo $_GET['json_callback'].'('.javascript_renderData($aFilteredPlaces).')'; + } + else + { + echo javascript_renderData($aFilteredPlaces); + } diff --git a/lib/template/search-xml.php b/lib/template/search-xml.php new file mode 100644 index 00000000..3d011b39 --- /dev/null +++ b/lib/template/search-xml.php @@ -0,0 +1,87 @@ +\n"; + + echo "\n"; + + foreach($aSearchResults as $iResNum => $aResult) + { + echo ""; + foreach($aResult['address'] as $sKey => $sValue) + { + $sKey = str_replace(' ','_',$sKey); + echo "<$sKey>"; + echo htmlspecialchars($sValue); + echo ""; + } + + echo ""; + } + else + { + echo "/>"; + } + } + + echo "";