{
echo '<img style="float:right;margin-right:40px;" src="'.CONST_Website_BaseURL.'images/mapicons/'.$aPointDetails['icon'].'.n.32.png'.'" alt="'.$aPointDetails['icon'].'" />';
}
- echo $aPointDetails['localname'].'</h1>';
+ echo $aPointDetails['localname']."</h1>\n";
echo '<div class="locationdetails">';
echo ' <div>Name: ';
foreach($aPointDetails['aNames'] as $sKey => $sValue)
echo ' <div class="line"><span class="name">'.$sValue.'</span> ('.$sKey.')</div>';
}
echo ' </div>';
- echo '</div>';
+ echo "</div>\n";
- echo '<h2>Address</h2>';
+ echo "<h2>Address</h2>\n";
echo '<div class="address">';
$iPrevRank = 1000000;
$sPrevLocalName = '';
echo ', <span class="distance">'.$aAddressLine['distance'].'</span>';
echo ' <a href="details.php?place_id='.$aAddressLine['place_id'].'">GOTO</a>';
echo ')';
- echo '</div>';
+ echo "</div>\n";
}
- echo '</div>';
+ echo "</div>\n";
if ($aLinkedLines)
{
- echo '<h2>Linked Places</h2>';
- echo '<div class=\"linked\">';
+ echo "<h2>Linked Places</h2>\n";
+ echo '<div class="linked">';
foreach($aLinkedLines as $aAddressLine)
{
$sOSMType = ($aAddressLine['osm_type'] == 'N'?'node':($aAddressLine['osm_type'] == 'W'?'way':($aAddressLine['osm_type'] == 'R'?'relation':'')));
echo '<span class="name">'.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'<span class="noname">No Name</span>').'</span>';
echo ' (';
echo '<span class="type"><span class="label">Type: </span>'.$aAddressLine['class'].':'.$aAddressLine['type'].'</span>';
- if ($sOSMType) echo ', <span class="osm"><span class="label"></span>'.$sOSMType.' <a href="http://www.openstreetmap.org/browse/'.$sOSMType.'/'.$aAddressLine['osm_id'].'">'.$aAddressLine['osm_id'].'</a></span>';
+ if ($sOSMType) echo ', <span class="osm">'.$sOSMType.' <a href="http://www.openstreetmap.org/browse/'.$sOSMType.'/'.$aAddressLine['osm_id'].'">'.$aAddressLine['osm_id'].'</a></span>';
echo ', <span class="adminlevel">'.$aAddressLine['admin_level'].'</span>';
- echo ', <span class="rankaddress">'.$aAddressLine['rank_search_label'].'</span>';
+ if (isset($aAddressLine['rank_search_label'])) echo ', <span class="rankaddress">'.$aAddressLine['rank_search_label'].'</span>';
// echo ', <span class="area">'.($aAddressLine['fromarea']=='t'?'Polygon':'Point').'</span>';
echo ', <span class="distance">'.$aAddressLine['distance'].'</span>';
echo ' <a href="details.php?place_id='.$aAddressLine['place_id'].'">GOTO</a>';
echo ')';
- echo '</div>';
+ echo "</div>\n";
}
- echo '</div>';
+ echo "</div>\n";
}
if ($aPlaceSearchNameKeywords)
echo '<h2>Name Keywords</h2>';
foreach($aPlaceSearchNameKeywords as $aRow)
{
- echo '<div>'.$aRow['word_token'].'</div>';
+ echo '<div>'.$aRow['word_token']."</div>\n";
}
}
echo '<h2>Address Keywords</h2>';
foreach($aPlaceSearchAddressKeywords as $aRow)
{
- echo '<div>'.($aRow['word_token'][0]==' '?'*':'').$aRow['word_token'].'('.$aRow['word_id'].')'.'</div>';
+ echo '<div>'.($aRow['word_token'][0]==' '?'*':'').$aRow['word_token'].'('.$aRow['word_id'].')'."</div>\n";
}
}
if (sizeof($aParentOfLines))
{
- echo '<h2>Parent Of:</h2>';
+ echo "<h2>Parent Of:</h2>\n<div>\n";
$aGroupedAddressLines = array();
foreach($aParentOfLines as $aAddressLine)
foreach($aGroupedAddressLines as $sGroupHeading => $aParentOfLines)
{
$sGroupHeading = ucwords($sGroupHeading);
- echo "<h3>$sGroupHeading</h3>";
+ echo "<h3>$sGroupHeading</h3>\n";
foreach($aParentOfLines as $aAddressLine)
{
$aAddressLine['localname'] = $aAddressLine['localname']?$aAddressLine['localname']:$aAddressLine['housenumber'];
echo '<div class="line">';
echo '<span class="name">'.(trim($aAddressLine['localname'])?$aAddressLine['localname']:'<span class="noname">No Name</span>').'</span>';
echo ' (';
-// echo '<span class="type"><span class="label">Type: </span>'.$aAddressLine['class'].':'.$aAddressLine['type'].'</span>';
-// echo ', <span class="adminlevel">'.$aAddressLine['admin_level'].'</span>';
-// echo ', <span class="rankaddress">'.$aAddressLine['rank_address'].'</span>';
echo '<span class="area">'.($aAddressLine['isarea']=='t'?'Polygon':'Point').'</span>';
echo ', <span class="distance">~'.(round($aAddressLine['distance']*69,1)).' miles</span>';
- if ($sOSMType) echo ', <span class="osm"><span class="label"></span>'.$sOSMType.' <a href="http://www.openstreetmap.org/browse/'.$sOSMType.'/'.$aAddressLine['osm_id'].'">'.$aAddressLine['osm_id'].'</a></span>';
+ if ($sOSMType) echo ', <span class="osm">'.$sOSMType.' <a href="http://www.openstreetmap.org/browse/'.$sOSMType.'/'.$aAddressLine['osm_id'].'">'.$aAddressLine['osm_id'].'</a></span>';
echo ', <a href="details.php?place_id='.$aAddressLine['place_id'].'">GOTO</a>';
echo ')';
- echo '</div>';
+ echo "</div>\n";
}
}
if (sizeof($aParentOfLines) >= 500) {
END IF;
-- merge in extra tags
- IF NOT linkedPlacex.extratags IS NULL THEN
- NEW.extratags := linkedPlacex.extratags || NEW.extratags;
- END IF;
-
- IF NOT NEW.extratags ? linkedPlacex.class THEN
- NEW.extratags := NEW.extratags || hstore(linkedPlacex.class, linkedPlacex.type);
- END IF;
+ NEW.extratags := hstore(linkedPlacex.class, linkedPlacex.type) || coalesce(linkedPlacex.extratags, ''::hstore) || coalesce(NEW.extratags, ''::hstore);
-- mark the linked place (excludes from search results)
UPDATE placex set linked_place_id = NEW.place_id where place_id = linkedPlacex.place_id;
+ -- keep a note of the node id in case we need it for wikipedia in a bit
+ linked_node_id := linkedPlacex.osm_id;
END LOOP;
END LOOP;
END IF;
-- merge in extra tags
- IF NOT linkedPlacex.extratags IS NULL THEN
- NEW.extratags := linkedPlacex.extratags || NEW.extratags;
- END IF;
-
- IF NOT NEW.extratags ? linkedPlacex.class THEN
- NEW.extratags := NEW.extratags || hstore(linkedPlacex.class, linkedPlacex.type);
- END IF;
+ NEW.extratags := hstore(linkedPlacex.class, linkedPlacex.type) || coalesce(linkedPlacex.extratags, ''::hstore) || coalesce(NEW.extratags, ''::hstore);
-- mark the linked place (excludes from search results)
UPDATE placex set linked_place_id = NEW.place_id where place_id = linkedPlacex.place_id;
name_vector := make_keywords(NEW.name);
-- merge in extra tags
- NEW.extratags := linkedPlacex.extratags || NEW.extratags;
-
- IF NOT NEW.extratags ? linkedPlacex.class THEN
- NEW.extratags := NEW.extratags || hstore(linkedPlacex.class, linkedPlacex.type);
- END IF;
+ NEW.extratags := hstore(linkedPlacex.class, linkedPlacex.type) || coalesce(linkedPlacex.extratags, ''::hstore) || coalesce(NEW.extratags, ''::hstore);
-- mark the linked place (excludes from search results)
UPDATE placex set linked_place_id = NEW.place_id where place_id = linkedPlacex.place_id;
diameter FLOAT;
rank INTEGER;
BEGIN
+ UPDATE placex SET indexed_status = 2 WHERE place_id = placeid;
SELECT geometry, rank_search FROM placex WHERE place_id = placeid INTO placegeom, rank;
IF placegeom IS NOT NULL AND ST_IsValid(placegeom) THEN
IF ST_GeometryType(placegeom) in ('ST_Polygon','ST_MultiPolygon') THEN
{
pgsqlRunScript('update country_name set partition = 0');
}
+
+ // the following will be needed by create_functions later but
+ // is only defined in the subsequently called create_tables.
+ // Create dummies here that will be overwritten by the proper
+ // versions in create-tables.
+ pgsqlRunScript('CREATE TABLE place_boundingbox ()');
+ pgsqlRunScript('create type wikipedia_article_match as ()');
}
if ($aCMDResult['import-data'] || $aCMDResult['all'])
}
fclose($ahPipes[1]);
- proc_close($hProcess);
+ $iReturn = proc_close($hProcess);
+ if ($iReturn > 0)
+ {
+ fail("pgsql returned with error code ($iReturn)");
+ }
if ($ahGzipPipes)
{
fclose($ahGzipPipes[1]);
$aDSNInfo = DB::parseDSN(CONST_Database_DSN);
if (!isset($aDSNInfo['port']) || !$aDSNInfo['port']) $aDSNInfo['port'] = 5432;
$sCMD = 'psql -p '.$aDSNInfo['port'].' -d '.$aDSNInfo['database'];
+ $sCMD .= ' -v ON_ERROR_STOP=1';
$aDescriptors = array(
0 => array('pipe', 'r'),
1 => STDOUT,
$sScript = substr($sScript, $written);
}
fclose($ahPipes[0]);
- proc_close($hProcess);
+ $iReturn = proc_close($hProcess);
+ if ($iReturn > 0)
+ {
+ fail("pgsql returned with error code ($iReturn)");
+ }
}
function pgsqlRunRestoreData($sDumpFile)
}
fclose($ahPipes[1]);
- proc_close($hProcess);
+ $iReturn = proc_close($hProcess);
+ if ($iReturn > 0)
+ {
+ fail("pgsql returned with error code ($iReturn)");
+ }
}
function pgsqlRunDropAndRestore($sDumpFile)
}
fclose($ahPipes[1]);
- proc_close($hProcess);
+ $iReturn = proc_close($hProcess);
+ if ($iReturn > 0)
+ {
+ fail("pgsql returned with error code ($iReturn)");
+ }
}
function passthruCheckReturn($cmd)