forked from hans/Nominatim
details page: add a perma-link
This commit is contained in:
@@ -39,3 +39,14 @@ function detailsLink($aFeature, $sTitle = false)
|
||||
|
||||
return '<a href="details.php?place_id='.$aFeature['place_id'].'">'.($sTitle?$sTitle:$aFeature['place_id']).'</a>';
|
||||
}
|
||||
|
||||
function detailsPermaLink($aFeature, $sRefText = false)
|
||||
{
|
||||
$sOSMType = formatOSMType($aFeature['osm_type'], false);
|
||||
|
||||
if ($sOSMType) {
|
||||
$sLabel = $sRefText ? $sRefText : $sOSMType.' '.$aFeature['osm_id'];
|
||||
return '<a href="details.php?osmtype='.$aFeature['osm_type'].'&osmid='.$aFeature['osm_id'].'&class='.$aFeature['class'].'">'.$sLabel.'</a>';
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
@@ -119,7 +119,7 @@
|
||||
}
|
||||
kv('Coverage' , ($aPointDetails['isarea']=='t'?'Polygon':'Point') );
|
||||
kv('Centre Point' , $aPointDetails['lat'].','.$aPointDetails['lon'] );
|
||||
kv('OSM' , osmLink($aPointDetails) );
|
||||
kv('OSM' , osmLink($aPointDetails) . ' ('.detailsPermaLink($aPointDetails, 'this page').')' );
|
||||
if ($aPointDetails['wikipedia'])
|
||||
{
|
||||
kv('Wikipedia Calculated' , wikipediaLink($aPointDetails) );
|
||||
|
||||
@@ -16,15 +16,21 @@ $sLanguagePrefArraySQL = 'ARRAY['.join(',', array_map('getDBQuoted', $aLangPrefO
|
||||
$sPlaceId = $oParams->getString('place_id');
|
||||
$sOsmType = $oParams->getSet('osmtype', array('N', 'W', 'R'));
|
||||
$iOsmId = $oParams->getInt('osmid', -1);
|
||||
$sClass = $oParams->getString('class');
|
||||
|
||||
$oDB =& getDB();
|
||||
|
||||
if ($sOsmType && $iOsmId > 0) {
|
||||
$sSQL = sprintf(
|
||||
"SELECT place_id FROM placex WHERE osm_type='%s' AND osm_id=%d ORDER BY type='postcode' ASC",
|
||||
"SELECT place_id FROM placex WHERE osm_type='%s' AND osm_id=%d",
|
||||
$sOsmType,
|
||||
$iOsmId
|
||||
);
|
||||
// osm_type and osm_id are not unique enough
|
||||
if ($sClass) {
|
||||
$sSQL .= " AND class='".$sClass."'";
|
||||
}
|
||||
$sSQL .= " ORDER BY type='postcode', class ASC";
|
||||
$sPlaceId = chksql($oDB->getOne($sSQL));
|
||||
|
||||
// Be nice about our error messages for broken geometry
|
||||
|
||||
Reference in New Issue
Block a user