Quels sont les secrets des régions asturiennes ? Chaque recoin de notre paradis naturel vous offre une expérience unique. Des itinéraires de cyclotourisme conçus pour tous les niveaux, des routes tranquilles, des paysages de rêve et une gastronomie qui vous séduira. Profitez du cyclotourisme dans les Asturies en vous connectant à la nature et en prenant soin de l'environnement. Pédalez au bord de la mer Cantabrique, escaladez les cols de montagne les plus difficiles, roulez à un rythme lent dans les vallées et explorez les charmants villages qui vous attendent dans chaque région.
Choisissez votre destination et explorez les Asturies à vélo !

Choisissez votre destination cyclotouristique

Des balades tranquilles sur la côte aux parcours de montagne exigeants, notre région vous offre une multitude d'options pour pédaler et profiter de paysages à couper le souffle et de villages pittoresques.

Une erreur s'est produite lors du traitement du gabarit.
Template inclusion failed (for parameter value "_TEMPLATE_CONTEXT_/37703/39908/35601/NAVIGATION-MACRO-FTL"):
Unable to find FreeMarker template with ID _TEMPLATE_CONTEXT_/37703/39908/35601/NAVIGATION-MACRO-FTL

----
FTL stack trace ("~" means nesting-related):
	- Failed at: #include "${templatesPath}/NAVIGATION...  [in template "37703#37743#10913689" at line 1, column 1]
----
1<#include "${templatesPath}/NAVIGATION-MACRO-FTL" /> 
2 
3<#assign navItems = entries /> 
4<#if navItems?has_content> 
5 
6	 
7	<#assign itemsSize = getterUtil.getInteger(entries?size)/> 
8	<#assign portletSetupCustomTitle = "" /> 
9	<#assign portletSetupCustomDescription = "" /> 
10	<#if portletDisplay.getPortletSetup()??> 
11		<#assign portletSetupCustomTitle = portletDisplay.getPortletSetup().getValue("portletSetupTitle_${themeDisplay.getLanguageId()}", "") /> 
12		<#assign portletSetupCustomTitleHTMLMarkup = portletDisplay.getPortletSetup().getValue("portletSetupCustomTitleHTMLMarkup", "") /> 
13		<#assign portletSetupCustomDescription = portletDisplay.getPortletSetup().getValue("portletSetupDescription_${themeDisplay.getLanguageId()}", "") /> 
14	</#if> 
15	<#assign uuidBannerDefault = themeDisplay.getLayoutSet().getSettingsProperty("banner")!""/> 
16	<#assign pathBannerDefault = ""/> 
17	<#if uuidBannerDefault!=""> 
18		<#assign pathBannerDefault= dlTool.getPathByUuid(uuidBannerDefault, groupId)/> 
19	</#if> 
20	<nav class="template template-home-weather"> 
21	 
22		<div class="row"> 
23	 
24			<div class="col-12"> 
25	 
26				<div class="row row-menu-weather gx-5 gy-5"> 
27					<#if itemsSize gte 1> 
28						<#if validator.isNotNull(navItems[0])>					 
29							<#assign navItem1= navItems[0]!/> 
30							<#if validator.isNotNull(navItem1.getLayout()) && validator.isNotNull(navItem1.getLayout())> 
31								<#assign layout = navItem1.getLayout()! /> 
32								<#assign layoutName = layout.getName(locale) /> 
33								<#assign layoutTitle = layoutTool.getTitle(layout, locale)! /> 
34								<#assign layoutDescription = layoutTool.getDescription(layout, locale)! /> 
35								<#assign layoutImageUuid = layoutTool.getLayoutSetting(layout, "image")! /> 
36								<#assign layoutImage = dlTool.getThumbnailByUuid(layoutImageUuid, themeDisplay.getScopeGroupId(), "3", pathBannerDefault)! /> 
37								<div class="col-xl-6 col-lg-12 col-md-12 col-sm-12 first"> 
38									<a class="card card-background card-background-title-middle" href="${navItem1.getURL()}" title="${languageUtil.format(request, 'go-to-x', layoutName)}"> 
39										<span class="d-block image-wrapper aspect-ratio-bg-cover" style="background-image: url('${layoutImage}');"> 
40											<img class="hide-accessible" src="${layoutImage}" alt="${languageUtil.get(request,'image')} ${layoutName}"/>								 
41											<span class="card-body"> 
42												<span class="card-title" >${navItem1.getName()}</span> 
43											</span> 
44										</span> 
45									</a> 
46								</div> 
47							</#if> 
48						</#if> 
49					</#if> 
50					 
51					<#if itemsSize gte 2> 
52						<#if navItems[1]?has_content>					 
53							<#assign navItem2 = navItems[1]!/> 
54							<#if validator.isNotNull(navItem2.getLayout()) && validator.isNotNull(navItem2.getLayout())> 
55								<#assign layout = navItem2.getLayout()! /> 
56								<#assign layoutName = layout.getName(locale) /> 
57								<#assign layoutTitle = layoutTool.getTitle(layout, locale)! /> 
58								<#assign layoutIcon = navItem2.iconURL()! /> 
59								<#assign layoutDescription = layoutTool.getDescription(layout, locale)! /> 
60								<#assign layoutImageUuid = layoutTool.getLayoutSetting(layout, "image")! /> 
61								<#assign layoutImage = dlTool.getThumbnailByUuid(layoutImageUuid, themeDisplay.getScopeGroupId(), "3", pathBannerDefault)! /> 
62								<div class="col col-video"> 
63									<a class="card card-background card-background-title-middle" href="${navItem2.getURL()}" title="${languageUtil.format(request, 'go-to-x', layoutName)}"> 
64										<span class="d-block image-wrapper aspect-ratio-bg-cover" style="background-image: url('${layoutImage}');"> 
65											<img class="hide-accessible" src="${layoutImage}" alt="${languageUtil.get(request,'image')} ${layoutName}"/>								 
66											<span class="card-body"> 
67												<#if validator.isNotNull(layoutIcon)> 
68												<span class="image-icon-wrapper"> 
69													<img class="icon" src="${layoutIcon}" alt="play"/> 
70												</span> 
71												</#if> 
72												<span class="card-title" >${navItem2.getName()}</span> 
73											</span> 
74										</span> 
75									</a> 
76								</div> 
77							</#if> 
78						</#if> 
79					</#if> 
80					<#assign jsonWeather = weatherTool.getWeather(request, "33024", false)! /> 
81					<div class="col-xl-2dot4 col-lg-4 col-md-12 col-sm-12 col-weather"> 
82						<#if jsonWeather?has_content> 
83						 
84							<div class="weather items text-white d-block"> 
85								<div class="weather-info  image-wrapper aspect-ratio-bg-cover"> 
86								<#assign weatherImage = weatherTool.getDayImage(0, jsonWeather)! /> 
87								<#assign weatherTemperature = weatherTool.getDayTemperature(0, jsonWeather)! /> 
88								<#assign weatherTemperatureMax = weatherTool.getDayTemperatureMax(0, jsonWeather)! /> 
89								<#assign weatherTemperatureMin = weatherTool.getDayTemperatureMin(0, jsonWeather)! /> 
90								<#assign statusDescription = weatherTool.getDayStatusDescription(0, jsonWeather)! /> 
91 
92									<span class="d-block weather-container"> 
93										<span class="weather-label d-lg-block"> 
94											${portletSetupCustomTitle} 
95										</span> 
96										 
97										<#if weatherImage?has_content || weatherTemperature?has_content> 
98											<span class="d-flex align-items-center temperature-wrapper"> 
99												<#if weatherImage?has_content> 
100													<img class="visible" src="${themeDisplay.getPathThemeRoot()}/images/aemet/max/${weatherImage}_g.png" alt="El tiempo" /> 
101												</#if> 
102												 
103												<#if weatherTemperature?has_content> 
104													<span class="temperature" >${weatherTemperature}º</span> 
105												</#if> 
106											</span> 
107										</#if> 
108										<span class="range-temperatures d-flex align-items-center flex-wrap"> 
109											<#if statusDescription?has_content> 
110												<span class="status-description mr-2 <#if locale!=themeDisplay.getSiteDefaultLocale()>hide</#if>">${statusDescription}</span> 
111											</#if> 
112											<span class="min-max-wrapper"> 
113												<span class="value"> 
114													${weatherTemperatureMax}º/${weatherTemperatureMin}º 
115												</span> 
116											</span> 
117										</span> 
118									</span> 
119								</div> 
120							</div> 
121						</#if> 
122					</div> 
123				</div> 
124			</div> 
125		</div> 
126	</nav> 
127</#if>