mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-10-27 11:42:46 +03:00
Merge pull request #1729 from lonvia/fix-details-link-for-boundaries
Fix details link for boundaries
This commit is contained in:
commit
ed16d5b6aa
@ -6,6 +6,13 @@ function getInfo($aPlace)
|
||||
{
|
||||
$aClassType = getList();
|
||||
|
||||
if ($aPlace['type'] == 'administrative' && isset($aPlace['place_type'])) {
|
||||
$sName = 'place:'.$aPlace['place_type'];
|
||||
if (isset($aClassType[$sName])) {
|
||||
return $aClassType[$sName];
|
||||
}
|
||||
}
|
||||
|
||||
if (isset($aPlace['admin_level'])) {
|
||||
$sName = $aPlace['class'].':'.$aPlace['type'].':'.$aPlace['admin_level'];
|
||||
if (isset($aClassType[$sName])) {
|
||||
|
@ -70,7 +70,13 @@
|
||||
|
||||
echo '<tr class="' . ($bNotUsed?'notused':'') . '">'."\n";
|
||||
echo ' <td class="name">'.(trim($aAddressLine['localname'])!==null?$aAddressLine['localname']:'<span class="noname">No Name</span>')."</td>\n";
|
||||
echo ' <td>' . $aAddressLine['class'].':'.$aAddressLine['type'] . "</td>\n";
|
||||
echo ' <td>' . $aAddressLine['class'].':'.$aAddressLine['type'];
|
||||
if ($aAddressLine['type'] == 'administrative'
|
||||
&& isset($aAddressLine['place_type']))
|
||||
{
|
||||
echo '('.$aAddressLine['place_type'].')';
|
||||
}
|
||||
echo "</td>\n";
|
||||
echo ' <td>' . osmLink($aAddressLine) . "</td>\n";
|
||||
echo ' <td>' . (isset($aAddressLine['rank_address']) ? $aAddressLine['rank_address'] : '') . "</td>\n";
|
||||
echo ' <td>' . ($aAddressLine['admin_level'] < 15 ? $aAddressLine['admin_level'] : '') . "</td>\n";
|
||||
|
@ -47,6 +47,7 @@ $funcMapAddressLine = function ($aFull) {
|
||||
'place_id' => isset($aFull['place_id']) ? (int) $aFull['place_id'] : null,
|
||||
'osm_id' => isset($aFull['osm_id']) ? (int) $aFull['osm_id'] : null,
|
||||
'osm_type' => isset($aFull['osm_type']) ? $aFull['osm_type'] : null,
|
||||
'place_type' => isset($aFull['place_type']) ? $aFull['place_type'] : null,
|
||||
'class' => $aFull['class'],
|
||||
'type' => $aFull['type'],
|
||||
'admin_level' => isset($aFull['admin_level']) ? (int) $aFull['admin_level'] : null,
|
||||
|
@ -8,6 +8,7 @@ CREATE TYPE addressline as (
|
||||
name HSTORE,
|
||||
class TEXT,
|
||||
type TEXT,
|
||||
place_type TEXT,
|
||||
admin_level INTEGER,
|
||||
fromarea BOOLEAN,
|
||||
isaddress BOOLEAN,
|
||||
@ -193,7 +194,7 @@ BEGIN
|
||||
searchcountrycode := NULL;
|
||||
END IF;
|
||||
countrylocation := ROW(location.place_id, location.osm_type, location.osm_id,
|
||||
location.name, location.class, location.type,
|
||||
location.name, location.class, location.type, NULL,
|
||||
location.admin_level, true, location.isaddress,
|
||||
location.rank_address, location.distance)::addressline;
|
||||
RETURN NEXT countrylocation;
|
||||
@ -201,10 +202,8 @@ BEGIN
|
||||
END LOOP;
|
||||
|
||||
FOR location IN
|
||||
SELECT placex.place_id, osm_type, osm_id, name,
|
||||
CASE WHEN extratags ? 'place' or extratags ? 'linked_place'
|
||||
THEN 'place' ELSE class END as class,
|
||||
coalesce(extratags->'place', extratags->'linked_place', type) as type,
|
||||
SELECT placex.place_id, osm_type, osm_id, name, class, type,
|
||||
coalesce(extratags->'place', extratags->'linked_place') as place_type,
|
||||
admin_level, fromarea, isaddress,
|
||||
CASE WHEN rank_address = 11 THEN 5 ELSE rank_address END as rank_address,
|
||||
distance, country_code, postcode
|
||||
@ -229,6 +228,7 @@ BEGIN
|
||||
END IF;
|
||||
countrylocation := ROW(location.place_id, location.osm_type, location.osm_id,
|
||||
location.name, location.class, location.type,
|
||||
location.place_type,
|
||||
location.admin_level, location.fromarea,
|
||||
location.isaddress, location.rank_address,
|
||||
location.distance)::addressline;
|
||||
@ -242,7 +242,7 @@ BEGIN
|
||||
WHERE country_code = searchcountrycode LIMIT 1 INTO countryname;
|
||||
--RAISE WARNING '% % %',found,searchcountrycode,countryname;
|
||||
IF countryname IS NOT NULL THEN
|
||||
location := ROW(null, null, null, countryname, 'place', 'country',
|
||||
location := ROW(null, null, null, countryname, 'place', 'country', NULL,
|
||||
null, true, true, 4, 0)::addressline;
|
||||
RETURN NEXT location;
|
||||
END IF;
|
||||
@ -251,25 +251,25 @@ BEGIN
|
||||
-- Finally add some artificial rows.
|
||||
IF searchcountrycode IS NOT NULL THEN
|
||||
location := ROW(null, null, null, hstore('ref', searchcountrycode),
|
||||
'place', 'country_code', null, true, false, 4, 0)::addressline;
|
||||
'place', 'country_code', null, null, true, false, 4, 0)::addressline;
|
||||
RETURN NEXT location;
|
||||
END IF;
|
||||
|
||||
IF searchhousename IS NOT NULL THEN
|
||||
location := ROW(in_place_id, null, null, searchhousename, searchclass,
|
||||
searchtype, null, true, true, 29, 0)::addressline;
|
||||
searchtype, null, null, true, true, 29, 0)::addressline;
|
||||
RETURN NEXT location;
|
||||
END IF;
|
||||
|
||||
IF searchhousenumber IS NOT NULL THEN
|
||||
location := ROW(in_place_id, null, null, hstore('ref', searchhousenumber),
|
||||
'place', 'house_number', null, true, true, 28, 0)::addressline;
|
||||
'place', 'house_number', null, null, true, true, 28, 0)::addressline;
|
||||
RETURN NEXT location;
|
||||
END IF;
|
||||
|
||||
IF searchpostcode IS NOT NULL THEN
|
||||
location := ROW(null, null, null, hstore('ref', searchpostcode), 'place',
|
||||
'postcode', null, false, postcode_isaddress, 5, 0)::addressline;
|
||||
'postcode', null, null, false, postcode_isaddress, 5, 0)::addressline;
|
||||
RETURN NEXT location;
|
||||
END IF;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user