Nominatim/utils/imports.php

57 lines
2.0 KiB
PHP
Raw Normal View History

#!@PHP_BIN@ -Cq
2010-11-16 16:24:52 +03:00
<?php
2016-09-04 04:19:48 +03:00
require_once(dirname(dirname(__FILE__)).'/settings/settings.php');
require_once(CONST_BasePath.'/lib/init-cmd.php');
ini_set('memory_limit', '800M');
$aCMDOptions
= array(
'Create and setup nominatim search system',
2016-09-04 04:19:48 +03:00
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('parse-tiger', '', 0, 1, 1, 1, 'realpath', 'Convert tiger edge files to nominatim sql import - datafiles from 2011 or later (source: edges directory of tiger data)'),
);
2016-09-04 04:19:48 +03:00
getCmdOpt($_SERVER['argv'], $aCMDOptions, $aCMDResult, true, true);
if (isset($aCMDResult['parse-tiger'])) {
2016-09-04 04:19:48 +03:00
if (!file_exists(CONST_Tiger_Data_Path)) mkdir(CONST_Tiger_Data_Path);
$sTempDir = tempnam('/tmp', 'tiger');
unlink($sTempDir);
mkdir($sTempDir);
foreach (glob($aCMDResult['parse-tiger'].'/tl_20??_?????_edges.zip', 0) as $sImportFile) {
2016-09-04 04:19:48 +03:00
set_time_limit(30);
preg_match('#([0-9]{5})_(.*)#', basename($sImportFile), $aMatch);
2016-09-04 04:19:48 +03:00
$sCountyID = $aMatch[1];
2017-10-22 12:01:10 +03:00
echo 'Processing '.$sCountyID."...\n";
2016-09-04 04:19:48 +03:00
$sUnzipCmd = "unzip -d $sTempDir $sImportFile";
exec($sUnzipCmd);
2017-10-22 12:01:10 +03:00
$sShapeFilename = $sTempDir.'/'.basename($sImportFile, '.zip').'.shp';
2017-10-22 12:28:34 +03:00
$sSqlFilenameTmp = $sTempDir.'/'.$sCountyID.'.sql';
$sSqlFilename = CONST_Tiger_Data_Path.'/'.$sCountyID.'.sql';
2017-10-22 12:01:10 +03:00
if (!file_exists($sShapeFilename)) {
2016-09-04 04:19:48 +03:00
echo "Failed unzip ($sImportFile)\n";
} else {
2017-10-22 12:28:34 +03:00
$sParseCmd = CONST_BasePath.'/utils/tigerAddressImport.py '.$sShapeFilename.' '.$sSqlFilenameTmp;
2016-09-04 04:19:48 +03:00
exec($sParseCmd);
2017-10-22 12:28:34 +03:00
if (!file_exists($sSqlFilenameTmp)) {
2016-09-04 04:19:48 +03:00
echo "Failed parse ($sImportFile)\n";
2017-10-22 12:28:34 +03:00
} else {
copy($sSqlFilenameTmp, $sSqlFilename);
2016-09-04 04:19:48 +03:00
}
}
// Cleanup
foreach (glob($sTempDir.'/*') as $sTmpFile) {
2016-09-04 04:19:48 +03:00
unlink($sTmpFile);
}
}
}