geoportal/server/trunk/modules/import/geocaches.php
2010-08-16 23:02:23 +02:00

97 lines
No EOL
2.5 KiB
PHP

<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
/**
* GeoPortal Server
*
* gc.com database import
*
* @filesource $HeadURL: http://svn.griesm.de/geo/server/trunk/modules/import/geocaches.php $
* @package modules
* @subpackage import
* @author Steffen Vogel (info@steffenvogel.de)
* @modifedby $LastChangedBy: steffen $
* @copyright Copyright (c) 2009 Steffen Vogel (info@steffenvogel.de)
* @license http://www.gnu.org/licenses/gpl.html
* @link http://www.geoportal.griesm.de
* @since 1
* @version $Revision: 42 $
* @lastmodifed $Date: 2009-04-25 10:23:48 +0200 (Sa, 25 Apr 2009) $
*/
require_once '../../include/init.php';
ini_set("MEMORY_LIMIT", "128M");
$state = (isset($_GET['state'])) ? $_GET['state'] : 'Germany';
$url = (isset($_GET['url'])) ? $_GET['url'] : 'http://geocaching.bplaced.net/gc';
file_put_contents(sys_get_temp_dir() . '/' . $state . '.db.zip', file_get_contents($url . '/' . $state . '.db.zip'));
$zipFile = new ZipArchive;
$zipFile->open(sys_get_temp_dir() . '/' . $state . '.db.zip');
$gcDb = $zipFile->getStream($state . '.db');
if ($gcDb) {
$db->execute('DELETE FROM ' . $c->db->table->markers . ' WHERE cat_id <= 11');
$caches = 0;
$originalSql = 'INSERT INTO ' . $c->db->table->markers . ' (lat, lng, cat_id, data, usr_id, added) VALUES ';
$sql = $originalSql;
while (($row = fgetcsv($gcDb, 1000, ' ', '"')) !== false) {
$caches++;
switch ($row[7]) {
case 'Unknown Cache':
$cat_id = 1;
break;
case 'Multi-cache':
$cat_id = 2;
break;
case 'Traditional Cache':
$cat_id = 3;
break;
case 'Event Cache':
$cat_id = 4;
break;
case 'Webcam Cache':
$cat_id = 6;
break;
case 'Letterbox Hybrid':
$cat_id = 7;
break;
case 'Virtual Cache':
$cat_id = 9;
break;
case 'Cache In Trash Out Event':
$cat_id = 10;
break;
case 'Earthcache':
$cat_id = 11;
break;
case 'Wherigo Cache':
$cat_id = 1;
break;
default:
echo 'FOUND NEW CACHE TYPE: ' . $row[7];
$cat_id = 1;
}
$sql .= '(' . (float) $row[5] . ', ' . (float) $row['6'] . ', ' . (int) $cat_id . ', \'<data><id>' . $row[9] . '</id><name>' . $row[1] . '</name><size>' . $row[8] . '</size><guid>' . $row[10] . '</guid></data>\', 1, \'' . (int) $row[2] . '-' . (int) $row[3] . '-' . (int) $row[4] . '\'), ';
if ($caches % 1000 == 0) {
$sql = substr($sql, 0, -2);
$db->execute($sql);
$sql = $originalSql;
echo '.';
flush();
}
}
echo '<br />' . $caches . ' Caches hinzugefuegt!';
}
else {
die('Fehler!');
}
?>