(data e ora: $fotoData)"; } return $caption; } function SegnaLuoghi($lat0, $lon0, $lat1, $lon1, $icona){ $cur = mysql_query(" SELECT nome, sigla, latitudine, longitudine, foto FROM bici.luoghi WHERE (longitudine BETWEEN $lon0 AND $lon1) AND (latitudine BETWEEN $lat0 AND $lat1) ORDER BY longitudine DESC "); if (mysql_error()) echo mysql_error(); $result = ''; while ($riga = mysql_fetch_row($cur)) { $result .= "SetMarker0($riga[2], $riga[3], \"$riga[0]\", \"?Sigla=$riga[1]&Trova=1\", \"$riga[4]\", \"$riga[0]\", \"$icona\");"; } return $result; } function JS_segnaLuoghiLatLon($cLat, $cLon, $zoom){ $dLa = $zoom/50; $dLo = $zoom/50; $lat0 = $cLat - $dLa; $lon0 = $cLon - $dLo; $lat1 = $cLat + $dLa; $lon1 = $cLon + $dLo; return SegnaLuoghi($lat0, $lon0, $lat1, $lon1, 'villa'); } function IterUscitaSQL($sqlCom){ $line = GetPolylineSQL($sqlCom); $linea = '['; $sep = ''; foreach ($line as $latlon){ $linea .= "$sep new google.maps.LatLng($latlon)"; $sep = ','; } $linea .= "]\n"; return $linea; } function IterUscita($uscita, $verso){ $line = GetPolyline($uscita, $verso); $linea = '['; $sep = ''; foreach ($line as $latlon){ $linea .= "$sep new google.maps.LatLng($latlon)"; $sep = ','; } $linea .= "]\n"; return $linea; } function TrovaLatLon($percorso, &$lat, &$lon, &$zoom){ global $Deg2Rad; global $SLat; global $SLon; $lat = 45.6; $lon = 12.3; $zoom = 10; $curP = mysql_query("SELECT CLat, CLon, zoom FROM percorsi.riepilogo WHERE nome = '$percorso'"); if (mysql_error()) echo mysql_error(); if ($rigaP = mysql_fetch_row($curP)) { $lat = $rigaP[0]; $lon = $rigaP[1]; $zoom = $rigaP[2]; } else { $curP = mysql_query("SELECT min($SLat), min($SLon), max($SLat), max($SLon) FROM $percorso"); if (mysql_error()) echo mysql_error(); if ($rigaP = mysql_fetch_row($curP)) { $lat = ($rigaP[0] + $rigaP[2])/2; $lon = ($rigaP[1] + $rigaP[3])/2; $wid = cos($lat*$Deg2Rad)*abs($rigaP[1] - $rigaP[3]); $hi = abs($rigaP[0] - $rigaP[2]); if ($hi > $wid) $wid = $hi; $zoom = floor(9 - log($wid, 2)); if ($zoom > 13) $zoom = 13; if ($zoom < 5) $zoom = 5; } } // $zoom = 9; /* $curP = mysql_query("SELECT min($SLat), min($SLon), max($SLat), max($SLon) FROM $percorso"); if (mysql_error()) echo mysql_error(); if ($rigaP = mysql_fetch_row($curP)) { $lat = ($rigaP[0] + $rigaP[2])/2; $lon = ($rigaP[1] + $rigaP[3])/2; $wid = cos($lat*$Deg2Rad)*abs($rigaP[1] - $rigaP[3]); $hi = abs($rigaP[0] - $rigaP[2]); if ($hi > $wid) $wid = $hi; $zoom = floor(9 - log($wid, 2)); if ($zoom > 13) $zoom = 13; if ($zoom < 5) $zoom = 5; // $zoom = 9; } */ } function EncodeChar($ll){ $lat = round($ll*100000); if ($lat < 0) { $lat = -$lat; $lat = 4294967296 - $lat; $lat = 2*$lat; $lat = 8589934591 - $lat; } else { $lat = 2*$lat; } $line = ''; do { $line .= chr(63 + (($lat % 32) | 32)); $lat = $lat / 32; } while ($lat >= 32); $line .= chr(63 + $lat); return $line; } function EncPolyline($percorso, $verso){ global $SLat; global $SLon; $cur = mysql_query("SELECT $SLat, $SLon FROM $percorso ORDER BY ord $verso"); if (mysql_error()) echo mysql_error(); $line = ''; $ulat = 0; $ulon = 0; while ($riga = mysql_fetch_row($cur)) { $line .= EncodeChar($riga[0] - $ulat); $line .= EncodeChar($riga[1] - $ulon); $ulat = $riga[0]; $ulon = $riga[1]; } return $line; } function GetRPolyline($percorso, $verso, $riduci){ global $SLat; global $SLon; $cur = mysql_query("SELECT $SLat, $SLon FROM percorsi.$percorso ORDER BY ord $verso"); if (mysql_error()) echo mysql_error(); $line = array(); $ind = 0; $indR = 0; while ($riga = mysql_fetch_row($cur)) { if ($ind == 0) $line[$indR++] = "$riga[0], $riga[1]"; ++$ind; if ($ind == $riduci) $ind = 0; } return $line; } function GetPolylineSQL($sqlCom){ $cur = mysql_query($sqlCom); if (mysql_error()) echo mysql_error(); $line = array(); $ind = 0; while ($riga = mysql_fetch_row($cur)) { $line[$ind++] = "$riga[0], $riga[1]"; } return $line; } function GetPolyline($percorso, $verso){ global $SLat; global $SLon; // return GetPolylineSQL("SELECT $SLat, $SLon FROM percorsi.$percorso ORDER BY ord $verso"); può anche essere gps20xx !! return GetPolylineSQL("SELECT $SLat, $SLon FROM $percorso ORDER BY ord $verso"); } function GetPath($percorso, $verso){ global $SLat; global $SLon; $cur = mysql_query("SELECT $SLat, $SLon FROM $percorso ORDER BY ord $verso"); // $cur = mysql_query("SELECT $SLat, $SLon FROM percorsi.$percorso ORDER BY ord $verso"); if (mysql_error()) echo mysql_error(); $line = '['; // $line = ''; $ind = 0; $sep = ''; while ($riga = mysql_fetch_row($cur)) { $line .= $sep."new google.maps.LatLng($riga[0], $riga[1])"; $sep = ', '; } return $line.']'; } function GetInfoWindow($percorso){ $cur = mysql_query("SELECT lat, lon, legenda FROM percorsi.$percorso WHERE rango > 0"); if (mysql_error()) echo mysql_error(); $info = array(); $ind = 0; while ($riga = mysql_fetch_row($cur)) { $info[$ind++] = "$riga[0], $riga[1]|$riga[2]"; } return $info; } function Secondi2HMS($time){ $ore = floor($time/3600); $min = floor(($time - $ore*3600)/60); $sec = floor(($time - $ore*3600 - $min*60)); return array('ore' => $ore, 'min' => $min, 'sec' => $sec); } function Ore2HMagellan($hours){ $ore = floor($hours); $resto = $hours - $ore; $min = $resto * 60; return 100*$ore + $min; } function HMS2Secondi($hour, $min, $sec){ return $sec + 60*$min + 3600*$hour; } function HMS2Minuti($hour, $min, $sec){ return $sec/60 + $min + 60*$hour; } function OraEstiva($anno, $mese, $di){ if (($mese > 2) && ($mese < 9)){ return true; } else if ($mese == 2){ $ud = 31 - ((gregoriantojd (3, 31, $anno)+1) % 7); if ($di >= $ud) { return true; } else { return false; } } else if ($mese == 9){ $ud = 31 - ((gregoriantojd (3, 31, $anno)+1) % 7); if ($di >= $ud) { return false; } else { return true; } } else { return false; } } function DiffOra($anno, $mese, $di){ if (OraEstiva($anno, $mese, $di)) { return 2; } else { return 1; } } function ReadMetaData($xml){ $mdata = array(); while ($xml->read()) { if (($xml->name == "time") && ($xml->nodeType == 1)) { $xml->read(); $mdata[0] = substr($xml->value, 0, 10); $mdata[1] = substr($xml->value, 11, 8); } if ($xml->name == "bounds") { $mdata[2] = $xml->getAttribute('minlat'); $mdata[3] = $xml->getAttribute('minlon'); $mdata[4] = $xml->getAttribute('maxlat'); $mdata[5] = $xml->getAttribute('maxlon'); break; } } return $mdata; } function ReadTrackpoint($xml){ $trk = array(); if ($xml->hasAttributes){ $trk[0] = $xml->getAttribute('lat'); $trk[1] = $xml->getAttribute('lon'); } while ($xml->read()) { if (($xml->name == "trkpt") && ($xml->nodeType == 15)) break; if (($xml->name == "ele") && ($xml->nodeType == 1)) { $xml->read(); $trk[2] = (int) $xml->value; } if (($xml->name == "time") && ($xml->nodeType == 1)) { $xml->read(); $trk[3] = substr($xml->value, 0, 10); $trk[4] = substr($xml->value, 11, 8); } } return $trk; } function ReadWaypoint($xml){ $wpt = array(); if ($xml->hasAttributes){ $wpt[4] = $xml->getAttribute('lat'); $wpt[5] = $xml->getAttribute('lon'); } while ($xml->read()) { if (($xml->name == "wpt") && ($xml->nodeType == 15)) break; if (($xml->name == "ele") && ($xml->nodeType == 1)) { $xml->read(); $wpt[2] = (int) $xml->value; } if (($xml->name == "name") && ($xml->nodeType == 1)) { $xml->read(); $wpt[0] = $xml->value; } if (($xml->name == "desc") && ($xml->nodeType == 1)) { $xml->read(); $wpt[1] = $xml->value; } } $wpt[3] = ''; $wpt[6] = 1; return $wpt; } function SelectFileGPS($name, $dir, $selected, $tipo){ $dp = opendir($dir); echo "$dir \n"; closedir($dp); } function SelectTracceTXT($fname, $selected){ echo "\n"; } function SelectTracceGPS($uscita, $selected, $tipo){ if (isset($uscita) && (strlen($uscita) > 2)) { if ($tipo == 'gpx') { $mark = 'trk'; } else if ($tipo == 'kml') { $mark = 'Placemark'; } else if ($tipo == 'txt') { SelectTracceTXT($uscita, $selected); return 1; } $fname = $uscita; $xml = new XMLReader(); $xml->open($fname); // if (floatval(phpversion()) > 5.1) $xml->setParserProperty(XMLReader::LOADDTD, TRUE); echo "\n"; $xml->close(); } } function Second2Hour($secondi){ $s = $secondi % 60; $h = ($secondi - $s)/60; $m = $h % 60; $h = ($h - $m)/60; return array($h, $m, $s); } function Polar2Cartes($lat, $lon, $alt){ global $RT; $raggio = $RT + $alt; $x = (float)$raggio*(cos($lat)*cos($lon)); $y = (float)$raggio*(cos($lat)*sin($lon)); $z = (float)$raggio*(sin($lat)); return array($x, $y, $z); } function Distanza($P0, $P1){ $dx = $P0[0]-$P1[0]; $dy = $P0[1]-$P1[1]; $dz = $P0[2]-$P1[2]; return (float)sqrt($dx*$dx + $dy*$dy + $dz*$dz); } function DistanzaSfericaC($lat0, $lon0, $alt0, $lat1, $lon1, $alt1){ global $RT; $P0 = Polar2Cartes($lat0, $lon0, $alt0); $P1 = Polar2Cartes($lat1, $lon1, $alt0); return Distanza($P0, $P1); } function DistanzaSfericaP($lat0, $lon0, $lat1, $lon1){ global $RT; $dlat = $RT*($lat1 - $lat0); $dlon = $RT*($lon1 - $lon0); $mlat = ($lat0 + $lat1)/2; $fcos = cos($lat0); return sqrt($dlat^2 + ($fcos*$dlon)^2); } function DistanzaCurvilinea($dretta){ global $RT; return 2*$RT*asin($dretta/2/$RT); } function Potenza($massa, $pendenza, $vel, $frenate, $roto){ global $Alfa; // global $Roto; global $Grav; // global $Frenate; // $roto = $Roto; if ($pendenza < 0) $roto += abs($pendenza)*$frenate; // simulazione frenate in discesa; return ($massa*($pendenza + $roto) + $Alfa*$vel*$vel)*$Grav*abs($vel); } function Velocita($potenza, $massa, $pendenza, $vel0, $vel1, $frenate, $roto){ $conta = 0; $error0 = $potenza - Potenza($massa, $pendenza, $vel0, $frenate, $roto); do { $vel = ($vel0 + $vel1) /2; $error = $potenza - Potenza($massa, $pendenza, $vel, $frenate, $roto); if ($error0*$error < 0) { $vel1 = $vel; } else { $vel0 = $vel; $error0 = $error; } ++$conta; } while ((abs($error) > 0.001) && ($conta < 10)); return $vel; } function JS_Itinerario_LatLon($nome, &$CLat, &$CLon){ $cur = mysql_query("SELECT CLat, CLon FROM percorsi.riepilogo WHERE nome = '$nome'"); if ($riga = mysql_fetch_row($cur)) { $CLat = $riga[0]; $CLon = $riga[1]; } } function JS_Itinerario($nome, $colore){ $cur = mysql_query("SELECT nome, titolo, url_pagina, ordine FROM percorsi.riepilogo WHERE nome = '$nome'"); $JScode = "Percorso = ["; if ($riga = mysql_fetch_row($cur)) { $Titolo = $riga[1]; $URL = $riga[2]; if (strlen($URL) < 2) $URL = "/itinerari/percorso.html?Percorso=$riga[0]"; $OrdIter = $riga[3]; $line = GetRPolyline($riga[0], 'ASC', 1); $sep = ''; foreach($line as $latlon) { $JScode .= "$sep new google.maps.LatLng($latlon)"; $sep = ','; } $JScode .= "] var LatLon = Percorso; var iter = new google.maps.Polyline({ strokeColor : '$colore', strokeWeight: 3, path: LatLon }); iter.setMap(mappa); google.maps.event.addListener(iter, 'click', function(){location.href = '$URL';}); google.maps.event.addListener(iter, 'rightclick', function(){location.href = '/gps/tabella_marcia.phtml?Uscita=$nome';}); "; } return $JScode; } function JS_ItinerariWhere($where, $riduci){ $cur = mysql_query(" SELECT nome, titolo, url_pagina, ordine FROM percorsi.riepilogo r, percorsi.percorsiMappe m $where AND r.nome = m.percorso ORDER BY ordine "); if (mysql_error()) echo "$where - ".mysql_error(); $P_ind = 0; $colore = array('#A03030', '#3030A0', '#308030', '#30A0A0', '#A0A030', '#A030A0', '#202020'); $JScode = ''; while ($riga = mysql_fetch_row($cur)) { $Nome = $riga[0]; $Titolo = $riga[1]; $URL = $riga[2]; if (strlen($URL) < 2) $URL = "/itinerari/percorso.html?Percorso=$riga[0]"; $OrdIter = $riga[3]; $line = GetRPolyline($riga[0], 'ASC', $riduci); $sep = ''; $JScode .= "Percorso = ["; foreach($line as $latlon) { $JScode .= "$sep new google.maps.LatLng($latlon)"; $sep = ','; } $color_ind = $colore[$P_ind % 7]; $JScode .= "] var LatLon = Percorso; var iter = new google.maps.Polyline({ strokeColor : \"$color_ind\", strokeWeight: 3, path: LatLon}); iter.setMap(mappa); google.maps.event.addListener(iter, \"click\", function(){location.href = \"$URL\";}); google.maps.event.addListener(iter, \"rightclick\", function(){location.href = \"/gps/tabella_marcia.phtml?Uscita=$Nome\";}); "; ++$P_ind; } return $JScode; } function JS_Percorso($percorso, $riduci){ $where = " WHERE nome = '$percorso'"; return JS_ItinerariWhere($where, $riduci); } function SegnaVille($lat0, $lon0, $lat1, $lon1, $icona){ $cur = mysql_query(" SELECT v.nome, v.pagina, l.nome, v.architetto, v.provincia, v.latitudine, v.longitudine, v.foto, v.sigla FROM bici.villevenete v, bici.luoghi l WHERE v.luogo = l.sigla AND (v.longitudine BETWEEN $lon0 AND $lon1) AND (v.latitudine BETWEEN $lat0 AND $lat1) ORDER BY v.longitudine DESC "); if (mysql_error()) echo mysql_error(); while ($riga = mysql_fetch_row($cur)) { $foto = $riga[7]; if (!isset($foto) || (strlen($foto) < 3)) { $sigla = $riga[8]; $curF = mysql_query(" SELECT f.foto FROM bici.villevenete v, bici.villeFoto f WHERE v.sigla = f.villa AND v.sigla = '$sigla' LIMIT 1 "); if ($rigaF = mysql_fetch_row($curF)) $foto = $rigaF[0]; else $foto = '???'; } echo " SetMarker0(mappa, $riga[5], $riga[6], \"$riga[0] a $riga[2] ($riga[4])\", \"/luoghi/$riga[1]\", \"/luoghi/$foto\", \"\", \"$icona\");\n"; } } function JS_LocalIgnote($percorso){ $cur = mysql_query("SELECT lat, lon FROM percorsi.percorsiFoto WHERE percorso = '$percorso'"); if (mysql_error()) echo "$where - ".mysql_error(); $locaIgnote = 0; while ($riga = mysql_fetch_row($cur)) { if (!isset($riga[0])) ++$localIgnote; if (!isset($riga[1])) ++$localIgnote; } return $localIgnote; } function JS_FotoVilla($villa, $icona){ // foto villa dove? $sqlCom =" SELECT f.foto, f.titolo, f.descrizione, f.lat, f.lon, f.caption, f.title, r.latitudine, r.longitudine, r.nome, r.foto FROM bici.villeFoto f, bici.villevenete r WHERE f.villa = '$villa' AND r.sigla = '$villa' "; $cur = mysql_query($sqlCom); if (mysql_error()) echo mysql_error(); $fotoList = ''; $conta = 0; while ($riga = mysql_fetch_row($cur)) { $foto = $riga[0]; $iFoto = $riga[10]; if (!isset($iFoto) || (strlen($iFoto) < 3)) $iFoto = $foto; else $iFoto = '---'; if ($conta == 0){ if (isset($riga[7])) $vlat = $riga[7]; else $vlat = 100; if (isset($riga[8])) $vlon = $riga[8]; else $vlon = 100; $fotoList .= "SetMarker0($vlat, $vlon, \"$riga[9]\", \"/luoghi/villa.html?Sigla=$villa\", \"/luoghi/$iFoto\", \"\", \"villa\"); "; } $server = $_SERVER['SERVER_NAME']; if (($server == "bicycle.bonavoglia.eu") || ($server == "bike.bonavoglia.eu")) { $titolo = utf8_encode(EliminApostrofi($riga[6])); $legenda = utf8_encode(EliminApostrofi($riga[5])); } else { $titolo = utf8_encode(EliminApostrofi($riga[1])); $legenda = utf8_encode(EliminApostrofi($riga[2])); } if (isset($riga[3])) $lat = $riga[3]; else $lat = 100; if (isset($riga[4])) $lon = $riga[4]; else $lon = 100; if (($lat < 100) && ($lon < 100)) $fotoList .= "SetMarker0($lat, $lon, \"$titolo\", \"\", \"/luoghi/$foto\", \"$legenda\", \"$icona\"); "; } return $fotoList; } function JS_FotoLuogo($luogo, $icona){ $sqlCom =" SELECT f.foto, f.titolo, f.descrizione, f.lat, f.lon, f.caption, f.title, r.latitudine, r.longitudine, r.nome FROM bici.luoghiFoto f, bici.luoghi r WHERE f.luogo = '$luogo' AND r.situato = '$luogo' AND f.lat <> 0 GROUP BY f.titolo "; $cur = mysql_query($sqlCom); if (mysql_error()) echo mysql_error(); $fotoList = ''; $conta = 0; while ($riga = mysql_fetch_row($cur)) { $foto = $riga[0]; $server = $_SERVER['SERVER_NAME']; if (($server == "bicycle.bonavoglia.eu") || ($server == "bike.bonavoglia.eu")) { $titolo = utf8_encode(EliminApostrofi($riga[6])); $legenda = utf8_encode(EliminApostrofi($riga[5])); } else { $titolo = utf8_encode(EliminApostrofi($riga[1])); $legenda = utf8_encode(EliminApostrofi($riga[2])); } if (isset($riga[3])) $lat = $riga[3]; else $lat = 100; if (isset($riga[4])) $lon = $riga[4]; else $lon = 100; if (($lat < 100) && ($lon < 100)) $fotoList .= "SetMarker0($lat, $lon, \"$titolo\", \"\", \"/citta/$foto\", \"$legenda\", \"$icona\"); "; } return $fotoList; } function JS_FotoFiltro($filtro, $icona){ $cur = mysql_query(" SELECT f.foto, f.titolo, f.descrizione, f.lat, f.lon, f.caption, f.title, r.parent FROM percorsi.percorsiFoto f, percorsi.riepilogo r, percorsi.percorsiMappe m WHERE f.percorso = r.nome AND m.percorso = r.nome $filtro "); if (mysql_error()) echo mysql_error(); $fotoList = ''; while ($riga = mysql_fetch_row($cur)) { $parent = $riga[7]; $server = $_SERVER['SERVER_NAME']; if (($server == "bicycle.bonavoglia.eu") || ($server == "bike.bonavoglia.eu")) { if (strpos($riga[0], '/itinerari/') === false) $foto = "${parent}it/$riga[0]"; else $foto = "it/$riga[0]"; $titolo = utf8_encode(EliminApostrofi($riga[6])); $legenda = utf8_encode(EliminApostrofi($riga[5])); } else { if (strpos($riga[0], '/itinerari/') === false) $foto = "${parent}$riga[0]"; else $foto = $riga[0]; $titolo = utf8_encode(EliminApostrofi($riga[1])); $legenda = utf8_encode(EliminApostrofi($riga[2])); } if (isset($riga[3])) $lat = $riga[3]; else $lat = 100; if (isset($riga[4])) $lon = $riga[4]; else $lon = 100; if (($lat < 100) && ($lon < 100)) $fotoList .= "SetMarker0($lat, $lon, \"$titolo\", \"\", \"$foto\", \"$legenda\", \"$icona\"); "; } return $fotoList; } function JS_FotoPercorso($percorso, $icona){ return JS_FotoFiltro(" AND f.percorso = '$percorso'", $icona); } function JS_FotoWhere($percorso, $icona){ // per compatibilità return JS_FotoFiltro(" AND m.percorso = '$percorso'", $icona); } function JS_FotoViaggio($viaggio, $icona){ return JS_FotoFiltro(" AND m.mappa = '$viaggio'", $icona); } function TabellaViaggio($viaggio, $align, $metric){ if (isset($metric)) { echo "\n
DateSegmentkmmiles"; $titolo = 'title'; } else { echo "\n\n"; $sqlCom = " SELECT DATE(ultimaData) FROM percorsi.riepilogo WHERE mappa0 = '$viaggio' ORDER BY ultimaData ASC, Ordine "; $cur = mysql_query($sqlCom); $semitappe = array(); $ord = -1; $udata = ''; while ($riga = mysql_fetch_row($cur)) { $data = $riga[0]; if ($data == $udata) { ++$semitappe[$ord]['Num']; } else { ++$ord; $semitappe[$ord] = array('Num' => 1, 'Data' => "$riga[0]"); } $udata = $data; } $km = 0; $ord = 0; $riga = ''; mysql_data_seek($cur, 0); foreach ($semitappe as $tappa){ ++$ord; $cols = $tappa['Num']; $data = $tappa['Data']; echo "'; echo "\n"; $acapo = 1; $km += $kmC; } } echo "\n
DataTappakm"; $titolo = 'titolo'; } echo "
$ord"; echo $data; $sqlCom = " SELECT Nome, $titolo, km FROM percorsi.riepilogo WHERE mappa0 = '$viaggio' AND DATE(ultimadata) = '$data' ORDER BY ultimaData ASC"; $curT = mysql_query($sqlCom); $acapo = 0; while ($rigaT = mysql_fetch_row($curT)) { $kmC = $rigaT[2]; if (isset($metric)) $miles = round(2*$kmC/KM_MIL)/2; $nome = utf8_encode($rigaT[1]); if ($acapo == 1) echo '
$nome$kmC"; if (isset($metric)) echo sprintf("%0.1f", $miles); echo "
Total$km"; if (isset($metric)) { $miles = round(2*$km/KM_MIL)/2; printf("%0.1f", $miles); } echo "
\n"; } function JS_segnaVille($lat0, $lon0, $lat1, $lon1, $icona){ // popup villa su mappa $cur = mysql_query(" SELECT v.nome, v.pagina, l.nome, v.architetto, v.provincia, v.latitudine, v.longitudine, v.foto, v.sigla FROM bici.villevenete v, bici.luoghi l WHERE v.luogo = l.sigla AND v.longitudine > $lon0 AND v.longitudine < $lon1 AND v.latitudine > $lat0 AND v.latitudine < $lat1 ORDER BY v.longitudine DESC "); if (mysql_error()) echo mysql_error(); $JScode = ''; while ($riga = mysql_fetch_row($cur)) { $foto = $riga[7]; $sigla = $riga[8]; if (!isset($foto) || (strlen($foto) < 3)) { $sigla = $riga[8]; $curF = mysql_query(" SELECT f.foto FROM bici.villevenete v, bici.villeFoto f WHERE v.sigla = f.villa AND v.sigla = '$sigla' LIMIT 1 "); if ($rigaF = mysql_fetch_row($curF)) $foto = $rigaF[0]; else $foto = '???'; } if ($_SERVER['SERVER_NAME'] == "bicycle.bonavoglia.eu") $foto = "/luoghi/it/$foto"; else $foto = "/luoghi/$foto"; if (strlen($riga[1]) < 3) $URL = "/luoghi/villa.html?Sigla=$riga[8]"; else $URL = "/luoghi/$riga[1]"; $JScode .= "SetMarker0($riga[5], $riga[6], \" == $riga[0] a $riga[2] ($riga[4]) == \", \"$URL\", \"$foto\", \"\", \"$icona\"); "; } return $JScode; } function JS_segnaVilleLatLon($cLat, $cLon, $zoom){ $dLa = $zoom/50; $dLo = $zoom/50; $lat0 = $cLat - $dLa; $lon0 = $cLon - $dLo; $lat1 = $cLat + $dLa; $lon1 = $cLon + $dLo; return JS_segnaVille($lat0, $lon0, $lat1, $lon1, 'villa'); } function JS_ItinerariLatLon($cLat, $cLon, $zoom){ $dLa = $zoom/10; $dLo = $zoom/5; $lat0 = $cLat - $dLa; $lon0 = $cLon - $dLo; $lat1 = $cLat + $dLa; $lon1 = $cLon + $dLo; // return JS_ItinerariWhere("WHERE CLat > $lat0 AND CLat < $lat1 AND CLon > $lon0 AND CLon < $lon1", 2); return JS_ItinerariWhere("WHERE (CLat BETWEEN $lat0 AND $lat1) AND (CLon BETWEEN $lon0 AND $lon1)", 2); } function JS_ItinerariBox($cLat0, $cLat1, $cLon0, $cLon1, $zoom){ return JS_ItinerariWhere("WHERE (CLat BETWEEN $cLat0 AND $cLat1) AND (CLon BETWEEN $cLon0 AND $cLon1)", 2); } function JS_Itinerari($riduci){ return JS_ItinerariWhere('', $riduci); } ?> '>
Cronistoria ciclabile per Venezia - 2018
Cronistoria anni 201920182017 Flag

Attenzione questa è solo la cronistoria della ciclabile; per descrizioni e planimetrie fare clic sui link a destra.

Vega → Venezia
Venezia → Vega
Mestre → Venezia
Marghera → Venezia
Aeroporto → Venezia
Venezia → Mestre
Venezia → Marghera
Venezia → Aeroporto

Cronistoria di una ciclabile, anno 2018

Continua alla pagina → Aggiornamenti 2019


Doppio clic per vedere l`immagine originaleNovembre 2018: finalmente riaperta al transito via dell'Elettrotecnica. La ciclabile dal Vega al bivio del Tronchetto è ora di nuovo agibile al 100%. Resta il già ricordato problema del sottopasso di Porto Marghera, che rischia di durare anni. Mancano poi un collegamento passabilmente ciclabile con Marghera, e il collegamento con ponte ciclabile tra la rotonda di via Torino e il forte Marghera.


Doppio clic per vedere l`immagine originale Ottobre 2018: quasi finiti i lavori in via dell'Elettrotecnica, asfaltata la sede stradale e aperto un corridoio per pedoni e ciclisti; definitivamente chiusa la deviazione per il parcheggio; resta il problema del sottopasso della stazione di Porto Marghera, scomodo e pericoloso e che porta a una via Paganello altrettanto scomoda per il fondo cattivo; ma qui la durata dei lavori si misura più in anni che in mesi; è infatti in progetto il rifacimento completo della stazione; i disagi per i ciclisti dureranno a lungo, purtroppo.


Doppio clic per vedere l`immagine originale Settembre 2018: in via dei Petroli è stata riasfaltata anche la ciclabile, spostata un po' più a destra della precedente, di fatto già percorribile; ci sono ancora lavori per la rimozione dei vecchi lampioni finiti al centro della ciclabile; ne sono già stati installati di nuovi più a destra.


Agosto 2018: via dei Petroli è stata riasfaltata, eliminata questa interruzione il ciclista può percorrerla (attenzione alle autocisterne!!). A fine mese è quasi completata anche l'asfaltatura della ciclabile. Restano le altre due interruzioni, in via Elettrotecnica e alla stazione di Porto Marghera.


Doppio clic per vedere l`immagine originale Luglio 2018: continua il tormentone: le tre interruzioni restano, via dei Petroli è ormai un unico cantiere. Inquietante poi il fatto che nel sottopassaggio della stazione di Porto Marghera sia stato murato in un modo che sa di definitivo, lo sbocco della ciclopedonale da via Torino. Si era prospettato un adeguamento della ciclo-pedonale; ora come ora c'è solo lo smantellamento. In realtà la stazione deve essere rifatta ex-novo con sottopassaggi più ampi, nuovo edificio viaggiatori, e inoltre dovrebbe essere completato il cavalcavia fino al Vega con la adiacente ciclabile che dovrebbe quindi sboccare direttamente oltre la SR 11. Intanto l'interruzione e i disagi per il ciclista rischiano di durare molto, molto a lungo, anni più che mesi.


Giugno 2018: un terzo cantiere, in via dei Petroli, interrompe la ciclabile che qui era realizzata in modo infelice, soggetta a frequenti allagamenti con deposito di fango; ora viene rifatta e dovrebbe correre sopra una struttura di cemento per lo scolo delle acque, ottimo; nel frattempo il ciclista deve pedalare su una strettoia con senso unico alternato a semaforo. In via dell'Elettrotecnica è stato aperto uno stretto varco, senso unico alternato, che evita la deviazione per il parcheggio; si pedala su sterrato con ghiaia grossa non proprio ideale ma è breve, meglio farlo in un fiato. Altra buona notizia, è stato completato l'impianto di illuminazione lungo via dell'Idraulica e altri tratti non illuminati, non so se sia già in funzione.


Maggio 2018: persistono i due cantieri che interrompono la ciclabile; la cosa più grave però è la assoluta mancanza di segnaletica; il ciclista foresto che arriva alla deviazione di via Elettrotecnica attraverso un parcheggio, all'uscita si trova sulla trafficatissima SR11 e non c'è nessun segnale che indichi come ritrovare la ciclabile (in via Petroli); così capita di vedere folti gruppi di cicloturisti che corrono sul margine della SR 11; costerebbe tanto al comune mettere un po' di frecce bianche e rosse nei punti cruciali?


Aprile 2018: di male in peggio: in via dell'Elettrotecnica è stato chiuso anche il passaggio tra le transenne e ora il ciclista deve percorrere una tortuosa deviazione passando per un parcheggio per poi proseguire o a piedi sul marciapiede o pedalando sul margine della SR11 fino a via dei Petroli; peggio ancora sembra che questa situazione si protrarrà fino a novembre! E così anche l'estate 2018 passerà senza un collegamento ciclisticamente decente per Venezia.


Marzo 2018: la neonata ciclabile continua ad essere perseguitata da lavori in corso; a quelli al sottopassaggio della stazione di Porto Marghera, si sono ora aggiunti lavori lungo via dell'Elettrotecnica per consolidamento di un ponte; il ciclista può comunque passare tra le transenne.


Doppio clic per vedere l`immagine originale 25 febbraio 2018: il famigerato pilone che intralciava il passaggio dei ciclisti poco prima della passerella e che doveva essere spostato è crollato durante una bufera di vento, per fortuna senza ferire nessuno; ci ha pensato il vento! Ora si spera che l'insegna luminosa sia spostata un po' più a sud e su basi più stabili; meglio se su due piloni ai lati della strada come quella duecento metri prima.


Febbraio 2018: problemi emersi nei primi mesi:

  1. la ciclabile ha illuminazione propria solo sul ponte della Libertà, altrove è bene o male illuminata dai lampioni della via adiacente, ma in alcuni tratti in particolare lungo via dell`Idraulica è al buio completo; il comune ha ora bandito la gara 66/2017 per l'illuminazione;
  2. manca completamente la segnaletica; sulle ciclabili di Mestre ci sono tante belle frecce rosse a indicare la strada; qui assolutamente nulla, e così capita di vedere ciclisti ignari che da piazzale Roma o dal ferry del Tronchetto finiscono sulla corsia nord e fanno buona parte del percorso sulla SR 11 e sulla sede tranviaria;
  3. manca un collegamento ciclabilmente decente con Marghera; ora come ora il ciclista deve avventurarsi su strade trafficate, soprattutto da enormi autocisterne, e dal fondo a tratti pessimo come la via delle Industrie lungo la Fincantieri;
  4. manca un collegamento ciclabile con i quartieri nord est; venendo da Venezia si può percorrere la rampa a senso unico in fondo a via dei Petroli fino al cavalcavia di San Giuliano, ma nel verso opposto è un problema serio. Nella gara 45/2017 del comune è previsto un collegamento ciclabile tra la rotonda di via Torino e il forte Marghera, ma i lavori devono ancora cominciare
  5. il tratto in via dei Petroli è oggetto di frequenti interruzioni per lavori ed allagamenti dopo forti piogge;
  6. la corsia ciclabile sul cavalca-ferrovia verso via Torino è chiusa per lavori nella stazione; il ciclista deve usare invece il sottopassaggio sbucando in via Paganello strada poco trafficata, ma non più pista ciclabile.


Continua dalla pagina → Anno 2017


Collegamenti e fonti

Il 21 dicembre 2012 il comune di Venezia aveva presentato un più modesto progetto per un collegamento ciclabile da Mestre a Venezia, nel quale la passerella a doppio senso era limitata solo alle ultime centinaia di metri dove c'era uno stretto budello tra balaustra e guardrail. È il progetto in corso: la passerella è stata completata nel 2016, la ciclabile lungo la SR 11 dovrebbe, dovrebbe essere completata nel 2017. X
X

Nel 1994 quando mi trasferii a Venezia da Roma, c'era una corsia ciclabile all'altezza del Vega (Fiera di Venezia) poi alcuni tratti su stradine lungo il porto, infine dalla fine di via dell'Idraulica, circa 750 m sulla SR 11 in mezzo a un traffico pesantissimo e lanciato ad alta velocità prima di arrivare all'imbocco del ponte, dove c'era già una corsia ciclabile ricavata sul vecchio marciapiede. Nel verso opposto da Venezia a Mestre situazione simile perché il primo tratto da piazzale Roma alla ciclabile sul ponte è più lungo e con diversi punti critici e piuttosto pericolosi, mentre alla fine del ponte ci si ritrova sulla SR 11 nonostante sulla destra ci sia una spazio tra la ferrovia e la strada che potrebbe benissimo ospitare una ciclabile.

X Il gas radon è un gas di origine naturale debolmente radioattivo, considerato responsabile di circa il 5% dei morti di cancro in Italia (il rimanente 95% è dovuto al fumo di sigaretta); in piccole quantità è presente dappertutto, in quantità maggiore nelle regioni con rocce vulcaniche come il tufo che emettono naturalmente radon, come nella provincia di Viterbo dove il livello di gas radon è al di sopra della media. È considerato pericoloso soprattutto quando si accumula in ambienti chiusi.