Éditeur d'actif
Extension de la ligne D du tramway vers Kehl
Dans le cadre du projet Deux-Rives, l'extension du tram D vers Kehl propose une offre de mobilité adaptée à une métropole transfrontalière à 360° ouverte sur le monde et adaptée aux besoins des habitant·es.
Éditeur d'actif
Inauguration de la station de tram à la gare de Kehl
Détail Entité
Java method "jdk.proxy3.$Proxy112.getUser(long)" threw an exception when invoked on jdk.proxy3.$Proxy112 object "com.liferay.message.boards.internal.service.MBMessageUserLocalServiceWrapper@6481925"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign user = UserLocalService.getUs... [in template "20116#20160#2532055" at line 15, column 1]
----
1<!-- DETAIL D'UN PROJET -->
2
3<#-- Recuperation de l'URL de "base" du site -->
4<#if !themeDisplay.scopeGroup.publicLayoutSet.virtualHostnames?has_content || themeDisplay.scopeGroup.isStagingGroup()>
5 <#assign homeURL = "/web${layout.group.friendlyURL}/" />
6<#else>
7 <#assign homeURL = "/" />
8</#if>
9
10<#-- Récupération de l'ID de l'utilisateur -->
11<#assign userID = request.session.getAttribute("publik_internal_id")!"" />
12
13<#-- Recuperation du créateur du projet -->
14<#assign UserLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.UserLocalService")/>
15<#assign user = UserLocalService.getUser(entry.getStatusByUserId()) />
16
17<#-- L'utilisateur participe-t-il ? -->
18<#assign isUserFollowsActive = entry.isUserFollows(userID)?then("active", "") >
19
20<#-- Recuperation des entités lies au projet -->
21<#assign projectPlaces = entry.getPlacitPlaces() />
22<#assign projectEvents = entry.getEvents() />
23<#assign projectParticipations = entry.getParticipations() />
24
25<#-- Initialisation des conteneurs de vignettes -->
26<#assign projectJSON = entry.toJSON(userID) />
27<#assign projectPlacesMercators = [] />
28<#assign eventsJSON = [] />
29<#assign participationsJSON = [] />
30
31<#-- Recuperation des données JSON de chaque entité liées -->
32<#list projectEvents as event >
33 <#if event?has_content>
34 <#assign eventsJSON = eventsJSON + [event.toJSON(userID)] />
35 </#if>
36</#list>
37
38<!-- vignette -->
39<#list projectParticipations as participation >
40 <#if participation?has_content>
41 <#assign participationsJSON = participationsJSON + [participation.toJSON(themeDisplay)] />
42 <#list participation.getEvents() as event >
43 <#if event?has_content>
44 <#assign eventsJSON = eventsJSON + [event.toJSON(userID)] />
45 </#if>
46 </#list>
47 </#if>
48</#list>
49
50<#assign cssClass>
51 <#switch user.getScreenName()>
52 <#case "placit_strasbourg">couleur-ville<#break>
53 <#case "placit_ems">couleur-eurometropole<#break>
54 <#case "placit_strasbourg_ems">couleur-commune<#break>
55 <#default>couleur-ville<#break>
56 </#switch>
57</#assign>
58
59
60<div id="breadcrumb">
61 <span>
62 <span>
63 <a href="${homeURL}">Accueil</a>
64 <a href="${homeURL}projets">Les projets</a>
65 <span class="breadcrumb_last">${entry.title}</span>
66 </span>
67 </span>
68</div>
69
70<div class="pro-bloc-bref">
71 <h3>En bref</h3>
72 <ul>
73 <#if entry.budget?has_content>
74 <li><span class="pro-euros">€</span> <strong>Budget : </strong>${entry.budget}</li>
75 </#if>
76 <#if entry.label?has_content>
77 <li><span class="icon-ico-label"></span> <strong>Label : </strong>${entry.label}</li>
78 </#if>
79 <#if entry.duration?has_content>
80 <li><span class="icon-ico-time"></span> <strong>Durée : </strong>${entry.duration}</li>
81 </#if>
82 <#if entry.getPartners(locale)?has_content>
83 <li><span class="icon-ico-partenaire"></span> <strong>Les partenaires : </strong>${entry.getPartners(locale)}</li>
84 </#if>
85 </ul>
86</div>
87
88<!-- Fiche de l'entité -->
89<div class="col-lg-4-to-move ${cssClass}">
90 <div>
91
92
93 <!-- Bloc : map -->
94 <div class="bloc-iframe leaflet-map" id="mapid" ></div>
95
96 <!-- Bloc : Compteur de suivi -->
97 <div class="pro-compteur">
98 <span class="pro-compt">${entry.getNbFollowerLabel()}</span>
99 <p>Citoyens(nes) suivent ce projet</p>
100 <a href="#Suivre" class="pro-btn-action ${isUserFollowsActive}"
101 data-projectid="${entry.projectId}"
102 data-groupid="${entry.groupId}"
103 title="Suivre ce projet">
104 <#if isUserFollowsActive?has_content>
105 Projet suivi
106 <#else>
107 Suivre ce projet
108 </#if>
109 </a>
110 </div>
111
112 <!-- Bloc : entités liées -->
113 <div class="pro-event-comming">
114 <a href="#pro-link-participation" title="Vers les participations de la page"><strong>${projectParticipations?size}</strong> démarche(s) publiée(s)</a>
115 <a href="#pro-link-evenement" title="Vers les événements de la page"><strong>${projectEvents?size}</strong> évènement(s) à venir</a>
116 </div>
117
118 <!-- Bloc : contact -->
119 <div class="pro-contact">
120 <h4>Contact</h4>
121 <p>
122 <#if entry.contactName?has_content>
123 <strong> ${entry.contactName}</strong><br>
124 <#if entry.contactLine1?has_content> ${entry.contactLine1} </#if>
125 <#if entry.contactLine2?has_content> <br>${entry.contactLine2} </#if>
126 <#else>
127 <strong>Aucun contact renseigné pour le moment </strong><br>
128 </#if>
129 </p>
130 <a href="tel:${entry.contactPhoneNumber}" title="Numéro de téléphone : ${entry.contactPhoneNumber}">${entry.contactPhoneNumber}</a>
131 </div>
132
133 </div>
134</div>
135
136<style>
137 .pro-page-detail.pro-page-detail-projet section>.pro-wrapper{
138 left : 0px;
139 }
140 .pro-page-detail.pro-page-detail-projet .pro-wrapper .portlet-body>* {
141 margin: 0;
142 padding: 7px 0;
143 }
144 section#pro-link-participation.pro-bloc-slider.pro-slider-participation {
145 background: #EBECEE;
146 }
147 .pro-btn-action.active:after{
148 opacity: 0;
149 }
150
151 .portlet-column-content.empty{
152 padding: 0;
153 }
154
155 .col-md-4 {
156 z-index : 50;
157 }
158</style>
159
160<script>
161 // Récupération des entités en JSON à afficher sur la map et ajout des données dynamiques manquantes
162 var projectJSON = ${projectJSON};
163 projectJSON.link = '${homeURL}' + projectJSON.detailURL;
164
165 var eventsJSON = [
166 <#list eventsJSON as eventJSON>
167 ${eventJSON},
168 </#list>
169 ];
170
171 var participationsJSON = [
172 <#list participationsJSON as participationJSON>
173 ${participationJSON},
174 </#list>
175 ];
176
177 $(document).ready(function() {
178
179 // Déplacement du bloc de la fiche entité
180 $(".col-lg-4-to-move").appendTo(".pro-page-detail-projet .col-lg-12 aside.col-lg-4");
181 if ($('.suggested-projects-to-move').length) {
182 $('.pro-bloc-image-slider.pro-bloc-texte').parents('.portlet-boundary').appendTo('.suggested-projects-to-move');
183 $('.pro-bloc-texte.pro-bloc-telechargements').parents('.portlet-boundary').appendTo('.suggested-projects-to-move');
184 $('#pro-link-participation.pro-bloc-slider.pro-slider-participation').parents('.portlet-boundary').appendTo('.suggested-projects-to-move');
185 }
186 $(".portlet-content>.portlet-title-text").hide();
187
188
189
190
191 // Vérification de l'existance de la timeline verticale
192 // et cache du cercle blanc dans le header si inexistant
193 if (!$('.pro-jalon').length) {
194 $('.pro-timeline').hide();
195 }
196
197 // Gestion de la carte interactive
198 // Notes : voir dans le theme placit "override/custom.js"
199
200 //Création de la carte au centre de strasbourg
201 leafletMap = getLeafletMap();
202
203 // Définition des marqueurs
204 var projectMarkerIcon = getMarkerIcon('project');
205 var participationMarkerIcon = getMarkerIcon('participation');
206 var eventMarkerIcon = getMarkerIcon('event');
207
208 // Ajout des marqueurs sur la map
209 var projectMarkers = [];
210 var participationMarkers = [];
211 var eventMarkers = [];
212
213 // Création du cluster permettant le regroupement de points et le centrage
214 var markersCluster = L.markerClusterGroup();
215
216 var marker;
217
218 for(var i= 0; i < projectJSON.placitPlaces.length; i++) {
219 marker = getProjectMarker(
220 projectJSON,
221 [projectJSON.placitPlaces[i].mercatorY, projectJSON.placitPlaces[i].mercatorX]
222 );
223
224 // Ajout du point dans le Cluster de marqueurs
225 markersCluster.addLayer(marker);
226 // Ajout du marker dans le tempon
227 projectMarkers.push(marker);
228 }
229
230 for(var i= 0; i < eventsJSON.length; i++) {
231 // notes : la participation à l'événement à été ajoutée dans le tableau lors du parcours
232 // des évenements, d'où le [0] pour avoir le JSON et le [1] pour la participation à l'évenements
233 var eventJSON = eventsJSON[i];
234 // Ajout du lien vers le détail (effectué ici pour éviter le double parcours)
235 eventJSON.link = '${homeURL}detail-evenement/-/entity/id/' + eventJSON.id + '/' + eventJSON.normalizedTitle;
236
237 markersCluster.addLayer(marker);
238 eventMarkers.push(marker);
239 }
240
241 for(var i= 0; i < participationsJSON.length; i++) {
242 var participationJSON = participationsJSON[i];
243 participationJSON.link = '${homeURL}detail-participation/-/entity/id/' + participationJSON.participationId;
244
245 for(var j= 0; j < participationJSON.placitPlaces.length; j++) {
246 marker = getParticipationMarker(
247 participationJSON,
248 [participationJSON.placitPlaces[j].mercatorY, participationJSON.placitPlaces[j].mercatorX]
249 );
250
251 markersCluster.addLayer(marker);
252 participationMarkers.push(marker);
253 }
254 }
255
256 leafletMap.addLayer(markersCluster);
257
258 // Adapter le zoom si des marqueurs existent
259 if (markersCluster.getBounds().isValid()) {
260 leafletMap.fitBounds(markersCluster.getBounds());
261 }
262
263 });
264</script>
Extension de la ligne d vers kehl, une extension symbole d'une métropole européenne

Courant sur quelque 5 km, le projet d’urbanisation des Deux-Rives dispose d’un potentiel global de constructibilité qui s’élève à 1,5 million de m² et fait de lui le deuxième plus grand projet urbain français après celui de Paris Rive Gauche. Colonne vertébrale de ce développement vers l’est et trait d’union au-dessus du Rhin entre Strasbourg et Kehl, à l’heure où certaines frontières se referment, l’extension de la ligne D du tram renforce les liens entre les habitant·es et joue un rôle majeur dans le développement des liaisons transfrontalières.
Elle permettra de desservir les nouvelles zones d’urbanisation prévues au Schéma Directeur des Deux-Rives, mais également de renforcer la desserte de la zone portuaire et du quartier du port du Rhin. Avec cette extension, l’offre de transport est un précurseur de l’urbanisation et la façonne. C’est une nouvelle logique qui s’impose. L’arrivée des lignes de tramway dans les quartiers a depuis toujours eu un impact fort sur le renouvellement urbain et l’amélioration du cadre de vie. Cependant, jamais encore le transport n’avait précédé la construction de logements ou de bâtiments publics.
Ce prolongement a une autre particularité : pour la première fois, un tram traverse une frontière sans disruption de service pour l’usager·e. Les usager·es français·es et allemand·es peuvent utiliser sans surcoût, avec leurs abonnements respectifs, cette ligne au-delà de la frontière. La mise en place de ce réseau transfrontalier a en effet donné lieu à la signature quadripartite (Eurométropole de Strasbourg, Ville de Kehl, CTS, TDK avril) d’une convention de tarification commune posant les règles commerciales de déplacements pour les usager·es des deux pays.
La mise en service de l'extension de la ligne D à la gare de Kehl a été inaugurée le 29 avril 2017. Les travaux se poursuivent actuellement sous la maîtrise d'ouvrage de la Ville de Kehl jusqu'à la fin de l'année 2018 pour assurer la desserte du centre-ville de Kehl.
Des ouvrages d'art remarquables
Ce projet a été marqué par la réalisation de deux d'ouvrages d'art remarquables: le pont André Bord au-dessus du bassin Vauban et du pont Béatus Rhénanus qui enjambe le Rhin.
Ces deux ouvrages sont dédiés au transport en commun en site propre et aux modes doux de circulation. Il est également accessible aux personnes à mobilité réduite. Aussi, chacun se compose d’une piste réservée aux cycles, d’un trottoir pour les piétons et de la plateforme tramway.

Le pont André Bord
- Conception et la Maîtrise d’œuvre : Egis
- Architecte : Bernard Nappi
- Construction : Eiffage
- Longueur de l’ouvrage : 160 mètres
- Largeur du tablier : 15 mètres
- Poids du tablier : 1 300 tonnes
- Poids de l’arc : 400 tonnes
- Tirant d’air : 7 mètres
- Délai de livraison : 18 mois (de janvier 2015 / mai 2016)
Le pont Béatus Rhénanus
- Conception-réalisation : groupement d’entreprises piloté par Bouygues Travaux Publics Région France
- Architecte : Marc Barani.
- Longueur de l’ouvrage : 290 mètres
- Largeur du tablier : 16 mètres
- Épaisseur du tablier : 1,75 mètre
- Hauteur de l’arc : 20 mètres
- Poids de l’ouvrage : 3 000 tonnes
- Tirant d’air : 7 mètres
- Délai de réalisation : 18 mois (de juin 2015 à fin 2016)
L'extension en chiffres
A terme, un total de 3,9 km d'extension et 6 nouvelles stations
En avril 2017
- 2,7 km d'exploitation depuis la station « Aristide Briand » jusqu’à la gare de Kehl.
- 2 nouvelles stations pour desservir le quartier du Port du Rhin et la gare de Kehl : « Port du Rhin » et « Kehl Bahnhof ». Les stations « Citadelle » et « Starcoop » ouvertes au fur et à mesure de l’urbanisation.
- 20 000 personnes desservies
- Un tram toutes les 7 minutes en station "Port du Rhin" et toutes les 14 minutes en station "Gare de Kehl".
A l'horizon 2018
- La ville de Kehl a prolongé la ligne D de 1,2 km supplémentaires depuis la gare de Kehl jusqu’à la mairie de Kehl.
- 2 nouvelles stations pour desservir le centre-ville de Kehl : « Hochschule » et « Rathaus ».
- 26 000 personnes desservies.
Coût de l'opération
- 96,62 M€ HT (jusqu’à Kehl-Bahnhof) dont 70,40 M€ à la charge de l’Eurométropole de Strasbourg et 26,22 M€ à la charge de la Ville de Kehl.
- Cofinancements attendus par l’Eurométropole de Strasbourg : 10 M€ de l’État français, 500 000 € du Conseil Départemental du Bas-Rhin et 100 000 € de l’Eurodistrict
- Cofinancements attendus par la Ville de Kehl : 6,20 M€ du Land et 19 M€ du Bund
- Cofinancement européen à partager entre les deux collectivités : 3,25 M€ d’Interreg
Commentaires
Signaler un commentaire
Supprimer un commentaire
Êtes vous sûr de vouloir supprimer votre commentaire ?
Commentaires