Skip to content

Commit 37cd1cb

Browse files
committed
ajout affichage des isochrones
1 parent e4d9e69 commit 37cd1cb

20 files changed

+262
-40
lines changed
2.52 MB
Binary file not shown.

package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"dependencies": {
1313
"@edugouvfr/ngx-dsfr": "^1.12.6",
1414
"@gouvfr/dsfr": "^1.11.0",
15-
"geopf-extensions-openlayers": "./lib/geopf-extensions-openlayers-1.0.0-beta.8-492.tgz",
15+
"geopf-extensions-openlayers": "./lib/geopf-extensions-openlayers-1.0.0-beta.8-493.tgz",
1616
"geoportal-access-lib": "^3.4.4",
1717
"ol": "^10.3.1",
1818
"opening_hours": "^3.8.0"

src/app/controls/isochrone-simple/isochrone-simple.component.ts

Lines changed: 125 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import Control from 'ol/control/Control';
55
import { CartospIsocurve } from "geopf-extensions-openlayers/src";
66
import { RightpanelService } from '../../rightpanel/rightpanel.service';
77
import { LocalisationInfoComponent } from '../../rightpanel/content/localisation-info/localisation-info.component';
8+
import { ApicartospService } from '../../services/apicartosp.service';
89

910
@Component({
1011
selector: 'app-isochrone-simple',
@@ -16,46 +17,140 @@ export class IsochroneSimpleComponent implements OnInit {
1617
@Input() map!: Map;
1718
control!: Control;
1819

19-
constructor(private elementRef: ElementRef, private rightpanelService: RightpanelService) {}
20+
constructor(private elementRef: ElementRef, private rightpanelService: RightpanelService, private apicartospService: ApicartospService) {}
2021

2122
ngOnInit() {
2223
this.control = new CartospIsocurve({
2324
position : "top-left",
2425
target: this.elementRef.nativeElement,
25-
typologyLocations: [
26-
{nom:"Hautes-Alpes", code: "05", bbox: [5.4184,44.1865,7.0771,45.1268]},
27-
{nom:"Indre", code: "36", bbox: [0.8675,46.3471,2.2046,47.2773]},
28-
{nom:"Nord", code: "59", bbox: [2.0677,49.9691,4.2311,51.089]}
26+
locations: [
27+
{nom:"Ain", code: "01"},
28+
{nom:"Aisne", code: "02"},
29+
{nom:"Allier", code: "03"},
30+
{nom:"Alpes-de-Haute-Provence", code: "04"},
31+
{nom:"Hautes-Alpes", code: "05"},
32+
{nom:"Alpes-Maritimes", code: "06"},
33+
{nom:"Ardèche", code: "07"},
34+
{nom:"Ardennes", code: "08"},
35+
{nom:"Ariège", code: "09"},
36+
{nom:"Aube", code: "10"},
37+
{nom:"Aude", code: "11"},
38+
{nom:"Aveyron", code: "12"},
39+
{nom:"Bouches-du-Rhône", code: "13"},
40+
{nom:"Calvados", code: "14"},
41+
{nom:"Cantal", code: "15"},
42+
{nom:"Charente", code: "16"},
43+
{nom:"Charente-Maritime", code: "17"},
44+
{nom:"Cher", code: "18"},
45+
{nom:"Corrèze", code: "19"},
46+
{nom:"Corse-du-Sud", code: "2A"},
47+
{nom:"Haute-Corse", code: "2B"},
48+
{nom:"Côte-d'Or", code: "21"},
49+
{nom:"Côtes-d'Armor", code: "22"},
50+
{nom:"Creuse", code: "23"},
51+
{nom:"Dordogne", code: "24"},
52+
{nom:"Doubs", code: "25"},
53+
{nom:"Drôme", code: "26"},
54+
{nom:"Eure", code: "27"},
55+
{nom:"Eure-et-Loir", code: "28"},
56+
{nom:"Finistère", code: "29"},
57+
{nom:"Gard", code: "30"},
58+
{nom:"Haute-Garonne", code: "31"},
59+
{nom:"Gers", code: "32"},
60+
{nom:"Gironde", code: "33"},
61+
{nom:"Hérault", code: "34"},
62+
{nom:"Ille-et-Vilaine", code: "35"},
63+
{nom:"Indre", code: "36"},
64+
{nom:"Indre-et-Loire", code: "37"},
65+
{nom:"Isère", code: "38"},
66+
{nom:"Jura", code: "39"},
67+
{nom:"Landes", code: "40"},
68+
{nom:"Loir-et-Cher", code: "41"},
69+
{nom:"Loire", code: "42"},
70+
{nom:"Haute-Loire", code: "43"},
71+
{nom:"Loire-Atlantique", code: "44"},
72+
{nom:"Loiret", code: "45"},
73+
{nom:"Lot", code: "46"},
74+
{nom:"Lot-et-Garonne", code: "47"},
75+
{nom:"Lozère", code: "48"},
76+
{nom:"Maine-et-Loire", code: "49"},
77+
{nom:"Manche", code: "50"},
78+
{nom:"Marne", code: "51"},
79+
{nom:"Haute-Marne", code: "52"},
80+
{nom:"Mayenne", code: "53"},
81+
{nom:"Meurthe-et-Moselle", code: "54"},
82+
{nom:"Meuse", code: "55"},
83+
{nom:"Morbihan", code: "56"},
84+
{nom:"Moselle", code: "57"},
85+
{nom:"Nièvre", code: "58"},
86+
{nom:"Nord", code: "59"},
87+
{nom:"Oise", code: "60"},
88+
{nom:"Orne", code: "61"},
89+
{nom:"Pas-de-Calais", code: "62"},
90+
{nom:"Puy-de-Dôme", code: "63"},
91+
{nom:"Pyrénées-Atlantiques", code: "64"},
92+
{nom:"Hautes-Pyrénées", code: "65"},
93+
{nom:"Pyrénées-Orientales", code: "66"},
94+
{nom:"Bas-Rhin", code: "67"},
95+
{nom:"Haut-Rhin", code: "68"},
96+
{nom:"Rhône", code: "69"},
97+
{nom:"Haute-Saône", code: "70"},
98+
{nom:"Saône-et-Loire", code: "71"},
99+
{nom:"Sarthe", code: "72"},
100+
{nom:"Savoie", code: "73"},
101+
{nom:"Haute-Savoie", code: "74"},
102+
{nom:"Paris", code: "75"},
103+
{nom:"Seine-Maritime", code: "76"},
104+
{nom:"Seine-et-Marne", code: "77"},
105+
{nom:"Yvelines", code: "78"},
106+
{nom:"Deux-Sèvres", code: "79"},
107+
{nom:"Somme", code: "80"},
108+
{nom:"Tarn", code: "81"},
109+
{nom:"Tarn-et-Garonne", code: "82"},
110+
{nom:"Var", code: "83"},
111+
{nom:"Vaucluse", code: "84"},
112+
{nom:"Vendée", code: "85"},
113+
{nom:"Vienne", code: "86"},
114+
{nom:"Haute-Vienne", code: "87"},
115+
{nom:"Vosges", code: "88"},
116+
{nom:"Yonne", code: "89"},
117+
{nom:"Territoire de Belfort", code: "90"},
118+
{nom:"Essonne", code: "91"},
119+
{nom:"Hauts-de-Seine", code: "92"},
120+
{nom:"Seine-Saint-Denis", code: "93"},
121+
{nom:"Val-de-Marne", code: "94"},
122+
{nom:"Val-d'Oise", code: "95"},
123+
{nom:"Guyane française", code: "973"},
124+
{nom:"Guadeloupe", code: "971"},
125+
{nom:"Martinique", code: "972"},
126+
{nom:"Réunion", code: "974"},
127+
{nom:"Mayotte", code: "976"},
128+
{nom:"Saint-Barthélemy", code: "977"},
129+
{nom:"Saint-Martin", code: "978"},
130+
{nom:"Saint-Pierre-et-Miquelon", code: "975"},
131+
{nom:"Wallis-et-Futuna", code: "986"},
132+
{nom:"Polynésie française", code: "987"},
133+
{nom:"Nouvelle-Calédonie", code: "988"}
29134
],
30-
typologyLayers: [
31-
{title:"CAF", layername: "CAF_isochrone20", time: "20 min"},
32-
{title:"CPAM", layername: "CPAM_isochrone20", time: "20 min"},
33-
{title:"France Renov'", layername: "FranceRenov_isochrone20", time: "20 min"},
34-
{title:"France Service", layername: "FranceService_isochrone20", time: "20 min"},
35-
{title:"France Travail", layername: "FranceTravail_isochrone20", time: "20 min"},
36-
{title:"MDS", layername: "MDS_isochrone20", time: "20 min"},
37-
{title:"MSA", layername: "MSA_isochrone20", time: "20 min"},
38-
{title:"Point Justice CDAD", layername: "PointJustice_CDAD_isochrone20", time: "20 min"},
39-
{title:"SIP", layername: "SIP_isochrone20", time: "20 min"},
40-
{title:"URSSAF", layername: "URSSAF_isochrone20", time: "20 min"},
41-
{title:"Carsat", layername: "carsat_isochrone20", time: "20 min"},
42-
{title:"CAF", layername: "CAF_isochrone30", time: "30 min"},
43-
{title:"CPAM", layername: "CPAM_isochrone30", time: "30 min"},
44-
{title:"France Renov'", layername: "FranceRenov_isochrone30", time: "30 min"},
45-
{title:"France Service", layername: "FranceService_isochrone30", time: "30 min"},
46-
{title:"France Travail", layername: "FranceTravail_isochrone30", time: "30 min"},
47-
{title:"MDS", layername: "MDS_isochrone30", time: "30 min"},
48-
{title:"MSA", layername: "MSA_isochrone30", time: "30 min"},
49-
{title:"Point Justice CDAD", layername: "PointJustice_CDAD_isochrone30", time: "30 min"},
50-
{title:"SIP", layername: "SIP_isochrone30", time: "30 min"},
51-
{title:"URSSAF", layername: "URSSAF_isochrone30", time: "30 min"},
52-
{title:"Carsat", layername: "carsat_isochrone30", time: "30 min"}
53-
]
135+
typologies: [
136+
{nom:"Caisse d'allocations familiales (Caf)"},
137+
{nom:"Caisse primaire d’assurance maladie (CPAM)"},
138+
{nom:"Espace conseil France rénov'"},
139+
{nom:"France services"},
140+
{nom:"France Travail"},
141+
{nom:"Maison départementale des solidarités (MDS)"},
142+
{nom:"Mutualité sociale agricole (MSA)"},
143+
{nom:"Point-justice"},
144+
{nom:"Service des impôts des particuliers (SIP)"},
145+
{nom:"Caisse d'assurance retraite et de la santé au travail (Carsat)"},
146+
{nom:"France Santé"}
147+
],
148+
cartospApi: this.apicartospService.apiUrl + "/isochrone"
54149
});
55150

56151
this.control.addEventListener("isochrone:add", (e: any) => {
57152
this.rightpanelService.setContent(LocalisationInfoComponent,{map : this.map, location: {name: e.layer.values_.name_location,number: e.layer.values_.location}, type: "departement", isochronecall: true}, "locationinfo");
58-
this.map.getView().fit(e.layer.values_.extent);
153+
//this.map.getView().fit(e.layer.values_.extent);
59154
});
60155

61156
this.control.addEventListener("isochrone:remove", (e: any) => {
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { ComponentFixture, TestBed } from '@angular/core/testing';
2+
3+
import { MinimapComponent } from './minimap.component';
4+
5+
describe('MinimapComponent', () => {
6+
let component: MinimapComponent;
7+
let fixture: ComponentFixture<MinimapComponent>;
8+
9+
beforeEach(async () => {
10+
await TestBed.configureTestingModule({
11+
imports: [MinimapComponent]
12+
})
13+
.compileComponents();
14+
15+
fixture = TestBed.createComponent(MinimapComponent);
16+
component = fixture.componentInstance;
17+
fixture.detectChanges();
18+
});
19+
20+
it('should create', () => {
21+
expect(component).toBeTruthy();
22+
});
23+
});
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import { Component, OnInit, Input, ElementRef } from '@angular/core';
2+
3+
import Map from 'ol/Map';
4+
import Control from 'ol/control/Control';
5+
import { GeoportalOverviewMap } from "geopf-extensions-openlayers/src";
6+
7+
@Component({
8+
selector: 'app-minimap',
9+
standalone: true,
10+
imports: [],
11+
template: '',
12+
styleUrls: []
13+
})
14+
export class MinimapComponent implements OnInit {
15+
@Input() map!: Map;
16+
control!: Control;
17+
18+
constructor(private elementRef: ElementRef) {}
19+
20+
ngOnInit() {
21+
this.control = new GeoportalOverviewMap({
22+
position : "bottom-left",
23+
auto: true
24+
});
25+
26+
this.map.addControl(this.control);
27+
}
28+
}

src/app/controls/spwfsfilter/spwfsfilter.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export class SpwfsfilterComponent implements OnInit {
3232
]
3333
},
3434
"Santé" : {
35-
markerPath: "assets/images/mapmarker/social-sante/",
35+
markerPath: "assets/images/mapmarker/sante/",
3636
topologies: [
3737
"Centre de Santé",
3838
"Centre Hospitalier (C.H.)",
@@ -43,7 +43,7 @@ export class SpwfsfilterComponent implements OnInit {
4343
]
4444
},
4545
"Social" : {
46-
markerPath: "assets/images/mapmarker/social-sante/",
46+
markerPath: "assets/images/mapmarker/social/",
4747
topologies: [
4848
"Caisse commune de sécurité sociale (CCSS)",
4949
"Caisse d'allocations familiales (Caf)",
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import { ComponentFixture, TestBed } from '@angular/core/testing';
2+
3+
import { TerritoireComponent } from './territoire.component';
4+
5+
describe('TerritoireComponent', () => {
6+
let component: TerritoireComponent;
7+
let fixture: ComponentFixture<TerritoireComponent>;
8+
9+
beforeEach(async () => {
10+
await TestBed.configureTestingModule({
11+
imports: [TerritoireComponent]
12+
})
13+
.compileComponents();
14+
15+
fixture = TestBed.createComponent(TerritoireComponent);
16+
component = fixture.componentInstance;
17+
fixture.detectChanges();
18+
});
19+
20+
it('should create', () => {
21+
expect(component).toBeTruthy();
22+
});
23+
});
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import { Component, OnInit, Input, ElementRef } from '@angular/core';
2+
3+
import Map from 'ol/Map';
4+
import Control from 'ol/control/Control';
5+
import { Territories } from "geopf-extensions-openlayers/src";
6+
7+
@Component({
8+
selector: 'app-territoire',
9+
standalone: true,
10+
template: '',
11+
styles: []
12+
})
13+
export class TerritoireComponent implements OnInit {
14+
@Input() map!: Map;
15+
control!: Control;
16+
17+
constructor(private elementRef: ElementRef) {}
18+
19+
ngOnInit() {
20+
this.control = new Territories({
21+
position : "bottom-left",
22+
auto: true,
23+
thumbnail: false,
24+
reduce: false,
25+
tiles: 0,
26+
id: "territoires",
27+
});
28+
29+
this.map.addControl(this.control);
30+
}
31+
}

src/app/home/home.component.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
<app-scaleline [map]="map"></app-scaleline>
1515
<app-layerselector [map]="map"></app-layerselector>
1616
<app-spselector [map]="map"></app-spselector>
17+
<app-territoire [map]="map"></app-territoire>
18+
<app-minimap [map]="map"></app-minimap>
1719
<div id="tooltip-feature"></div>
1820
</div>
1921
<app-rightpanel [map]="map"></app-rightpanel>

0 commit comments

Comments
 (0)