예제 #1
0
	Aktuell eingelesene Dateien:
	                alte Daten von http://earth-info.nga.mil/gns/html/cntry_files.html
  Aktuell einzulesende Daten:
	                http://geonames.nga.mil/gns/html/cntyfile/au.zip
	                http://geonames.nga.mil/gns/html/cntyfile/gm.zip
	                http://geonames.nga.mil/gns/html/cntyfile/sz.zip
	                (Datenformat hat sich geändert, braucht Anpassungen)
	***************************************************************************/
// ported from lib1 to lib2 / untested!
$opt['rootpath'] = '../../';
require $opt['rootpath'] . 'lib2/cli.inc.php';
/* defaults */
$importfiles = array("gm.txt", "au.txt", "sz.txt");
sql("TRUNCATE TABLE gns_locations");
foreach ($importfiles as $filename) {
    importGns($filename, $dblink);
}
function importGns($filename, $dblink)
{
    echo "Importing '{$filename}'...\n";
    $file = fopen($filename, "r");
    $cnt = 0;
    while ($line = fgets($file, 4096)) {
        if ($cnt++ == 0) {
            // skip first line
            continue;
        }
        $gns = mb_split("\t", $line);
        sql("INSERT IGNORE INTO gns_locations SET\n\t\t\t\t\trc = '" . sql_escape($gns[0]) . "',\n\t\t\t\t\tufi = '" . sql_escape($gns[1]) . "',\n\t\t\t\t\tuni = '" . sql_escape($gns[2]) . "',\n\t\t\t\t\tlat = '" . sql_escape($gns[3]) . "',\n\t\t\t\t\tlon = '" . sql_escape($gns[4]) . "',\n\t\t\t\t\tdms_lat = '" . sql_escape($gns[5]) . "',\n\t\t\t\t\tdms_lon = '" . sql_escape($gns[6]) . "',\n\t\t\t\t\tutm = '" . sql_escape($gns[7]) . "',\n\t\t\t\t\tjog = '" . sql_escape($gns[8]) . "',\n\t\t\t\t\tfc = '" . sql_escape($gns[9]) . "',\n\t\t\t\t\tdsg = '" . sql_escape($gns[10]) . "',\n\t\t\t\t\tpc = '" . sql_escape($gns[11]) . "',\n\t\t\t\t\tcc1 = '" . sql_escape($gns[12]) . "',\n\t\t\t\t\tadm1 = '" . sql_escape($gns[13]) . "',\n\t\t\t\t\tadm2 = _utf8'" . sql_escape($gns[14]) . "',\n\t\t\t\t\tdim = '" . sql_escape($gns[15]) . "',\n\t\t\t\t\tcc2 = '" . sql_escape($gns[16]) . "',\n\t\t\t\t\tnt = '" . sql_escape($gns[17]) . "',\n\t\t\t\t\tlc = '" . sql_escape($gns[18]) . "',\n\t\t\t\t\tSHORT_FORM = _utf8'" . sql_escape($gns[19]) . "',\n\t\t\t\t\tGENERIC = _utf8'" . sql_escape($gns[20]) . "',\n\t\t\t\t\tSORT_NAME = _utf8'" . sql_escape($gns[21]) . "',\n\t\t\t\t\tFULL_NAME = _utf8'" . sql_escape($gns[22]) . "',\n\t\t\t\t\tFULL_NAME_ND = _utf8'" . sql_escape($gns[23]) . "',\n\t\t\t\t\tMOD_DATE = '" . sql_escape($gns[24]) . "'");
    }
    fclose($file);
예제 #2
0
 * ** download the files from the explicit links above.

 * ************************************************************************* */
header('Content-Type: text/plain');
set_time_limit(0);
$rootpath = '../../';
/* defaults */
$importfiles = array("pl.txt", "pl_administrative_a.txt", "nl.txt", "nl_administrative_a.txt", "be.txt", "be_administrative_a.txt", "lu.txt", "lu_administrative_a.txt", "ro.txt", "ro_administrative_a.txt");
# first download the file from the URLs above
sql("DROP TABLE IF EXISTS `gns_locations` ");
// the columns reflect one-to-one file structure
// there may be additional columns at the end of the table
sql("CREATE TABLE `gns_locations` (\n        `RC` tinyint(4) NOT NULL DEFAULT '0',\n        `UFI` int(11) NOT NULL DEFAULT '0',\n        `UNI` int(11) NOT NULL DEFAULT '0',\n        `LAT` double NOT NULL DEFAULT '0',\n        `LON` double NOT NULL DEFAULT '0',\n        `DMS_LAT` int(11),\n        `DMS_LONG` int(11),\n        `MGRS` varchar(4),\n        `JOG` varchar(7),\n        `FC` char(1),\n        `DSG` varchar(5),\n        `PC` tinyint(4),\n        `CC1` char(2),\n        `ADM1` char(2),\n        `POP` varchar(200),\n        `ELEV` int(11),\n        `CC2` char(2),\n        `NT` char(1),\n        `LC` char(2),\n        `SHORT_FORM` varchar(128),\n        `GENERIC` varchar(128),\n        `SORT_NAME` varchar(200),\n        `FULL_NAME` varchar(200) COLLATE utf8_polish_ci,\n        `FULL_NAME_ND` varchar(200),\n        `SORT_NAME_RG` varchar(200),\n        `FULL_NAME_RG` varchar(200),\n        `FULL_NAME_ND_RG` varchar(200),\n        `NOTE` varchar(200),\n        `MODIFY_DATE` date,\n        `DISPLAY` varchar(200),\n        `NAME_RANK` int(11),\n        `NAME_LINK` int(11),\n        `TRANSL_CD` varchar(200),\n        `NM_MODIFY_DATE` date,\n        `ADMTXT1` varchar(120) COLLATE utf8_polish_ci,\n        `ADMTXT3` varchar(120) COLLATE utf8_polish_ci,\n        `ADMTXT4` varchar(120) COLLATE utf8_polish_ci,\n        `ADMTXT2` varchar(120) COLLATE utf8_polish_ci,\n        PRIMARY KEY (`uni`),\n        KEY `ufi` (`ufi`),\n        KEY `key1` (`DSG`, `CC1`,`ADM1`)\n        ) ENGINE=MyISAM DEFAULT CHARSET=utf8;\n    ");
// TODO: The collate parameter should be instalation dependent.
foreach ($importfiles as $filename) {
    importGns($filename);
}
function importGns($filename)
{
    if (isset($_GET['basepath'])) {
        $filename = $_GET['basepath'] . '/' . $filename;
    }
    echo "Importing '{$filename}'...\n";
    $file = fopen($filename, "r");
    if (!$file) {
        return;
    }
    $columns = mb_split("[\t ,]", "RC,UFI,UNI,LAT,LON,DMS_LAT,DMS_LONG,MGRS,JOG,FC,DSG,PC,CC1,ADM1,POP,ELEV,CC2,NT,LC,SHORT_FORM,GENERIC,SORT_NAME,FULL_NAME,FULL_NAME_ND,SORT_NAME_RG,FULL_NAME_RG,FULL_NAME_ND_RG,NOTE,MODIFY_DATE,DISPLAY,NAME_RANK,NAME_LINK,TRANSL_CD,NM_MODIFY_DATE");
    $utf_columns = mb_split("[\t ,]", "SHORT_FORM,GENERIC,SORT_NAME,FULL_NAME,FULL_NAME_ND,SORT_NAME_RG,FULL_NAME_RG,FULL_NAME_ND_RG,NOTE");
    $line_cnt = 0;
    $cnt = 0;