2010-11-16 16:24:52 +03:00
#!/usr/bin/php -Cq
< ? php
2016-03-09 02:07:46 +03:00
require_once ( dirname ( dirname ( __FILE__ )) . '/settings/settings.php' );
require_once ( CONST_BasePath . '/lib/init-cmd.php' );
2010-11-16 16:24:52 +03:00
ini_set ( 'memory_limit' , '800M' );
$aCMDOptions = array (
" Create and setup nominatim search system " ,
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' ),
2015-05-04 02:07:54 +03:00
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)' ),
2010-11-16 16:24:52 +03:00
);
getCmdOpt ( $_SERVER [ 'argv' ], $aCMDOptions , $aCMDResult , true , true );
if ( isset ( $aCMDResult [ 'parse-tiger' ]))
{
2015-05-08 20:48:27 +03:00
if ( ! file_exists ( CONST_Tiger_Data_Path )) mkdir ( CONST_Tiger_Data_Path );
2012-02-18 00:34:28 +04:00
$sTempDir = tempnam ( '/tmp' , 'tiger' );
unlink ( $sTempDir );
mkdir ( $sTempDir );
2015-05-04 02:07:54 +03:00
foreach ( glob ( $aCMDResult [ 'parse-tiger' ] . '/tl_20??_?????_edges.zip' , 0 ) as $sImportFile )
2012-02-18 00:34:28 +04:00
{
set_time_limit ( 30 );
preg_match ( '#([0-9]{5})_(.*)#' , basename ( $sImportFile ), $aMatch );
$sCountyID = $aMatch [ 1 ];
echo " Processing " . $sCountyID . " ... \n " ;
$sUnzipCmd = " unzip -d $sTempDir $sImportFile " ;
exec ( $sUnzipCmd );
$sShapeFile = $sTempDir . '/' . basename ( $sImportFile , '.zip' ) . '.shp' ;
if ( ! file_exists ( $sShapeFile ))
{
echo " Failed unzip ( $sImportFile ) \n " ;
}
else
{
$sParseCmd = CONST_BasePath . '/utils/tigerAddressImport.py ' . $sShapeFile ;
exec ( $sParseCmd );
$sOsmFile = $sTempDir . '/' . basename ( $sImportFile , '.zip' ) . '.osm1.osm' ;
if ( ! file_exists ( $sOsmFile ))
{
echo " Failed parse ( $sImportFile ) \n " ;
}
else
{
2015-05-08 20:48:27 +03:00
copy ( $sOsmFile , CONST_Tiger_Data_Path . '/' . $sCountyID . '.sql' );
2012-02-18 00:34:28 +04:00
}
}
// Cleanup
foreach ( glob ( $sTempDir . '/*' ) as $sTmpFile )
{
unlink ( $sTmpFile );
}
}
}