From: Maxious Date: Mon, 14 Nov 2011 07:05:09 +0000 Subject: Add shape points as PostGIS geometery X-Git-Url: http://maxious.lambdacomplex.org/git/?p=busui.git&a=commitdiff&h=2f052a2b4231c0c06bb0809b24a9b29e507cbbae --- Add shape points as PostGIS geometery --- --- a/aws/transitdata.sql +++ b/aws/transitdata.sql @@ -13382,7 +13382,8 @@ shape_pt_lat double precision, shape_pt_lon double precision, shape_pt_sequence integer NOT NULL, - shape_dist_traveled integer + shape_dist_traveled integer, + shape_pt geography, ); --- a/updatedb.php +++ b/updatedb.php @@ -30,10 +30,11 @@ delete from stops; delete from trips; */ + // Unzip cbrfeed.zip, import all csv files to database - $unzip = true; + $unzip = false; $zip = zip_open(dirname(__FILE__) . "/cbrfeed.zip"); - $tmpdir = "/tmp/cbrfeed/"; + $tmpdir = "c:/tmp/"; mkdir($tmpdir); if ($unzip) { if (is_resource($zip)) { @@ -68,7 +69,10 @@ $stmt->bindParam(':departure_time', $time); } - + $distance = 0; + $lastshape = 0; + $lastlat = 0; + $lastlon = 0; while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { if ($line == 0) { @@ -79,8 +83,19 @@ $query.=($valueCount > 0 ? "','" : "'") . pg_escape_string($value); $valueCount++; } + if ($tablename == "stops") { $query.= "', ST_GeographyFromText('SRID=4326;POINT({$data[2]} {$data[0]})'));"; + } else if ($tablename == "shapes") { + if ($data[0] != $lastshape) { + $distance = 0; + $lastshape = $data[0]; + } else { + $distance += distance($lastlat, $lastlon, $data[1], $data[2]); + } + $lastlat = $data[1]; + $lastlon = $data[2]; + $query.= "', $distance, ST_GeographyFromText('SRID=4326;POINT({$data[2]} {$data[1]})'));"; } else { $query.= "');"; }