diff --git a/lib/template/details-html.php b/lib/template/details-html.php
index 00d6ba63..89c1c543 100644
--- a/lib/template/details-html.php
+++ b/lib/template/details-html.php
@@ -184,17 +184,14 @@
- if ($aPlaceSearchNameKeywords)
+ if ($bIncludeKeywords)
{
headline('Name Keywords');
foreach($aPlaceSearchNameKeywords as $aRow)
{
_one_keyword_row($aRow['word_token'], $aRow['word_id']);
}
- }
- if ($aPlaceSearchAddressKeywords)
- {
headline('Address Keywords');
foreach($aPlaceSearchAddressKeywords as $aRow)
{
diff --git a/lib/template/details-json.php b/lib/template/details-json.php
index 2464bc34..44b6bff5 100644
--- a/lib/template/details-json.php
+++ b/lib/template/details-json.php
@@ -1,28 +1,88 @@
$aFull['localname'],
+ 'place_id' => (int) $aFull['place_id'],
+ 'osm_id' => (int) $aFull['osm_id'],
+ 'osm_type' => formatOSMType($aFull['osm_type']),
+ 'class' => $aFull['class'],
+ 'type' => $aFull['type'],
+ 'admin_level' => (int) $aFull['admin_level'],
+ 'rank_address' => (int) $aFull['rank_address'],
+ 'distance' => (float) $aFull['distance']
+ ];
+ return $aMapped;
+};
+
+$funcMapKeywords = function($aFull) {
+ $aMapped = [
+ 'id' => (int) $aFull['word_id'],
+ 'token' => $aFull['word_token']
+ ];
+ return $aMapped;
+};
if ($aAddressLines) {
- $aPlaceDetails['address_lines'] = $aAddressLines;
+ $aPlaceDetails['address'] = array_map($funcLines, $aAddressLines);
}
if ($aLinkedLines) {
- $aPlaceDetails['linked_lines'] = $aLinkedLines;
+ $aPlaceDetails['linked_places'] = array_map($funcLines, $aLinkedLines);
}
-if ($aPlaceSearchNameKeywords) {
- $aPlaceDetails['place_search_name_keywords'] = $aPlaceSearchNameKeywords;
+if ($bIncludeKeywords) {
+ $aPlaceDetails['keywords'] = array();
+
+ if ($aPlaceSearchNameKeywords) {
+ $aPlaceDetails['keywords']['name'] = array_map($funcKeywords, $aPlaceSearchNameKeywords);
+ }
+
+ if ($aPlaceSearchAddressKeywords) {
+ $aPlaceDetails['keywords']['address'] = array_map($funcKeywords, $aPlaceSearchAddressKeywords);
+ }
}
-if ($aPlaceSearchAddressKeywords) {
- $aPlaceDetails['place_search_address_keywords'] = $aPlaceSearchAddressKeywords;
-}
-
-if ($aParentOfLines) {
- $aPlaceDetails['parentof_lines'] = $aParentOfLines;
+if ($bIncludeChildPlaces) {
+ $aPlaceDetails['parentof'] = array_map($funcLines, $aParentOfLines);
if ($bGroupParents) {
$aGroupedAddressLines = [];
@@ -34,7 +94,7 @@ if ($aParentOfLines) {
$aGroupedAddressLines[$sType] = [];
$aGroupedAddressLines[$sType][] = $aAddressLine;
}
- $aPlaceDetails['parentof_lines'] = $aGroupedAddressLines;
+ $aPlaceDetails['parentof'] = $aGroupedAddressLines;
}
}
diff --git a/website/details.php b/website/details.php
index 6c7fa8d3..7f26c6ee 100755
--- a/website/details.php
+++ b/website/details.php
@@ -19,6 +19,7 @@ $sOsmType = $oParams->getSet('osmtype', array('N', 'W', 'R'));
$iOsmId = $oParams->getInt('osmid', -1);
$sClass = $oParams->getString('class');
+$bIncludeKeywords = $oParams->getBool('keywords');
$bIncludeAddressDetails = $oParams->getBool('addressdetails', $sOutputFormat == 'html');
$bIncludeLinkedPlaces = $oParams->getBool('linkedplaces', $sOutputFormat == 'html');
$bIncludeChildPlaces = $oParams->getBool('childplaces', $sOutputFormat == 'html');
@@ -239,7 +240,7 @@ if ($bIncludeChildPlaces) {
$aPlaceSearchNameKeywords = false;
$aPlaceSearchAddressKeywords = false;
-if ($oParams->getBool('keywords')) {
+if ($bIncludeKeywords) {
$sSQL = "SELECT * FROM search_name WHERE place_id = $iPlaceID";
$aPlaceSearchName = $oDB->getRow($sSQL); // can be null
if (!$aPlaceSearchName || PEAR::isError($aPlaceSearchName)) { // possible timeout