diff --git a/src/App.js b/src/App.js
index dd7abfe..9a34e1e 100644
--- a/src/App.js
+++ b/src/App.js
@@ -91,7 +91,7 @@ export default function App() {
return <>
-
>
diff --git a/src/Map.js b/src/Map.js
index bfcc5a8..fbc93b6 100644
--- a/src/Map.js
+++ b/src/Map.js
@@ -5,13 +5,12 @@ import { Polygon } from 'react-leaflet/Polygon';
import { LayersControl } from 'react-leaflet/LayersControl'
import { LayerGroup } from 'react-leaflet/LayerGroup'
import { Tooltip } from 'react-leaflet/Tooltip'
-import { useState } from "react";
+import { useState, useEffect } from "react";
import React from 'react';
import L from 'leaflet';
import stairs from "./stairs.png";
import lift from "./lift.png";
import toilet from "./toilet.png"
-import request from "./test.json"
import { useMapEvent, useMap } from 'react-leaflet/hooks';
function Stairs({position, size, body})
@@ -146,8 +145,7 @@ function newPolygon(element, positions, selectedRoom, callback)
// Auxiliary function to return the appropriate polygon depending
// on wether it is a room, a lift, a staircase or toilets
const color = selectedRoom === element["id"] ? 'red' : 'grey';
- //if (element["type"] === "S")
- if (element["id"] === 512 || element["id"] === 517 || element["id"] === 514 || element["id"] === 518)
+ if (element["type"] === "S")
{
// In this case, the room is a staircase so we add a Stairs component
return callback(element["id"])}}>
@@ -164,8 +162,7 @@ function newPolygon(element, positions, selectedRoom, callback)
/>
}
- //else if (element["type"] === "L")
- else if (element["id"] === 524 || element["id"] === 523)
+ else if (element["type"] === "L")
{
// In this case the room is a lift so we add a Lift component
return callback(element["id"])}}>
@@ -182,8 +179,7 @@ function newPolygon(element, positions, selectedRoom, callback)
/>
}
- //else if (element["type"] === "T")
- else if (element["id"] === 379)
+ else if (element["type"] === "T")
{
return callback(element["id"])}}>
{element["id"]}
@@ -214,8 +210,6 @@ function list_polygons(request, center, callback, selectedRoom)
// Taking the request as parameter, the center of the points of the request
// and a callback (callback) to interact with the global web interface
// when a room is clicked (allowing the display of room informations)
-
- console.log(selectedRoom);
let polygons = [];
for (const ind in request)
{
@@ -246,21 +240,35 @@ function buildPols(request, callback, selectedRoom)
return polygons;
}
-function Map({ callbackRoomSelected, selectedRoom })
+function Map({callbackRoomSelected, selectedRoom, floorID})
{
// When the user selects a room on the map, call callbackRoomSelected.
// The room that is currently selected is selectedRoom. It is null if no room
// is selected
- console.log(request);
- console.log(selectedRoom);
- const createPolygons = React.useCallback((request, callbackRoomSelected, selectedRoom) => {
- return buildPols(request, callbackRoomSelected, selectedRoom);
- }, [request, callbackRoomSelected, selectedRoom]);
-
- const polygons = createPolygons(request, callbackRoomSelected, selectedRoom);
- return
- {polygons}
-
+ const [loading, setLoading] = useState(true);
+ const [floor, setFloor] = useState(null);
+ useEffect(() =>
+ {
+ fetch("https://encartes.aliens-lyon.fr/api/map/get_floor/"+floorID).then(response => response.json()).then(data => {setLoading(false); setFloor(data)});
+ }, []);
+ if (loading)
+ {
+ return
+
+ }
+ else
+ {
+ const request = floor["places"];
+ /*const createPolygons = React.useCallback((request, callbackRoomSelected, selectedRoom) => {
+ return buildPols(request, callbackRoomSelected, selectedRoom);
+ }, [request, callbackRoomSelected, selectedRoom]);
+ const polygons = createPolygons(request, callbackRoomSelected, selectedRoom);
+ */
+ const polygons = buildPols(request, callbackRoomSelected, selectedRoom);
+ return
+ {polygons}
+
+ }
}
export default Map;