]> git.openstreetmap.org Git - nominatim.git/blobdiff - lib/output.php
Merge remote-tracking branch 'upstream/master'
[nominatim.git] / lib / output.php
index 722d73b18aa79e80b4509fc6a4c165b6f60bca48..823a6631e08cfeab2b134d803784cf77beb985d8 100644 (file)
@@ -1,43 +1,73 @@
 <?php
 
 <?php
 
-       function formatOSMType($sType, $bIncludeExternal=true)
-       {
-               if ($sType == 'N') return 'node';
-               if ($sType == 'W') return 'way';
-               if ($sType == 'R') return 'relation';
-
-               if (!$bIncludeExternal) return '';
-
-               if ($sType == 'T') return 'tiger';
-               if ($sType == 'I') return 'way';
-
-               return '';
-       }
-
-       function osmLink($aFeature, $sRefText=false)
-       {
-               $sOSMType = formatOSMType($aFeature['osm_type'], false);
-               if ($sOSMType)
-               {
-                       return '<a href="//www.openstreetmap.org/'.$sOSMType.'/'.$aFeature['osm_id'].'">'.$sOSMType.' '.($sRefText?$sRefText:$aFeature['osm_id']).'</a>';
-               }
-               return '';
-       }
-
-       function wikipediaLink($aFeature)
-       {
-               if ($aFeature['wikipedia'])
-               {
-                       list($sLanguage, $sArticle) = explode(':',$aFeature['wikipedia']);
-                       return '<a href="https://'.$sLanguage.'.wikipedia.org/wiki/'.urlencode($sArticle).'" target="_blank">'.$aFeature['wikipedia'].'</a>';
-               }
-               return '';
-       }
-
-       function detailsLink($aFeature, $sTitle=false)
-       {
-               if (!$aFeature['place_id']) return '';
-
-               return '<a href="details.php?place_id='.$aFeature['place_id'].'">'.($sTitle?$sTitle:$aFeature['place_id']).'</a>';
-       }
 
 
+function formatOSMType($sType, $bIncludeExternal = true)
+{
+    if ($sType == 'N') return 'node';
+    if ($sType == 'W') return 'way';
+    if ($sType == 'R') return 'relation';
+
+    if (!$bIncludeExternal) return '';
+
+    if ($sType == 'T') return 'way';
+    if ($sType == 'I') return 'way';
+
+    // not handled: P, L
+
+    return '';
+}
+
+function osmLink($aFeature, $sRefText = false)
+{
+    $sOSMType = formatOSMType($aFeature['osm_type'], false);
+    if ($sOSMType) {
+        return '<a href="//www.openstreetmap.org/'.$sOSMType.'/'.$aFeature['osm_id'].'">'.$sOSMType.' '.($sRefText?$sRefText:$aFeature['osm_id']).'</a>';
+    }
+    return '';
+}
+
+function wikipediaLink($aFeature)
+{
+    if ($aFeature['wikipedia']) {
+        list($sLanguage, $sArticle) = explode(':', $aFeature['wikipedia']);
+        return '<a href="https://'.$sLanguage.'.wikipedia.org/wiki/'.urlencode($sArticle).'" target="_blank">'.$aFeature['wikipedia'].'</a>';
+    }
+    return '';
+}
+
+function detailsLink($aFeature, $sTitle = false, $sExtraProperties = false)
+{
+    if (!$aFeature['place_id']) return '';
+
+    $sHtml = '<a ';
+    if ($sExtraProperties) {
+        $sHtml .= $sExtraProperties.' ';
+    }
+
+    $sHtml .= 'href="details.php?place_id='.$aFeature['place_id'].'">'.($sTitle?$sTitle:$aFeature['place_id']).'</a>';
+
+    return $sHtml;
+}
+
+function detailsPermaLink($aFeature, $sRefText = false, $sExtraProperties = false)
+{
+    $sOSMType = formatOSMType($aFeature['osm_type'], false);
+
+    if ($sOSMType) {
+        $sHtml = '<a ';
+        if ($sExtraProperties) {
+            $sHtml .= $sExtraProperties.' ';
+        }
+        $sHtml .= 'href="details.php?osmtype='.$aFeature['osm_type']
+                  .'&osmid='.$aFeature['osm_id'].'&class='.$aFeature['class'].'">';
+
+        if ($sRefText) {
+            $sHtml .= $sRefText.'</a>';
+        } else {
+            $sHtml .= $sOSMType.' '.$aFeature['osm_id'].'</a>';
+        }
+
+        return $sHtml;
+    }
+    return detailsLink($aFeature, $sRefText, $sExtraProperties);
+}