diff --git a/src/App.js b/src/App.js
index 62ce149..5846681 100644
--- a/src/App.js
+++ b/src/App.js
@@ -16,10 +16,7 @@ import Typography from '@mui/material/Typography';
import { ThemeProvider, createTheme } from '@mui/material/styles';
// Leaflet
-import { MapContainer } from 'react-leaflet/MapContainer'
-import { TileLayer } from 'react-leaflet/TileLayer'
-import { Marker } from 'react-leaflet/Marker'
-import { Popup } from 'react-leaflet/Popup'
+import Map from './Map.js'
function RoomResearch() {
return <>
@@ -27,7 +24,7 @@ function RoomResearch() {
Rechercher une salle
-
+
}
-function Map() {
- return
-
-
-
- A pretty CSS3 popup.
Easily customizable.
-
-
-
-}
-
export default function App() {
return <>
@@ -122,4 +105,4 @@ function ThemedApp() {
);
-}
\ No newline at end of file
+}
diff --git a/src/Map.js b/src/Map.js
new file mode 100644
index 0000000..3b13f73
--- /dev/null
+++ b/src/Map.js
@@ -0,0 +1,115 @@
+import { MapContainer } from 'react-leaflet/MapContainer';
+import { Marker } from 'react-leaflet/Marker';
+import { Popup } from 'react-leaflet/Popup';
+import {Polygon} from 'react-leaflet/Polygon';
+import { LayersControl } from 'react-leaflet/LayersControl'
+import { LayerGroup } from 'react-leaflet/LayerGroup'
+import React from 'react';
+import request2 from "./M-GN1-2.json"
+import request3 from "./M-GN1-3.json"
+import request4 from "./M-GN1-4.json"
+
+function min_max(request)
+{
+ let minX = -1;
+ let minY = -1;
+ let maxX = -1;
+ let maxY = -1;
+ for (const k in request)
+ {
+ (request[k]).forEach( (po) =>
+ {
+ po.forEach( (pt) =>
+ {
+ if (minX === -1 || minX > pt[0])
+ {
+ minX = pt[0];
+ }
+ if (minY === -1 || minY > pt[1])
+ {
+ minY = pt[1];
+ }
+ if (maxY === -1 || maxY < pt[1])
+ {
+ maxY = pt[1];
+ }
+ if (maxX === -1 || maxX < pt[0])
+ {
+ maxX = pt[0];
+ }
+ })
+ })
+ }
+ return [minX, maxX, minY, maxY];
+}
+
+function list_polygons(request, center, ratio, ind)
+{
+ let polygons = [];
+ for (const k in request)
+ {
+ polygons = [...polygons, ((request[k]).map((y) => {
+ return y.map((z) => {
+ if (ind === 2)
+ {
+ return [-(z[0]-center[0])/25, (z[1]-center[1])/25]; //Centre en (0,0) + inverse verticalement car nord en bas sur map d'étage 4 + divise pour faire entrer dans l'espace dessinable (jsp pk on ne peut pas dessiner partout)
+ }
+ else if (ind === 1)
+ {
+ return [-(z[1]-center[1])/25, (z[0]-center[0])/25];
+ }
+ else
+ {
+ return [(z[1]-center[1])/25, (z[0]-center[0])/25];
+ }
+ })
+ })).map((x) => {return Popup})];
+ }
+ return polygons;
+}
+
+function layers_list(requestList)
+{
+ let layers = [];
+ requestList.forEach( (request, ind) =>
+ {
+ const minMaxXY = min_max(request);
+ const minX = minMaxXY[0];
+ const maxX = minMaxXY[1];
+ const minY = minMaxXY[2];
+ const maxY = minMaxXY[3];
+ const center = [(maxX + minX)/2, (maxY + minY)/2];
+ const ratio = Math.ceil(Math.max((maxY-minY)/2284, (maxX-minX)/135)); //A priori ca devrait être convenable mais là ca ne fonctionne pas, je pense que c'est pck le SVG n'utilise pas des coordonnées et ducoup y'a des trucs bizarre (notamment les étages 3 et 4 n'ont pas du tout la même longueur ni même largeur)
+// console.log((maxY-minY)/2284);
+// console.log((maxX-minX)/135);
+// console.log(ratio);
+ const polygons = list_polygons(request, center, ratio, ind);
+ layers = [...layers, {polygons} ];
+ })
+ return layers;
+}
+
+function Map()
+{
+ const buildLayers = React.useCallback((request2, request3, request4) => {
+ return layers_list([request2, request3, request4]);
+ }, [request2, request3, request4]);
+
+ const layers = buildLayers(request2, request3, request4);
+ return
+
+ {layers}
+
+
+/*
+ return
+
+
+
+ CENTER OF THE MAP
+
+
+ */
+}
+
+export default Map;