#
#-----------------------------------------------------------------------------
-set(CUSTOMFILES
- settings/phrase_settings.php
+set(WEBSITESCRIPTS
website/deletable.php
website/details.php
website/hierarchy.php
website/reverse.php
website/search.php
website/status.php
- utils/blocks.php
+)
+
+set(CUSTOMSCRIPTS
utils/country_languages.php
utils/importWikipedia.php
utils/export.php
utils/query.php
- utils/server_compare.php
utils/setup.php
utils/specialphrases.php
utils/update.php
utils/warm.php
)
-foreach (cfile ${CUSTOMFILES})
- configure_file(${PROJECT_SOURCE_DIR}/${cfile} ${PROJECT_BINARY_DIR}/${cfile})
+foreach (script_source ${CUSTOMSCRIPTS})
+ configure_file(${PROJECT_SOURCE_DIR}/cmake/script.tmpl
+ ${PROJECT_BINARY_DIR}/${script_source})
+endforeach()
+
+foreach (script_source ${WEBSITESCRIPTS})
+ configure_file(${PROJECT_SOURCE_DIR}/cmake/website.tmpl
+ ${PROJECT_BINARY_DIR}/${script_source})
endforeach()
-configure_file(${PROJECT_SOURCE_DIR}/settings/defaults.php ${PROJECT_BINARY_DIR}/settings/settings.php)
+configure_file(${PROJECT_SOURCE_DIR}/settings/defaults.php
+ ${PROJECT_BINARY_DIR}/settings/settings.php)
set(WEBPATHS css images js)
--- /dev/null
+#!@PHP_BIN@ -Cq
+<?php
+require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
+require_once(CONST_BasePath.'/@script_source@');
--- /dev/null
+<?php
+require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
+require_once(CONST_BasePath.'/@script_source@');
The possible fields are:
- * `place_id` - reference to the Nominatim internal database ID
+ * `place_id` - reference to the Nominatim internal database ID (see notes below)
* `osm_type`, `osm_id` - reference to the OSM object
* `boundingbox` - area of corner coordinates
* `lat`, `lon` - latitude and longitude of the centroid of the object
The feature list has the following fields:
- * `place_id` - reference to the Nominatim internal database ID
+ * `place_id` - reference to the Nominatim internal database ID (see notes below)
* `osm_type`, `osm_id` - reference to the OSM object
* `category`, `type` - key and value of the main OSM tag
* `display_name` - full comma-separated address
The place information can be found in the `result` element. The attributes of that element contain:
- * `place_id` - reference to the Nominatim internal database ID
+ * `place_id` - reference to the Nominatim internal database ID (see notes below)
* `osm_type`, `osm_id` - reference to the OSM object
* `ref` - content of `ref` tag if it exists
* `lat`, `lon` - latitude and longitude of the centroid of the object
The place information can be found in the `place` elements, of which there may
be more than one. The attributes of that element contain:
- * `place_id` - reference to the Nominatim internal database ID
+ * `place_id` - reference to the Nominatim internal database ID (see notes below)
* `osm_type`, `osm_id` - reference to the OSM object
* `ref` - content of `ref` tag if it exists
* `lat`, `lon` - latitude and longitude of the centroid of the object
Additional information requested with `extratags=1` and `namedetails=1` can
be found in extra elements as sub-element of each place.
+
+## Notes on field values
+
+### place_id is not a persistent id
+
+The `place_id` is created when a Nominatim database gets installed. A
+single place will have a different value on another server or even when
+the same data gets re-imported. It's thus not useful to treat it as
+permanent for later use.
+
+The combination `osm_type`+`osm_id` is slighly better but remember in
+OpenStreetMap mappers can delete, split, recreate places (and those
+get a new `osm_id`), there is no link between those old and new id.
+Places can also change their meaning without changing their `osm_id`,
+e.g. when a restaurant is retagged as supermarket. For a more in-depth
+discussion see [Permanent ID](https://wiki.openstreetmap.org/wiki/Permanent_ID).
+
+Nominatim merges some places (e.g. center node of a city with the boundary
+relation) so `osm_type`+`osm_id`+`class_name` would be more unique.
+
+### boundingbox
+
+Comma separated list of min latitude, max latitude, min longitude, max longitude.
+The whole planet would be `-90,90,-180,180`.
@define('CONST_Pyosmium_Binary', '@PYOSMIUM_PATH@');
@define('CONST_Tiger_Data_Path', CONST_ExtraDataPath.'/tiger');
@define('CONST_Wikipedia_Data_Path', CONST_ExtraDataPath);
+@define('CONST_Phrase_Config', CONST_BasePath.'/settings/phrase_settings.php');
@define('CONST_Address_Level_Config', CONST_BasePath.'/settings/address-levels.json');
// osm2pgsql settings
+++ /dev/null
-<?php
-
-echo "ERROR: Scripts must be run from build directory.\n";
-exit(1);
+++ /dev/null
-#!@PHP_BIN@ -Cq
-<?php
-
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
-require_once(CONST_BasePath.'/lib/init-cmd.php');
-ini_set('memory_limit', '800M');
-
-$aCMDOptions
- = array(
- 'Manage service blocks / restrictions',
- array('help', 'h', 0, 1, 0, 0, false, 'Show Help'),
- array('quiet', 'q', 0, 1, 0, 0, 'bool', 'Quiet output'),
- array('verbose', 'v', 0, 1, 0, 0, 'bool', 'Verbose output'),
- array('list', 'l', 0, 1, 0, 0, 'bool', 'List recent blocks'),
- array('delete', 'd', 0, 1, 0, 0, 'bool', 'Clear recent blocks list'),
- array('flush', '', 0, 1, 0, 0, 'bool', 'Flush all blocks / stats'),
- );
-getCmdOpt($_SERVER['argv'], $aCMDOptions, $aResult, true, true);
-
-$m = getBucketMemcache();
-if (!$m) {
- echo "ERROR: Bucket memcache is not configured\n";
- exit;
-}
-
-if ($aResult['list']) {
- $iCurrentSleeping = $m->get('sleepCounter');
- echo "\n Sleeping blocks count: $iCurrentSleeping\n";
-
- $aBlocks = getBucketBlocks();
- echo "\n";
- printf(" %-40s | %12s | %7s | %13s | %31s | %8s\n", 'Key', 'Total Blocks', 'Current', 'Still Blocked', 'Last Block Time', 'Sleeping');
- printf(" %'--40s-|-%'-12s-|-%'-7s-|-%'-13s-|-%'-31s-|-%'-8s\n", '', '', '', '', '', '');
- foreach ($aBlocks as $sKey => $aDetails) {
- printf(
- " %-40s | %12s | %7s | %13s | %31s | %8s\n",
- $sKey,
- $aDetails['totalBlocks'],
- (int)$aDetails['currentBucketSize'],
- $aDetails['currentlyBlocked']?'Y':'N',
- date('r', $aDetails['lastBlockTimestamp']),
- $aDetails['isSleeping']?'Y':'N'
- );
- }
- echo "\n";
-}
-
-if ($aResult['delete']) {
- $m->set('sleepCounter', 0);
- clearBucketBlocks();
-}
-
-if ($aResult['flush']) {
- $m->flush();
-}
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
ini_set('memory_limit', '800M');
);
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
-include(CONST_InstallPath.'/settings/phrase_settings.php');
+include(CONST_Phrase_Config);
if (true) {
$sURL = 'https://wiki.openstreetmap.org/wiki/Special:Export/Nominatim/Country_Codes';
-#!@PHP_BIN@ -Cq
<?php
// Script to extract structured city and street data
// from a running nominatim instance as CSV data
- require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
require_once(CONST_BasePath.'/lib/ParameterParser.php');
ini_set('memory_limit', '800M');
-#!/usr/bin/php -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
ini_set('memory_limit', '800M');
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
require_once(CONST_BasePath.'/lib/Geocode.php');
require_once(CONST_BasePath.'/lib/ParameterParser.php');
-#!@PHP_BIN@ -Cq
+#!/usr/bin/php -Cq
<?php
$sFile = 'sample.log.txt'; // Apache log file
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
-// ->indirect via init-cmd.php->/lib/cmd.php for runWithEnv, getCmdOpt
-// ->indirect via init-cmd.php->/lib/init.php->db.php for &getDB()
-
require_once(CONST_BasePath.'/lib/setup/SetupClass.php');
require_once(CONST_BasePath.'/lib/setup_functions.php');
ini_set('memory_limit', '800M');
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
ini_set('memory_limit', '800M');
ini_set('display_errors', 'stderr');
);
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
-include(CONST_InstallPath.'/settings/phrase_settings.php');
+include(CONST_Phrase_Config);
if ($aCMDResult['wiki-import']) {
$oNormalizer = Transliterator::createFromRules(CONST_Term_Normalization_Rules);
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
require_once(CONST_BasePath.'/lib/setup_functions.php');
require_once(CONST_BasePath.'/lib/setup/SetupClass.php');
-#!@PHP_BIN@ -Cq
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
ini_set('memory_limit', '800M');
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/output.php');
<?php
-@define('CONST_ConnectionBucket_PageType', 'Details');
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/output.php');
<?php
-@define('CONST_ConnectionBucket_PageType', 'Details');
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/AddressDetails.php');
<?php
-@define('CONST_ConnectionBucket_PageType', 'Reverse');
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/PlaceLookup.php');
<?php
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/output.php');
<?php
-@define('CONST_ConnectionBucket_PageType', 'Reverse');
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/PlaceLookup.php');
<?php
-@define('CONST_ConnectionBucket_PageType', 'Search');
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/log.php');
require_once(CONST_BasePath.'/lib/Geocode.php');
<?php
-@define('CONST_ConnectionBucket_PageType', 'Status');
-
-require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-website.php');
require_once(CONST_BasePath.'/lib/ParameterParser.php');
require_once(CONST_BasePath.'/lib/Status.php');