Skip to content
Snippets Groups Projects
Commit 64bbad46 authored by Benoît Courty's avatar Benoît Courty
Browse files

Ajout des équipements

parent caa4581c
Branches
No related tags found
1 merge request!40Maj avril 2025
Pipeline #20135 passed with warnings
......@@ -17,6 +17,7 @@
import TitreChapitre from "$lib/components/render/TitreChapitre.svelte"
import type { ClimatData } from "$lib/modules/environnement"
import type { EnvironnementData } from "$lib/modules/environnement"
import type { EquipementsData } from "$lib/modules/equipements"
import type { EducationData } from "$lib/modules/education"
import type { ElectionsData } from "$lib/modules/elections"
import type { EmploiData } from "$lib/modules/emploi"
......@@ -32,6 +33,7 @@
circoData: CircoData
climat: ClimatData
environnement: EnvironnementData
equipements: EquipementsData
education: EducationData
elections: ElectionsData
emploi: EmploiData
......@@ -136,6 +138,7 @@
chapterNumber={chapterCounter++}
dataClimat={data.climat}
dataEnvironnement={data.environnement}
dataEquipements={data.equipements}
dataSources={data.sources}
circoData={data.circoData}
/>
......
......@@ -28,6 +28,7 @@
EnvironnementData,
SitesPolluesFlat,
} from "$lib/modules/environnement"
import type { EquipementsData } from "$lib/modules/equipements"
import type { SourcesData } from "$lib/modules/sources"
import type { Plotly } from "$lib/plotly"
import type { Layout, PlotData } from "plotly.js"
......@@ -35,6 +36,8 @@
export let chapterNumber: number
export let dataClimat: ClimatData | undefined
export let dataEnvironnement: EnvironnementData | undefined
export let dataEquipements: EquipementsData | undefined
export let dataSources: SourcesData
export let circoData: CircoData
export let interactive = false
......@@ -62,6 +65,13 @@
let nbSitesEnCours: number = 0
let nbSitesCloture: number = 0
let equipementPoints = dataEquipements?.insee_bpe
.map((equipement) => [
parseFloat(equipement.latitude),
parseFloat(equipement.longitude),
])
.filter(([lat, lng]) => !isNaN(lat) && !isNaN(lng))
$: if (dataEnvironnement?.dictionnaire_sites_pollues !== undefined) {
nbSitesEnCours = dataEnvironnement.dictionnaire_sites_pollues.filter(
(site) => site.statut === "En cours",
......@@ -1493,6 +1503,165 @@
</div>
{/if} -->
<SubSection
sectionNumber="{chapterNumber}.{subSecCounter++}"
content="Equipements et services de la circonscription"
newPage={true}
/>
<p>
Cette carte affiche tous les équipements, services et entreprises de la
circonscription, il y en a {equipementPoints?.length}.
</p>
<section class="mb-0 items-center">
<h3 class="mb-1 mt-2 text-lg font-bold">
Carte des équipements et services de la circonscription
</h3>
<div id="insee_bpe23" class="flex justify-center text-center">
{#key circoData.limites_circo}
<Leaflet
pointList={equipementPoints}
geojsonFeature={circoData.limites_circo}
>
{#each dataEquipements?.insee_bpe as equipement}
<Marker
pointsGPS={{
latitude: Number(equipement.latitude),
longitude: Number(equipement.longitude),
}}
width={10}
height={10}
>
<Circle color="red" />
<Tooltip>
<!-- class="h-64 flex flex-col overflow-y-scroll overflow-x-hidden w-96" -->
<div>
{#if equipement.nomrs !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans">Nom :</span>
{equipement.nomrs}
</p>
{/if}
<p class="!m-0">
<span class="tracking-wider widest font-sans">Adresse :</span>
{equipement.numvoie}&nbsp;
{equipement.typvoie}&nbsp;
{equipement.libvoie}&nbsp;
{equipement.libcom}&nbsp;
</p>
{#if equipement.lib_typequ !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans"
>Type d'équipement :</span
>
{equipement.lib_typequ}
</p>
{/if}
{#if equipement.cantine !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans"
>Cantine :</span
>
{equipement.cantine}
</p>
{/if}
{#if equipement.internat !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans"
>Internat :</span
>
{equipement.internat}
</p>
{/if}
{#if equipement.education_prioritaire !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans"
>Éducation prioritaire :</span
>
{equipement.education_prioritaire}
</p>
{/if}
{#if equipement.acces_aire_pratique !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans"
>Accès à l'aire de pratique :</span
>
{equipement.acces_aire_pratique}
</p>
{/if}
{#if equipement.acces_libre !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans"
>Accès libre :</span
>
{equipement.acces_libre}
</p>
{/if}
{#if equipement.acces_sanitaire !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans"
>Accès sanitaire :</span
>
{equipement.acces_sanitaire}
</p>
{/if}
{#if equipement.acces_vestiaire !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans"
>Accès vestiaire :</span
>
{equipement.acces_vestiaire}
</p>
{/if}
{#if equipement.capacite_d_accueil !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans"
>Capacité d'accueil :</span
>
{equipement.capacite_d_accueil}
</p>
{/if}
{#if equipement.pres_douche !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans"
>Présence de douches :</span
>
{equipement.pres_douche}
</p>
{/if}
{#if equipement.pres_sanitaire !== "_Z"}
<p class="!m-0">
<span class="tracking-wider widest font-sans"
>Présence sanitaire :</span
>
{equipement.pres_sanitaire}
</p>
{/if}
</div>
</Tooltip>
</Marker>
{/each}
</Leaflet>
{/key}
</div>
<section class="my-5 flex flex-col items-center">
<SourceCitation sources={[dataSources.equipements["insee_bpe23"]]}
></SourceCitation>
</section>
{#if !interactive}
<div class="side-by-side">
<p>
La carte interractive est disponible dans DataCirco Augmenté avec le
détail de chaque point.
</p>
<QrCodeInteractif anchorId="insee_bpe23" module="environnement">
Carte des sites pollués
</QrCodeInteractif>
</div>
{/if}
</section>
<SubSection
sectionNumber="{chapterNumber}.{subSecCounter++}"
content="Historique du climat"
......
export type EquipementsData = {
insee_bpe: Array<{
nomrs: string;
numvoie: string;
typvoie: string;
libvoie: string;
libcom: string;
lib_typequ: string;
cantine: string;
internat: string;
education_prioritaire: string;
acces_aire_pratique: string;
acces_libre: string;
acces_sanitaire: string;
acces_vestiaire: string;
capacite_d_accueil: string;
pres_douche: string;
pres_sanitaire: string;
longitude: string;
latitude: string;
}>;
};
\ No newline at end of file
import type { CircoData } from "$lib/circo"
import type { ClimatData } from "$lib/modules/environnement"
import type { EnvironnementData } from "$lib/modules/environnement"
import type { EquipementsData } from "$lib/modules/equipements"
import type { EducationData } from "$lib/modules/education"
import type { ElectionsData } from "$lib/modules/elections"
import type { EmploiData } from "$lib/modules/emploi"
......@@ -37,6 +38,7 @@ async function getSources() {
education: Source[]
elus: Source[]
environnement: Source[]
equipements: Source[]
emplois: Source[]
entreprises: Source[]
equipements: Source[]
......@@ -65,6 +67,7 @@ const fetchAll = (url: string) =>
getFile("common_data.json", url) as Promise<CircoData>,
getFile("meteo.json", url) as Promise<ClimatData>,
getFile("environnement.json", url) as Promise<EnvironnementData>,
getFile("equipements.json", url) as Promise<EquipementsData>,
getFile("education.json", url) as Promise<EducationData>,
getFile("elections.json", url) as Promise<ElectionsData>,
getFile("emploi.json", url) as Promise<EmploiData>,
......@@ -86,6 +89,7 @@ export const load = (async ({ params }) => {
circoData,
climat,
environnement,
equipements,
education,
elections,
emploi,
......@@ -101,6 +105,7 @@ export const load = (async ({ params }) => {
circoData,
climat,
environnement,
equipements,
education,
elections,
emploi,
......
......@@ -317,6 +317,7 @@
circoData={data.circoData}
dataClimat={data.climat}
dataEnvironnement={data.environnement}
dataEquipements={data.equipements}
dataSources={data.sources}
interactive={!$displayMode.print}
/>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment