Candás

imagen generica de la estación

Las estaciones son algo más que un lugar desde el que subir a un tren o desembarcar del mismo. Además de prestar sus servicios a los viajeros y usuarios, muchas de ellas constituyen una referencia en las localidades donde su ubican.

Aquí se pueden conocer los horarios de llegadas y salidas de la estación, así como los servicios que se ofrecen en su recinto e instalaciones. Para ello acceda a dicha información a través del selector que ponemos a su disposición.

x
Adif en tu móvil
Horarios en tiempo real
Descárgala ya
Instalar
Filtrar por
 

Salidas

Hora de salida Destino Línea Vía
No se ha podido recuperar información de circulación.
 

Llegadas

Hora de llegada Origen Línea Vía
6 min
C4
3
15:58
C4
1
16:14
C4
1
16:26
C4
3
16:49
C4
3
16:50
C4
1
17:13
C4
1
17:26
C4
3
17:49
C4
3
17:50
C4
1
18:14
C4
1
18:26
C4
3
18:49
C4
3
18:50
C4
1
19:14
C4
1
19:26
C4
3
19:49
C4
3
19:50
C4
1
20:14
C4
1
20:26
C4
3
20:49
C4
3
20:50
C4
1
21:14
C4
1
21:26
C4
3
22:14
C4
1
No se ha podido recuperar información de circulación.

Informacion de la estación

  • Dirección

    AVENIDA JOSE MARIA FERNANDEZ LADRERA, 27

Se ha producido un error al procesar la plantilla.
The following has evaluated to null or missing:
==> servicios.id  [in template "20101#20128#ADIF-SERVICIOS-ESTACION-TEMPLATE" at line 35, column 21]

----
Tip: It's the step after the last dot that caused this error, not those before it.
----
Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #if servicios?? && servicios.id.getSi...  [in template "20101#20128#ADIF-SERVICIOS-ESTACION-TEMPLATE" at line 35, column 1]
----
1<script type="text/javascript"> 
2 
3 
4function cierraDetalles(){ 
5   var detalles = $("div[id^='detalleServicio']"); 
6   var iconos = $("[id^='button-detalleServicio']"); 
7   for (let detalle of detalles) { 
8    detalle.style.display = 'none' 
9
10    for (let icono of iconos) { 
11      icono.setAttribute('aria-expanded', 'false'); 
12
13
14 
15  function toggle(id, id2) { 
16 
17     
18        var n = document.getElementById(id); 
19if (n.style.display != 'none')  
20
21	  n.style.display = 'none'; 
22      document.getElementById(id2).setAttribute('aria-expanded', 'false'); 
23
24  else 
25
26  cierraDetalles(); 
27  n.style.display = ''; 
28  document.getElementById(id2).setAttribute('aria-expanded', 'true'); 
29
30
31   
32 
33  </script> 
34 
35<#if servicios?? && servicios.id.getSiblings()?has_content> 
36	<div class="title-servicios"> 
37    	<h3><@liferay.language key="es.adif.estacion.servicios"/></h3> 
38	</div> 
39    <@listPaint servicios.id.getSiblings() ""/>	 
40</#if> 
41 
42<#if serviciosAdaptados?? && serviciosAdaptados.idAdaptados.getSiblings()?has_content> 
43	<div class="title-servicios"> 
44    	<h3><@liferay.language key="es.adif.estacion.servicios-adaptados"/></h3> 
45	</div> 
46    <@listPaint serviciosAdaptados.idAdaptados.getSiblings() "Adaptados"/>	 
47</#if> 
48 
49<#macro listPaint lista texto> 
50         
51    <@orderServicesList lista texto/> 
52     
53	<#list listaOrdenada as cur_id> 
54 
55	    <#if cur_id?index %3 == 0> 
56			<#assign 
57	        hay1 = listaOrdenada[cur_id?index+1]?? 
58	        hay2 = listaOrdenada[cur_id?index+2]?? 
59	      /> 
60	      <div class="servicios-estacion" id="servicios-estacion"> 
61	        <@boxPaint cur_id cur_id?index texto/> 
62	         <#if hay1> 
63	        <@boxPaint listaOrdenada[cur_id?index+1] cur_id?index+1 texto/> 
64	            <#if hay2> 
65	             <@boxPaint listaOrdenada[cur_id?index+2] cur_id?index+2 texto/> 
66	            </#if> 
67	         </#if> 
68	         </div> 
69	         <@detailPaint cur_id cur_id?index texto/> 
70	          <#if hay1> 
71	            <@detailPaint listaOrdenada[cur_id?index+1] cur_id?index+1 texto/> 
72	           <#if hay2> 
73	            <@detailPaint  listaOrdenada[cur_id?index+2] cur_id?index+2 texto/> 
74	            </#if> 
75	           </#if> 
76	    </#if> 
77	     
78	</#list> 
79 
80</#macro> 
81 
82<#macro boxPaint elem index texto> 
83	<#if texto!="Adaptados"> 
84		<#if elem.popServicios.getData() ?? && elem.popServicios.getData() != ""> 
85			<button class="linkServiciosDesp" id="button-detalleServicio${texto}-${index}" aria-expanded="false" aria-controls="detalleServicio${texto}-${index}" onclick="toggle('detalleServicio${texto}-${index}', 'button-detalleServicio${texto}-${index}')"> 
86		</#if> 
87		<div class="servicio-estacion" id="iconoServicio${texto}-${index}"> 
88			<div class="servicio-estacion-icono" style="background-image:url('${elem.icono.getData()}')"></div><!-- /.servicio-estacion-icono --> 
89			<div class="servicio-estacion-datos"> 
90				<h4>${elem.titulo.getData()}</h4> 
91				<p class="descripcion-servicios">${elem.descripcionServicios.getData()}</p> 
92				<#if elem.popServicios.getData() ?? && elem.popServicios.getData() != ""> 
93					<p class="detalle-mas-informacion"> 
94					<span class="texto_servicios_responsive" data-desktoptext="Más información" data-phonetext="+"></span> 
95					</p> 
96				</#if> 
97			</div> 
98		</div> 
99		<#if elem.popServicios.getData() ?? && elem.popServicios.getData() != ""> 
100		</button> 
101		</#if> 
102	<#else> 
103		<#if elem.popAdaptados.getData() ?? && elem.popAdaptados.getData() != ""> 
104		<button class="linkServiciosDesp" id="button-detalleServicio${texto}-${index}" aria-expanded="false" aria-controls="detalleServicio${texto}-${index}" onclick="toggle('detalleServicio${texto}-${index}', 'button-detalleServicio${texto}-${index}')"> 
105		</#if> 
106		<div class="servicio-estacion" id="iconoServicio${texto}-${index}"> 
107			<div class="servicio-estacion-icono" style="background-image:url('${elem.iconoAdaptados.getData()}'"></div><!-- /.servicio-estacion-icono --> 
108			<div class="servicio-estacion-datos"> 
109				<h4>${elem.tituloAdaptados.getData()}</h4> 
110				<p class="descripcion-servicios">${elem.descripcionAdaptados.getData()}</p> 
111				<#if elem.popAdaptados.getData() ?? && elem.popAdaptados.getData() != ""> 
112					<p class="detalle-mas-informacion"> 
113						<span class="texto_servicios_responsive" data-desktoptext="Más información" data-phonetext="+"></span> 
114					</p> 
115				</#if> 
116			</div> 
117		</div> 
118		<#if elem.popAdaptados.getData() ?? && elem.popAdaptados.getData() != ""> 
119		</button> 
120		</#if> 
121	</#if> 
122</#macro> 
123 
124<#macro detailPaint elem index texto> 
125<#if texto!="Adaptados"> 
126	<div role="region" aria-labelledby="button-detalleServicio${texto}-${index}" class="servicios-estacion" id="detalleServicio${texto}-${index}" style="display:none"> 
127		<div class="servicio-estacion servicio-estacion-detalle servicio-estacion-detalle-${index%3} "> 
128			<div class="servicio-estacion-icono" style="background-image:url('${elem.icono.getData()}')"></div><!-- /.servicio-estacion-icono --> 
129			<div class="servicio-estacion-datos"> 
130				<h4>${elem.titulo.getData()}</h4> 
131				${elem.popServicios.getData()} 
132				<p> 
133					<button aria-label="<@liferay.language key="navigation.cerrar" /> ${elem.titulo.getData()}" class="btn-close-adif"  type="button" onclick="toggle('detalleServicio${texto}-${index}', 'button-detalleServicio${texto}-${index}')">&times;</button> 
134					 
135				</p> 
136			</div> 
137		</div> 
138	</div> 
139<#else> 
140	<div role="region" aria-labelledby="button-detalleServicio${texto}-${index}" class="servicios-estacion" id="detalleServicio${texto}-${index}" style="display:none"> 
141		<div class="servicio-estacion servicio-estacion-detalle servicio-estacion-detalle-${index%3}"> 
142			<div class="servicio-estacion-icono" style="background-image:url('${elem.iconoAdaptados.getData()}'"></div><!-- /.servicio-estacion-icono --> 
143			<div class="servicio-estacion-datos"> 
144				<h4>${elem.tituloAdaptados.getData()}</h4> 
145				${elem.popAdaptados.getData()} 
146				<p> 
147					<button class="btn-close-adif" aria-label="<@liferay.language key="navigation.cerrar" /> ${elem.tituloAdaptados.getData()}" type="button" onclick="toggle('detalleServicio${texto}-${index}', 'button-detalleServicio${texto}-${index}')">&times;</button> 
148				</p> 
149			</div> 
150		</div> 
151	</div> 
152</#if> 
153 
154</#macro> 
155 
156<#macro orderServicesList lista texto> 
157    <#assign lista2 = []> 
158    <#assign lista3 = lista> 
159    <#assign stop = true> 
160    <#assign run = true> 
161    <#assign iteraciones = lista3?size*lista3?size> 
162    <#list 0..iteraciones as i> 
163        <#assign run = false> 
164        <#assign saltarSiguiente = false> 
165        <#list lista3 as cur_elem> 
166            <#if !saltarSiguiente> 
167	            <#if !cur_elem?is_last > 
168	                <#if (texto=="Adaptados" && esMayor(cur_elem.tituloAdaptados.getData(),lista3[cur_elem?index+1].tituloAdaptados.getData())) 
169	                 || (texto!="Adaptados" && esMayor(cur_elem.titulo.getData(),lista3[cur_elem?index+1].titulo.getData()))> 
170	                    <#assign run = true> 
171	                    <#assign lista2 = lista2 + [lista3[cur_elem?index+1], cur_elem]> 
172	                    <#assign saltarSiguiente = true> 
173	                <#else> 
174	                    <#assign lista2 = lista2 + [cur_elem]/> 
175	                </#if> 
176	            <#else> 
177	            	<#assign lista2 = lista2 + [cur_elem]> 
178	            </#if> 
179	        <#else> 
180	        	<#assign saltarSiguiente = false/> 
181            </#if> 
182        </#list> 
183        <#if !run> 
184            <#break> 
185        </#if> 
186        <#assign lista3 = lista2> 
187        <#assign lista2 = []> 
188    </#list> 
189     
190    <#assign listaOrdenada = lista3> 
191</#macro> 
192 
193<#function esMayor string1 string2> 
194    <#assign strings = [string1,string2]?sort> 
195    <#return strings[0]==string2> 
196</#function>