(data e ora: $fotoData)"; } return $caption; } function SegnaLuoghi($lat0, $lon0, $lat1, $lon1, $icona){ global $Connesso; $cur = $Connesso->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 ($Connesso->error) echo $Connesso->error; $result = ''; while ($riga = $cur->fetch_row()) { $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 $Connesso; global $Deg2Rad; global $SLat; global $SLon; $lat = 45.6; $lon = 12.3; $zoom = 10; $curP = $Connesso->query("SELECT CLat, CLon, zoom FROM percorsi.riepilogo WHERE nome = '$percorso'"); if ($Connesso->error) echo $Connesso->error; if ($rigaP = $curP->fetch_row()) { $lat = $rigaP[0]; $lon = $rigaP[1]; $zoom = $rigaP[2]; } else { $curP = $Connesso->query("SELECT min($SLat), min($SLon), max($SLat), max($SLon) FROM $percorso"); if ($Connesso->error) echo $Connesso->error; if ($rigaP = $curP->fetch_row()) { $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 = $Connesso->query("SELECT min($SLat), min($SLon), max($SLat), max($SLon) FROM $percorso"); if ($Connesso->error) echo $Connesso->error; if ($rigaP = $curP->fetch_row()) { $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 $Connesso; global $SLat; global $SLon; $cur = $Connesso->query("SELECT $SLat, $SLon FROM $percorso ORDER BY ord $verso"); if ($Connesso->error) echo $Connesso->error; $line = ''; $ulat = 0; $ulon = 0; while ($riga = $cur->fetch_row()) { $line .= EncodeChar($riga[0] - $ulat); $line .= EncodeChar($riga[1] - $ulon); $ulat = $riga[0]; $ulon = $riga[1]; } return $line; } function GetRPolyline($percorso, $verso, $riduci){ global $Connesso; global $SLat; global $SLon; $cur = $Connesso->query("SELECT $SLat, $SLon FROM percorsi.$percorso ORDER BY ord $verso"); if ($Connesso->error) echo $Connesso->error; $line = array(); $ind = 0; $indR = 0; while ($riga = $cur->fetch_row()) { if ($ind == 0) $line[$indR++] = "$riga[0], $riga[1]"; ++$ind; if ($ind == $riduci) $ind = 0; } return $line; } function GetPolylineSQL($sqlCom){ global $Connesso; $cur = $Connesso->query($sqlCom); if ($Connesso->error) echo $Connesso->error; $line = array(); $ind = 0; while ($riga = $cur->fetch_row()) { $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 $Connesso; global $SLat; global $SLon; $cur = $Connesso->query("SELECT $SLat, $SLon FROM $percorso ORDER BY ord $verso"); // $cur = $Connesso->query("SELECT $SLat, $SLon FROM percorsi.$percorso ORDER BY ord $verso"); if ($Connesso->error) echo $Connesso->error; $line = '['; // $line = ''; $ind = 0; $sep = ''; while ($riga = $cur->fetch_row()) { $line .= $sep."new google.maps.LatLng($riga[0], $riga[1])"; $sep = ', '; } return $line.']'; } function GetInfoWindow($percorso){ global $Connesso; $cur = $Connesso->query("SELECT lat, lon, legenda FROM percorsi.$percorso WHERE rango > 0"); if ($Connesso->error) echo $Connesso->error; $info = array(); $ind = 0; while ($riga = $cur->fetch_row()) { $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){ global $Connesso; $cur = $Connesso->query("SELECT CLat, CLon FROM percorsi.riepilogo WHERE nome = '$nome'"); if ($riga = $cur->fetch_row()) { $CLat = $riga[0]; $CLon = $riga[1]; } } function JS_Itinerario($nome, $colore){ global $Connesso; $cur = $Connesso->query("SELECT nome, titolo, url_pagina, ordine FROM percorsi.riepilogo WHERE nome = '$nome'"); $JScode = "Percorso = ["; if ($riga = $cur->fetch_row()) { $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){ global $Connesso; $cur = $Connesso->query(" SELECT nome, titolo, url_pagina, ordine FROM percorsi.riepilogo r, percorsi.percorsiMappe m $where AND r.nome = m.percorso ORDER BY ordine "); if ($Connesso->error) echo "$where - ".$Connesso->error; $P_ind = 0; $colore = array('#A03030', '#3030A0', '#308030', '#30A0A0', '#A0A030', '#A030A0', '#202020'); $JScode = ''; while ($riga = $cur->fetch_row()) { $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){ global $Connesso; $cur = $Connesso->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 ($Connesso->error) echo $Connesso->error; while ($riga = $cur->fetch_row()) { $foto = $riga[7]; if (!isset($foto) || (strlen($foto) < 3)) { $sigla = $riga[8]; $curF = $Connesso->query(" SELECT f.foto FROM bici.villevenete v, bici.villeFoto f WHERE v.sigla = f.villa AND v.sigla = '$sigla' LIMIT 1 "); if ($rigaF = $curF->fetch_row()) $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){ global $Connesso; $cur = $Connesso->query("SELECT lat, lon FROM percorsi.percorsiFoto WHERE percorso = '$percorso'"); if ($Connesso->error) echo "$where - ".$Connesso->error; $locaIgnote = 0; while ($riga = $cur->fetch_row()) { if (!isset($riga[0])) ++$localIgnote; if (!isset($riga[1])) ++$localIgnote; } return $localIgnote; } function JS_FotoVilla($villa, $icona){ // foto villa dove? global $Connesso; $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 = $Connesso->query($sqlCom); if ($Connesso->error) echo $Connesso->error; $fotoList = ''; $conta = 0; while ($riga = $cur->fetch_row()) { $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){ global $Connesso; $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 = $Connesso->query($sqlCom); if ($Connesso->error) echo $Connesso->error; $fotoList = ''; $conta = 0; while ($riga = $cur->fetch_row()) { $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){ global $Connesso; $cur = $Connesso->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 ($Connesso->error) echo $Connesso->error; $fotoList = ''; while ($riga = $cur->fetch_row()) { $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){ global $Connesso; 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 = $Connesso->query($sqlCom); $semitappe = array(); $ord = -1; $udata = ''; while ($riga = $cur->fetch_row()) { $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 = ''; $Connesso->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 = $Connesso->query($sqlCom); $acapo = 0; while ($rigaT = $curT->fetch_row()) { $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 global $Connesso; $cur = $Connesso->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 ($Connesso->error) echo $Connesso->error; $JScode = ''; while ($riga = $cur->fetch_row()) { $foto = $riga[7]; $sigla = $riga[8]; if (!isset($foto) || (strlen($foto) < 3)) { $sigla = $riga[8]; $curF = $Connesso->query(" SELECT f.foto FROM bici.villevenete v, bici.villeFoto f WHERE v.sigla = f.villa AND v.sigla = '$sigla' LIMIT 1 "); if ($rigaF = $curF->fetch_row()) $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); } ?>