${PROJECT_BINARY_DIR}/nominatim)
endif()
+#-----------------------------------------------------------------------------
+# Targets for running a development webserver from the build directory.
+#-----------------------------------------------------------------------------
+
+if (BUILD_API)
+ set(WEBSITEFILES
+ 403.html
+ 509.html
+ crossdomain.xml
+ favicon.ico
+ nominatim.xml
+ robots.txt
+ taginfo.json
+ )
+
+ foreach (webfile ${WEBSITEFILES})
+ configure_file(${PROJECT_SOURCE_DIR}/website/${webfile}
+ ${PROJECT_BINARY_DIR}/website/${webfile})
+ endforeach()
+endif()
+
#-----------------------------------------------------------------------------
# Tests
#-----------------------------------------------------------------------------
if (PYLINT)
message(STATUS "Using pylint binary ${PYLINT}")
add_test(NAME pylint
- COMMAND ${PYLINT} --extension-pkg-whitelist=osmium nominatim
+ COMMAND ${PYLINT} nominatim
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR})
else()
message(WARNING "pylint not found. Python linting tests disabled.")
setupHTTPProxy();
if (!isset($aResult['index-instances'])) $aResult['index-instances'] = 1;
+
if (!isset($aResult['index-rank'])) $aResult['index-rank'] = 0;
date_default_timezone_set('Etc/UTC');
}
$oNominatimCmd = new \Nominatim\Shell(getSetting('NOMINATIM_TOOL'));
- if ($aResult['quiet']) {
- $oNominatimCmd->addParams('--quiet');
- }
- if ($aResult['verbose']) {
- $oNominatimCmd->addParams('--verbose');
+
+ function run($oCmd)
+ {
+ global $aCMDResult;
+ if ($aCMDResult['quiet'] ?? false) {
+ $oCmd->addParams('--quiet');
+ }
+ if ($aCMDResult['verbose'] ?? false) {
+ $oCmd->addParams('--verbose');
+ }
+ $oCmd->run(true);
}
$oCmd->addParams('--no-update-functions');
}
- $oCmd->run();
+ run($oCmd);
}
if ($aResult['check-for-updates']) {
}
if ($aResult['calculate-postcodes']) {
- (clone($oNominatimCmd))->addParams('refresh', '--postcodes')->run();
+ run((clone($oNominatimCmd))->addParams('refresh', '--postcodes'));
}
$sTemporaryFile = CONST_InstallDir.'/osmosischange.osc';
}
if ($aResult['recompute-word-counts']) {
- (clone($oNominatimCmd))->addParams('refresh', '--word-counts')->run();
+ run((clone($oNominatimCmd))->addParams('refresh', '--word-counts'));
}
if ($aResult['index']) {
- (clone $oNominatimCmd)
+ run((clone $oNominatimCmd)
->addParams('index', '--minrank', $aResult['index-rank'])
- ->addParams('--threads', $aResult['index-instances'])
- ->run();
+ ->addParams('--threads', $aResult['index-instances']));
}
if ($aResult['update-address-levels']) {
- (clone($oNominatimCmd))->addParams('refresh', '--address-levels')->run();
+ run((clone($oNominatimCmd))->addParams('refresh', '--address-levels'));
}
if ($aResult['recompute-importance']) {
- echo "Updating importance values for database.\n";
- $oDB = new Nominatim\DB();
- $oDB->connect();
-
- $sSQL = 'ALTER TABLE placex DISABLE TRIGGER ALL;';
- $sSQL .= 'UPDATE placex SET (wikipedia, importance) =';
- $sSQL .= ' (SELECT wikipedia, importance';
- $sSQL .= ' FROM compute_importance(extratags, country_code, osm_type, osm_id));';
- $sSQL .= 'UPDATE placex s SET wikipedia = d.wikipedia, importance = d.importance';
- $sSQL .= ' FROM placex d';
- $sSQL .= ' WHERE s.place_id = d.linked_place_id and d.wikipedia is not null';
- $sSQL .= ' and (s.wikipedia is null or s.importance < d.importance);';
- $sSQL .= 'ALTER TABLE placex ENABLE TRIGGER ALL;';
- $oDB->exec($sSQL);
+ run((clone($oNominatimCmd))->addParams('refresh', '--importance'));
}
if ($aResult['import-osmosis'] || $aResult['import-osmosis-all']) {
$oCmd->addParams('--no-index');
}
- exit($oCmd->run());
+ run($oCmd);
}
END IF;
--then query tiger data
- -- %NOTIGERDATA% IF 0 THEN
+ {% if config.get_bool('USE_US_TIGER_DATA') %}
IF place IS NULL AND in_housenumber >= 0 THEN
SELECT parent_place_id as place_id, 'us' as country_code,
in_housenumber as housenumber, postcode,
WHERE place_id = in_place_id
AND in_housenumber between startnumber and endnumber;
END IF;
- -- %NOTIGERDATA% END IF;
+ {% endif %}
- -- %NOAUXDATA% IF 0 THEN
+ -- then additional data
+ {% if config.get_bool('USE_AUX_LOCATION_DATA') %}
IF place IS NULL THEN
SELECT parent_place_id as place_id, 'us' as country_code,
housenumber, postcode,
FROM location_property_aux
WHERE place_id = in_place_id;
END IF;
- -- %NOAUXDATA% END IF;
+ {% endif %}
-- postcode table
IF place IS NULL THEN
FOR location IN
SELECT placex.place_id, osm_type, osm_id, name, class, type,
coalesce(extratags->'linked_place', extratags->'place') as place_type,
- admin_level, fromarea, isaddress,
+ admin_level, fromarea, isaddress and linked_place_id is NULL as isaddress,
CASE WHEN rank_address = 11 THEN 5 ELSE rank_address END as rank_address,
distance, country_code, postcode
FROM place_addressline join placex on (address_place_id = placex.place_id)