Merge pull request #1729 from lonvia/fix-details-link-for-boundaries

Fix details link for boundaries
This commit is contained in:
Sarah Hoffmann 2020-03-29 23:12:16 +02:00 committed by GitHub
commit ed16d5b6aa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 11 deletions

View File

@ -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])) {

View File

@ -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";

View File

@ -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,

View File

@ -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;