public static function getArregloLineas() { $lineas = array(); for ($idLinea = 1; $idLinea <= RedMetro::$numLineas; $idLinea++) { foreach (RedMetro::construyePuntosGrafica($idLinea, $pixeles, $opacidad) as $punto) { } } }
public static function calculaRuta($idEstacionOrigen, $idEstacionDestino) { $tramos = RedMetro::construyeGrafo(); $dijkstra = new Dijkstra($idEstacionOrigen, $tramos); $puntosCamino = $dijkstra->getCompletePathToNode($idEstacionDestino); $camino = array(); // construye tramos y transbordos for ($i = 0; $i < count($puntosCamino) - 1; $i++) { $estacionOrigen = RedMetro::buscaEstacion($puntosCamino[$i]); $estacionDestino = RedMetro::buscaEstacion($puntosCamino[$i + 1]); if ($estacionOrigen->getNombre() == $estacionDestino->getNombre()) { $puntosRuta[] = new Transbordo($estacionOrigen, $estacionDestino); } else { $direccion = $estacionOrigen->getLinea()->determinaDireccion($estacionOrigen, $estacionDestino); $puntosRuta[] = new Tramo($estacionOrigen, $estacionDestino, $direccion); } } // crea ruta y agrega tramos integrados y transbordos $ruta = new Ruta(RedMetro::obtenDistancia($puntosRuta), $dijkstra->getDistanceToNode($idEstacionDestino)); return self::construyeRuta($ruta, $puntosRuta); }
public static function imprimeLineasJavascript() { $lineas = RedMetro::buscaLineas(); // Construccion de arreglo para poder utilizar json_encode con las propiedades privadas $arrLineas = array(); foreach ($lineas as $linea) { $arrLineas[] = array('id' => null, 'nombre' => null, 'colorHex' => null, 'icono' => null, 'estaciones' => null); $arrLineas[sizeof($arrLineas) - 1]['id'] = $linea->getID(); $arrLineas[sizeof($arrLineas) - 1]['nombre'] = utf8_encode($linea->getNombre()); $arrLineas[sizeof($arrLineas) - 1]['colorHex'] = $linea->getColorHEX(); $arrLineas[sizeof($arrLineas) - 1]['icono'] = $linea->getIcono(); $arrLineas[sizeof($arrLineas) - 1]['estaciones'] = array(); $arrEstaciones =& $arrLineas[sizeof($arrLineas) - 1]['estaciones']; foreach ($linea->getEstaciones() as $estacion) { $arrEstaciones[] = array('id' => null, 'nombre' => null, 'latitud' => null, 'longitud' => null, 'icono' => null); $arrEstaciones[sizeof($arrEstaciones) - 1]['id'] = $estacion->getId(); $arrEstaciones[sizeof($arrEstaciones) - 1]['nombre'] = utf8_encode($estacion->getNombre()); $arrEstaciones[sizeof($arrEstaciones) - 1]['latitud'] = $estacion->getLatitud(); $arrEstaciones[sizeof($arrEstaciones) - 1]['longitud'] = $estacion->getLongitud(); $arrEstaciones[sizeof($arrEstaciones) - 1]['icono'] = $estacion->getIcono(); } } echo json_encode($arrLineas); }
<?php include 'clases/RedMetro.php'; header('content-type: application/json; charset=utf-8'); if (isset($_GET['multiples'])) { $estaciones = RedMetro::buscaEstacionesCercanas($_POST["latitud"], $_POST["longitud"], 10); echo '<ul data-role="listview">'; foreach ($estaciones as $estacion) { echo '<li><img src="imgs/iconosEstaciones/' . $estacion->id . '.png" class="ui-li-icon ui-li-thumb"><a href="#">'; echo '<h4>' . $estacion->nombre . '</h4>'; echo '<p>' . round($estacion->distancia, 2) . ' km.</p>'; echo '</a></li>'; } echo '</ul>'; } else { $estaciones = RedMetro::buscaEstacionesCercanas($_POST["latitud"], $_POST["longitud"], 1); echo json_encode($estaciones[0]); }