Viana

Estación de Viana. Vista fachada principal desde exterior.

Geltokiak tren batera igotzeko edo handik jaisteko toki bat baino gehiago dira. Bidaiari eta erabiltzaileei zerbitzuak emateaz gain, horietako asko erreferentzia dira haiek dauden herrietan.

Hemen, geltokiko iritsiera- eta irteera-ordutegiak, eta bertan eskaintzen diren zerbitzuak eta instalazioak ezagutu daitezke. Horretarako, eskuratu informazio hori zure eskura jartzen dugun hautagailuaren bidez.

x
Adif en tu móvil
Horarios en tiempo real
Descárgala ya
Instalar
Iragazi honen arabera:
 

Irteera

Irteera-ordua Helmuga Trena Bidea
Ezin izan da zirkulazioari buruzko informazioa berreskuratu.
 

Iritsierak

Iritsiera-ordua Jatorria Trena Bidea
13:14
RF - REGIONAL EXPRES17218
4
Compartido: Proximidad 38218 Valladolid Campo Grande - Medina del Campo
14:35
RF - MD18004
4
Compartido: Proximidad 38004 Valladolid Campo Grande - Medina del Campo
15:26
RF - MD18306
1
Compartido: Proximidad 38306 Medina del Campo - Palencia
16:45
RF - REGIONAL EXPRES17221
1
Compartido: Proximidad 38221 Medina del Campo - Valladolid Campo Grande
16:46
RF - PROXIMIDAD18218
4
18:01
RF - REGIONAL EXPRES18322
4
Compartido: Proximidad 38322 Valladolid Campo Grande - Medina del Campo
19:09
RF - REGIONAL EXPRES18318
4
Compartido: Proximidad 38318 Valladolid Campo Grande - Medina del Campo
20:02
RF - REGIONAL EXPRES17200
4
Compartido: Proximidad 38200 Valladolid Campo Grande - Medina del Campo
21:33
RF - MD18316
4
Compartido: Proximidad 38316 Valladolid Campo Grande - Medina del Campo
22:07
RF - REGIONAL EXPRES18312
1
Compartido: Proximidad 38312 Medina del Campo - Valladolid Campo Grande
22:51
RF - REGIONAL EXPRES17226
1
07:17
RF - PROXIMIDAD17227
1
09:46
RF - REGIONAL EXPRES17203
1
Compartido: Proximidad 38203 Medina del Campo - Valladolid Campo Grande
10:11
RF - REGIONAL EXPRES18325
1
13:14
RF - REGIONAL EXPRES17218
4
Compartido: Proximidad 38218 Valladolid Campo Grande - Medina del Campo
14:35
RF - MD18004
4
Compartido: Proximidad 38004 Valladolid Campo Grande - Medina del Campo
15:26
RF - MD18306
1
Compartido: Proximidad 38306 Medina del Campo - Palencia
16:45
RF - REGIONAL EXPRES17221
1
Compartido: Proximidad 38221 Medina del Campo - Valladolid Campo Grande
16:46
RF - PROXIMIDAD18218
4
18:01
RF - REGIONAL EXPRES18322
4
Compartido: Proximidad 38322 Valladolid Campo Grande - Medina del Campo
19:09
RF - REGIONAL EXPRES18318
4
Compartido: Proximidad 38318 Valladolid Campo Grande - Medina del Campo
20:02
RF - REGIONAL EXPRES17200
4
Compartido: Proximidad 38200 Valladolid Campo Grande - Medina del Campo
21:33
RF - MD18316
4
Compartido: Proximidad 38316 Valladolid Campo Grande - Medina del Campo
22:07
RF - REGIONAL EXPRES18312
1
Compartido: Proximidad 38312 Medina del Campo - Valladolid Campo Grande
22:51
RF - REGIONAL EXPRES17226
1
Ezin izan da zirkulazioari buruzko informazioa berreskuratu.

Geltokiaren informazioa

  • Helbidea

    C/ Estación Ferrocarril, s/n --- 47150 Viana de Cega --- VALLADOLID

  • Ordutegia

    Acceso garantizados andenes

Errorea gertatu da txantiloia prozesatzerakoan.
The following has evaluated to null or missing:
==> serviciosAdaptados.idAdaptados  [in template "20101#20128#ADIF-SERVICIOS-ESTACION-TEMPLATE" at line 42, column 30]

----
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 serviciosAdaptados?? && servicios...  [in template "20101#20128#ADIF-SERVICIOS-ESTACION-TEMPLATE" at line 42, 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>