Skip to content

Commit

Permalink
Merge pull request #38 from IGNF/issue_24
Browse files Browse the repository at this point in the history
feat(shared-reglementation) : affichage de la reglementation en fonct…
  • Loading branch information
cboucheIGN authored Dec 9, 2024
2 parents 59e98f4 + 073f85c commit c0850f8
Show file tree
Hide file tree
Showing 12 changed files with 298 additions and 47 deletions.
Original file line number Diff line number Diff line change
@@ -1,13 +1,20 @@
@if (reglementation) {

<div [innerHTML]="reglementation.description"></div>
<div [innerHTML]="reglementation.impactReglementaire"></div>
<div [innerHTML]="reglementation.impactProcedure"></div>

@if(reglementation.referenceUrl){
<p>
<a [href]="reglementation.referenceUrl">Accès référence réglementaire</a>
<a [href]="reglementation.referenceUrl" target="_blank">Consulter la référence réglementaire</a>
</p>
}
@if(reglementation.contact) {
<p>
Point de concat {{ reglementation.contact }}.
Pour vos procédures vueillez contacter <b>{{ reglementation.contact }}</b>.
</p>
}

} @else {
<p>Aucune reglementation ou recommandation.</p>
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,12 @@ export class ReglementationViewComponent implements OnInit {

@Input() reglementation?: Reglementation;

constructor() {}
constructor() { }

ngOnInit() {
if (!this.reglementation) {
this.reglementation = REGLEMENTATION_LIST[0];
this.reglementation = REGLEMENTATION_LIST.find(reglement => reglement.layerName === this.layerReference);
}
// todo rechercher reglementation par reference
}

}
200 changes: 195 additions & 5 deletions src/app/shared-reglementation/models/reglementation-list.enum.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Reglementation } from './reglementation.model';
export const REGLEMENTATION_LIST = [
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'TODO',
layerName: 'Natura 2000 Habitats',
title: 'Sites Natura 2000 au titre de la Directive Habitats',
description: '<p>Espace désigné à l\'échelle européenne pour la rareté ou la fragilité des habitats et des espèces animales et végétales qu’il abrite.</p>',
impactReglementaire: '<p>Les créations de voies forestières, de places de dépôt de bois et les premiers boisements sont susceptibles d\'être soumis à une évaluation des incidences.</p><p>Elle doit également être réalisée pour tous autres travaux (notamment les coupes), s\'ils sont soumis à une autorisation administrative.</p>',
Expand All @@ -13,12 +13,202 @@ export const REGLEMENTATION_LIST = [
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'TODO',
title: 'Sites Natura 2000 au titre de la Directive Habitats',
description: '<p>Espace désigné à l\'échelle européenne pour la rareté ou la fragilité des habitats et des espèces animales et végétales qu’il abrite.</p>',
impactReglementaire: '<p>Les créations de voies forestières, de places de dépôt de bois et les premiers boisements sont susceptibles d\'être soumis à une évaluation des incidences.</p><p>Elle doit également être réalisée pour tous autres travaux (notamment les coupes), s\'ils sont soumis à une autorisation administrative.</p>',
layerName: 'Natura 2000 Oiseaux',
title: 'Sites Natura 2000 au titre de la Directive Oiseaux',
description: '<p>Espace désigné à l\'échelle européenne pour son intérêt dans la reproduction, de migration et d\'hivernage d\'espèces d\'oiseaux.</p>',
impactReglementaire: '<p>Les créations de voies forestières, de places de dépôt de bois et les premiers boisements d’une surface supérieure à 1 ha, doivent faire l\'objet d\'une une évaluation des incidences.</p><p> Elle doit également être réalisée pour tous autres travaux (notamment les coupes), s\'ils sont soumis à une autorisation administrative.</p>',
impactProcedure: '<p>L\'évaluation des incidences a pour but de déterminer si le projet peut avoir un impact significatif sur les habitats, les espèces végétales et les espèces animales ayant justifié la désignation du site Natura 2000. </p>',
referenceUrl: 'https://www.natura2000.fr/',
contact: 'Direction départementale des territoires'
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Coeurs de parcs nationaux',
title: 'Coeurs de parcs nationaux',
description: '<p>Un parc national est un territoire reconnu comme exceptionnel par la richesse de sa biodiversité, la qualité de ses paysages et de son patrimoine culturel. Le cœur bénéficie d\'un statut de protection.</p>',
impactReglementaire: '<p>Une réglementation spécifique à chaque parc national, encadre la bonne pratique des activités humaines dans le cœur afin qu\'elles aient le moins d\'impacts possibles sur les milieux naturels et la biodiversité.</p>',
impactProcedure: '<p>La circulation, les travaux, l\'exploitation forestière sont généralement règlementés. Avant toute intervention, consulter l\'équipe du parc national.</p>',
referenceUrl: 'https://www.parcsnationaux.fr/fr/des-decouvertes/les-parcs-nationaux-de-france/reglementation-dans-les-parcs-nationaux-de-France',
contact: 'Parc national concerné'
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Zones d\'adhésion de parcs nationaux',
title: 'Zones d\'adhésion de parcs nationaux',
description: '<p>Un parc national est un territoire reconnu comme exceptionnel par la richesse de sa biodiversité, la qualité de ses paysages et de son patrimoine culturel.</p>',
impactReglementaire: '<p>Sauf décision locale particulière, cette zone du Parc national n\'est pas soumise à une réglementation environnementale particulière.</p>',
impactProcedure: '<p>Ce zonage n\'implique pas de formalité particulière.</p>',
referenceUrl: '',
contact: ''
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Arrêtés de protection de géotope',
title: 'Arrêtés de protection de géotope',
description: '<p>Les arrêtés de protection de géotope visent à protéger des sites géologiques.</p>',
impactReglementaire: '<p>Une règlementation spécifique à chaque espace est applicable.</p>',
impactProcedure: '<p>La gestion forestière courante n\'est généralement pas impactée si elle ne porte pas atteinte aux éléments géologiques.</p>',
referenceUrl: '',
contact: 'Direction départementale des territoires'
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Arrêtés de protection d\'habitats naturels',
title: 'Arrêtés de protection d\'habitats naturels',
description: '<p>Les APHN sont des arrêtés visant à préserver des habitats naturels présentant un intérêt particulier à titre scientifique, de rôle essentiel dans l\'écosystème ou de la préservation du patrimoine naturel.</p>',
impactReglementaire: '<p>Une règlementation spécifique à chaque espace est applicable.</p>',
impactProcedure: '<p>Les activités forestières peuvent être règlementées. La présence d"habitats naturels patrimoniaux nécessite une grande prudence avant tous travaux ou exploitation.</p>',
referenceUrl: '',
contact: 'Direction départementale des territoires'
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Biotopes d\'espèces protégées',
title: 'Arrêtés de protection de biotope',
description: '<p>Les arrêtés de protection de biotope visent à protéger les habitats nécessaires à l\'alimentation, à la reproduction, au repos ou à la survie d\'espèces protégées. Il concernent souvent des milieux très remarques, sur des surfaces limitées.</p>',
impactReglementaire: '<p>Une règlementation spécifique à chaque espace est applicable.</p>',
impactProcedure: '<p>Les activités forestières peuvent être règlementées. La présence probable d\'espèces protégées nécessite une grande prudence avant tous travaux ou exploitation.</p>',
referenceUrl: '',
contact: 'Direction départementale des territoires'
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Réserves Naturelles de Corse',
title: 'Réserves naturelles de Corse',
description: '<p>Une réserve naturelle est un site naturel fragile protégé par une réglementation adaptée et une gestion locale planifiée et concertée.</p>',
impactReglementaire: '<p>Les travaux, la circulation et les activités forestières peuvent faire l\'objet d\'une règlementation, adaptée à chaque réserve.</p>',
impactProcedure: '',
referenceUrl: '',
contact: 'Le gestionnaire de la réserve'
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Réserves naturelles nationales',
title: 'Réserves naturelles nationales',
description: '<p>Une réserve naturelle est un site naturel fragile protégé par une réglementation adaptée et une gestion locale planifiée et concertée.</p>',
impactReglementaire: '<p>Les travaux, la circulation et les activités forestières peuvent faire l\'objet d\'une règlementation, adaptée à chaque réserve.</p>',
impactProcedure: '',
referenceUrl: '',
contact: 'Le gestionnaire de la réserve'
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Réserves naturelles régionales',
title: 'Réserves naturelles régionales',
description: '<p>Une réserve naturelle est un site naturel fragile protégé par une réglementation adaptée et une gestion locale planifiée et concertée.</p>',
impactReglementaire: '<p>Les travaux, la circulation et les activités forestières peuvent faire l\'objet d\'une règlementation, adaptée à chaque réserve.</p>',
impactProcedure: '',
referenceUrl: '',
contact: 'Le gestionnaire de la réserve'
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Périmètres de protection de réserves naturelles',
title: 'Périmètres de protection de réserves naturelles',
description: '',
impactReglementaire: '',
impactProcedure: '',
referenceUrl: '',
contact: ''
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Arrêtés listes de sites d\'intérêt géologique',
title: 'Arrêtés de listes de sites d\'intérêt géologique',
description: '',
impactReglementaire: '',
impactProcedure: '',
referenceUrl: '',
contact: ''
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Réserves Biologiques',
title: 'Réserves biologiques',
description: '',
impactReglementaire: '',
impactProcedure: '',
referenceUrl: '',
contact: ''
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Réserves nationales de chasse et de faune sauvage',
title: 'Réserves nationales de chasse et de faune sauvage',
description: '',
impactReglementaire: '',
impactProcedure: '',
referenceUrl: '',
contact: ''
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Parcs naturels régionaux',
title: 'Parcs naturels régionaux',
description: '<p>Territoire créé pour protéger et mettre en valeur de grands espaces ruraux habités, notamment les richesses naturelles, culturelles et humaines (traditions populaires, savoir-faire techniques).</p>',
impactReglementaire: '<p>Le droit commun est le même dans le territoire du parc naturel régional qu\'ailleurs. Il n\'a pas d\'impact règlementaire spécifique pour les travaux forestiers.</p>',
impactProcedure: '<p>Ce zonage n\'implique pas de formalité particulière.</p>',
referenceUrl: '',
contact: ''
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Conservatoire du littoral - sites sous responsabilité du conservatoire',
title: 'Conservatoire du littoral - sites sous responsabilité du conservatoire',
description: '',
impactReglementaire: '',
impactProcedure: '',
referenceUrl: '',
contact: ''
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'Terrains des conservatoires d\'espaces naturels',
title: 'Conservatoires d\'espaces naturels',
description: '',
impactReglementaire: '',
impactProcedure: '',
referenceUrl: '',
contact: ''
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'ZNIEFF1',
title: 'Zones naturelles d\'interet ecologique faunistique et floristique (ZNIEFF) type I',
description: '<p>Zone présentant une richesse biologique intéressante (faune et flore), reconnue d\'un grand intérêt pour le fonctionnement biologique local.</p>',
impactReglementaire: '<p>Inventaire informatif ne générant pas de contraintes règlementaires. Cependant ce zonage traduit la possible présence d\'espèces animales et végétales remarquables pouvant faire l\'objet d\'un dispositif de protection.</p>',
impactProcedure: '<p>A prendre en compte lors de la planification de la gestion ou en cas de réalisation de travaux, notamment si le terrain présente des milieux spécifiques comme des tourbières, des mares, des cours d\'eau etc.</p>',
referenceUrl: '',
contact: ''
}),
new Reglementation().deserialise({
thematicName: 'Biodiversité',
layerName: 'ZNIEFF2',
title: 'Zones naturelles d\'interet ecologique faunistique et floristique (ZNIEFF) type II',
description: '<p>Zone présentant des ensembles naturels et paysagers avec une cohésion élevée et plus riches que les milieux alentours.</p>',
impactReglementaire: '<p>Inventaire informatif ne générant pas de contraintes règlementaires. Cependant ce zonage traduit la possible présence d\'espèces animales et végétales remarquables pouvant faire l\'objet d\'un dispositif de protection.</p>',
impactProcedure: '<p>A prendre en compte lors de la planification de la gestion ou en cas de réalisation de travaux, notamment si le terrain présente des milieux spécifiques comme des tourbières, des mares, des cours d\'eau etc.</p>',
referenceUrl: '',
contact: ''
}),
new Reglementation().deserialise({
thematicName: 'Patrimoine',
layerName: 'Monuments historiques',
title: 'Protection des abords des monuments historiques ( Périmètre délimité des abords ou abords de 500m)',
description: '<p>Un monument historique classé est un immeuble protégé pour son intérêt notamment du point de vue artistique, historique, scientifique,légendaire ou pittoresque. Aux abords de ce monument, un périmètre de protecion est destiné à garantir le caractère paysager des abords.</p>',
impactReglementaire: '<p>Les travaux susceptibles de modifier le paysage aux abords des monuments historiques sont sous à autorisation. C\'est le cas notamment des coupes ou des créations de voiries forestière.</p>',
impactProcedure: '<p>Si les travaux se situent également en site classé ou nécessitent une autre autorisation (se rapprocher de la DDT), l\'architecte des bâtiments de France sera consulté par le service qui instruira l\'autorisation.</p><p> Sinon, une demande d\'autorisation est à déposer en mairie. Il ets recommandé de contacter auparant l\'UDAP pour avoir son avis.</p>',
referenceUrl: '',
contact: 'UDAP du département'
}),
new Reglementation().deserialise({
thematicName: 'Patrimoine',
layerName: 'Espaces boisés classés',
title: 'Espaces boisés classés au PLU au titre du L.113-1 CU',
description: '<p>Les espaces boisés classés à conserver, à protéger ou à créer sont définis dans le plan local d\'urbanisme de la commune. Ils sont destinés à maintenir le paysage, réaliser des coulées vertes, protéger contre les risques naturels etc. </p>',
impactReglementaire: '<p>Les terrains ne peuvent changer d\'affectation : ils doivent rester forestier. Il ne peut donc y avoir de défrichement. Les coupes qui ne sont pas prévues dans un plan simple de gestion doivent faire l\'objet d\'une déclaration préalable.</p>',
impactProcedure: '<p>La déclaration de coupe est à envoyer en mairie du lieu de la coupe, à l\'aide du formulaire Cerfa n° 13404 en cochant "Coupe et abattage d\'arbres" en page 4.</p>',
referenceUrl: 'https://www.service-public.fr/particuliers/vosdroits/R11646',
contact: 'Mairie de la commune de situation'
}),
];
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@

<h4 class="fr-h6">{{ layer.title }}</h4>

<app-reglementation-view [layerReference]="layer.title"></app-reglementation-view>

@if (displaySituationMap) {
<app-map-viewer [id]="map" [situationMap]="displaySituationMap"></app-map-viewer>
<app-map-viewer [id]="map" [situationMap]="displaySituationMap"></app-map-viewer>
}

<ul>
Expand All @@ -19,6 +21,10 @@ <h4 class="fr-h6">{{ layer.title }}</h4>
}
</ul>

<app-reglementation-view [layerReference]="layer.title"></app-reglementation-view>
<!-- <dsfr-tags-group>
@for (feature of layer.features; track feature) {
<dsfr-tag [label]="feature.name" [route]="" (click)="openTab(feature.link)"></dsfr-tag>
}
</dsfr-tags-group> -->

}
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,11 @@ export class LayerInfoViewComponent implements OnChanges {
this.prepareMap();
}

openTab(link: string) {
const windowReference: any = window;
windowReference.open(link, '_blank').focus();
}

private prepareMap() {
if (this.layer && this.displaySituationMap) {
this.map = this.layer.technicalName;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,13 @@ export class ThematicListComponent {
const layer = features[i].layer;
switch (layer) {
case 'assiette_sup_s':
if (!this.mapContextService.getActiveThematicLayers().includes({ theme: 'monument_historique', name: "assiette_sup_s" })) {
this.mapContextService.getActiveThematicLayers().push({ theme: 'monument_historique', name: "assiette_sup_s" });
if (!this.mapContextService.getActiveThematicLayers().includes({ theme: 'patrimoine', name: "assiette_sup_s" })) {
this.mapContextService.getActiveThematicLayers().push({ theme: 'patrimoine', name: "assiette_sup_s" });
}
break;
case 'prescription_surf':
if (!this.mapContextService.getActiveThematicLayers().includes({ theme: 'patrimoine', name: "prescription_surf" })) {
this.mapContextService.getActiveThematicLayers().push({ theme: 'patrimoine', name: "prescription_surf" });
}
break;
default:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
<dsfr-tabs [selectedTabIndex]="selectedTabIndex" (tabSelect)="selectTab($event)">

@for (thematicTab of thematicTabs; track $index; let first = $first) {
@if (thematicTab.active) {
<dsfr-tab [tabId]="thematicTab.name" [label]="thematicTab.label">
@if (thematicTab.active) {
<dsfr-tab [tabId]="thematicTab.name" [label]="thematicTab.label">

@if (first) {
<app-synthese></app-synthese>
} @else {
<app-thematic-view [thematic]="thematicTab"></app-thematic-view>
}
@if (first) {
<app-synthese></app-synthese>
} @else {
<app-thematic-view [thematic]="thematicTab"></app-thematic-view>
}

</dsfr-tab>
}
</dsfr-tab>
}
}

</dsfr-tabs>
Loading

0 comments on commit c0850f8

Please sign in to comment.