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]);
}