diff --git a/src/App.js b/src/App.js
index 3337e4f..de19d9b 100644
--- a/src/App.js
+++ b/src/App.js
@@ -33,7 +33,7 @@ export default function App() {
const storageUser = await authStorage.getUser();
if (storageUser) setUser(storageUser);
- global.location = { lat: -23.623, long: -46.5637 }; // await getLocation();
+ global.location = { lat: -9.969802, long: -67.816956 }; // await getLocation();
};
if (!isReady && netInfo.isInternetReachable) {
diff --git a/src/app/assets/floodZonesAssets/PinIntransitavel.js b/src/app/assets/floodZonesAssets/PinIntransitavel.js
index f571b92..7b2f33d 100644
--- a/src/app/assets/floodZonesAssets/PinIntransitavel.js
+++ b/src/app/assets/floodZonesAssets/PinIntransitavel.js
@@ -1 +1 @@
-export default PinIntransitavel = ``
\ No newline at end of file
+export default PinIntransitavel = ``
\ No newline at end of file
diff --git a/src/app/assets/floodZonesAssets/PinTransitavel.js b/src/app/assets/floodZonesAssets/PinTransitavel.js
index 68ddedd..3ee9d1f 100644
--- a/src/app/assets/floodZonesAssets/PinTransitavel.js
+++ b/src/app/assets/floodZonesAssets/PinTransitavel.js
@@ -1 +1 @@
-export default PinTransitavel = ``
\ No newline at end of file
+export default PinTransitavel = ``
\ No newline at end of file
diff --git a/src/app/assets/pluviometer/PinPluviometerOfficial.js b/src/app/assets/pluviometer/PinPluviometerOfficial.js
new file mode 100644
index 0000000..df7602e
--- /dev/null
+++ b/src/app/assets/pluviometer/PinPluviometerOfficial.js
@@ -0,0 +1 @@
+export default PinPluviometerOfficial = ``
\ No newline at end of file
diff --git a/src/app/assets/pluviometer/PinPluviometroArt.js b/src/app/assets/pluviometer/PinPluviometroArt.js
index cd29e07..72c3bf6 100644
--- a/src/app/assets/pluviometer/PinPluviometroArt.js
+++ b/src/app/assets/pluviometer/PinPluviometroArt.js
@@ -1 +1 @@
-export default PinPluviometroArt = ``
\ No newline at end of file
+export default PinPluviometroArt = ``
\ No newline at end of file
diff --git a/src/app/assets/rain/PinChuvaForte.js b/src/app/assets/rain/PinChuvaForte.js
index 10a7a38..3777c72 100644
--- a/src/app/assets/rain/PinChuvaForte.js
+++ b/src/app/assets/rain/PinChuvaForte.js
@@ -1 +1 @@
-export default PinChuvaForte = ``
\ No newline at end of file
+export default PinChuvaForte = ``
\ No newline at end of file
diff --git a/src/app/assets/rain/PinChuvaFraca.js b/src/app/assets/rain/PinChuvaFraca.js
index 47c2cbb..7c121e5 100644
--- a/src/app/assets/rain/PinChuvaFraca.js
+++ b/src/app/assets/rain/PinChuvaFraca.js
@@ -1 +1 @@
-export default PinChuvaFraca = ``
\ No newline at end of file
+export default PinChuvaFraca = ``
\ No newline at end of file
diff --git a/src/app/assets/rain/PinChuvaModerada.js b/src/app/assets/rain/PinChuvaModerada.js
index 445a34c..7ea219c 100644
--- a/src/app/assets/rain/PinChuvaModerada.js
+++ b/src/app/assets/rain/PinChuvaModerada.js
@@ -1 +1 @@
-export default PinChuvaModerada = ``
\ No newline at end of file
+export default PinChuvaModerada = ``
\ No newline at end of file
diff --git a/src/app/assets/rain/PinNublado.js b/src/app/assets/rain/PinNublado.js
index 5f3aa97..dd3656f 100644
--- a/src/app/assets/rain/PinNublado.js
+++ b/src/app/assets/rain/PinNublado.js
@@ -1 +1 @@
-export default PinNublado = ``
\ No newline at end of file
+export default PinNublado = ``
\ No newline at end of file
diff --git a/src/app/assets/river/PinRioCheio.js b/src/app/assets/river/PinRioCheio.js
index 6c038f9..724e1b8 100644
--- a/src/app/assets/river/PinRioCheio.js
+++ b/src/app/assets/river/PinRioCheio.js
@@ -1 +1 @@
-export default PinRioCheio = ``
\ No newline at end of file
+export default PinRioCheio = ``
\ No newline at end of file
diff --git a/src/app/assets/river/PinRioExtravasado.js b/src/app/assets/river/PinRioExtravasado.js
index 9b9afcb..ca371b5 100644
--- a/src/app/assets/river/PinRioExtravasado.js
+++ b/src/app/assets/river/PinRioExtravasado.js
@@ -1 +1 @@
-export default PinRioExtravasado = ``
\ No newline at end of file
+export default PinRioExtravasado = ``
\ No newline at end of file
diff --git a/src/app/assets/river/PinRioNormal.js b/src/app/assets/river/PinRioNormal.js
index a46c9d7..02feda8 100644
--- a/src/app/assets/river/PinRioNormal.js
+++ b/src/app/assets/river/PinRioNormal.js
@@ -1 +1 @@
-export default PinRioNormal = ``
\ No newline at end of file
+export default PinRioNormal = ``
\ No newline at end of file
diff --git a/src/app/components/AssembleModalObject.js b/src/app/components/AssembleModalObject.js
index d07f117..e854c5f 100644
--- a/src/app/components/AssembleModalObject.js
+++ b/src/app/components/AssembleModalObject.js
@@ -25,13 +25,13 @@ function getLogo(name, situation) {
}
if (name == "rain") {
- if (situation == "sem chuva") {
+ if (situation == "SEM CHUVA") {
return custom_assets.rainLevel[0];
- } else if (situation == "chuva fraca") {
+ } else if (situation == "CHUVA FRACA") {
return custom_assets.rainLevel[1];
- } else if (situation == "chuva moderada") {
+ } else if (situation == "CHUVA MODERADA") {
return custom_assets.rainLevel[2];
- } else if (situation == "chuva forte") {
+ } else if (situation == "CHUVA FORTE") {
return custom_assets.rainLevel[3];
} else {
return custom_assets.rainLevel[3];
@@ -39,13 +39,13 @@ function getLogo(name, situation) {
}
if (name == "riverFlood") {
- if (situation == "baixo") {
+ if (situation == "BAIXO") {
return custom_assets.riverLevel[0];
- } else if (situation == "normal") {
+ } else if (situation == "NORMAL") {
return custom_assets.riverLevel[1];
- } else if (situation == "alto") {
+ } else if (situation == "ALTO") {
return custom_assets.riverLevel[2];
- } else if (situation == "inundar") {
+ } else if (situation == "INUNDAR") {
return custom_assets.riverLevel[3];
}
return custom_assets.riverLevel[0];
@@ -64,6 +64,7 @@ function verifyMeasureDates(labels, measureDate) {
const AssembleModalObject = (response, name) => {
var situation = null;
var user = null;
+ var institution = null;
var address = null;
var date = null;
var time = null;
@@ -75,7 +76,9 @@ const AssembleModalObject = (response, name) => {
};
if (JSON.parse(response)) {
- const r = JSON.parse(response);
+ const r = JSON.parse(response).array_to_json;
+
+ user = r[0].formsanswersuserinformer;
if (name == "automaticPluviometer") {
(situation = "PLUVIÔMETRO"),
@@ -90,13 +93,12 @@ const AssembleModalObject = (response, name) => {
);
}
if (f.fieldname == "siglarede") {
- user = f.fieldsanswersvalue;
+ institution = f.fieldsanswersvalue;
}
if (f.fieldname == "nome") {
address = f.fieldsanswersvalue;
}
});
-
} else {
if (r[0].array_to_json) {
r[0].array_to_json.forEach(function (f) {
@@ -119,10 +121,12 @@ const AssembleModalObject = (response, name) => {
}
}
}
+
return {
name: name,
title: situation,
user: user,
+ institution: institution,
address: address,
date: date + " | " + time,
description: comments,
diff --git a/src/app/components/MapModal.js b/src/app/components/MapModal.js
index 570f874..ab5a5aa 100644
--- a/src/app/components/MapModal.js
+++ b/src/app/components/MapModal.js
@@ -1,6 +1,7 @@
import React, { useState } from "react";
import { Text, TouchableOpacity, View, StyleSheet, Image } from "react-native";
import { MaterialCommunityIcons } from "@expo/vector-icons";
+import { FontAwesome5 } from "@expo/vector-icons";
import SelfClosingModal from "../components/SelfClosingModal";
import colors from "../config/colors";
import { showMessage } from "react-native-flash-message";
@@ -26,12 +27,25 @@ function notImplemented() {
});
}
-function topBar(props, setShowModal) {
+function loadingData() {
+ return (
+
+ Carregando dados...
+
+ );
+}
+
+function onCloseModal(setShowModal, setCurrentMarker) {
+ setShowModal(null);
+ setCurrentMarker(undefined);
+}
+
+function topBar(props, setShowModal, setCurrentMarker) {
return (
- {props.title}
+ {props ? props.title : "Aguarde..."}
@@ -62,7 +76,7 @@ function topBar(props, setShowModal) {
setShowModal(null)}
+ onPress={() => onCloseModal(setShowModal, setCurrentMarker)}
>
@@ -92,6 +106,18 @@ function iconTextRow(props) {
);
}
+function iconInstitutionTextRow(props) {
+ return (
+
+
+
+
+
+ {props.description}
+
+ );
+}
+
function iconImageRow(props) {
return (
@@ -200,17 +226,25 @@ function componentBody(props) {
const date = props.date ? props.date : "implementando...";
const address = props.address ? props.address : "Erro ao carregar endereço";
const user = props.user ? props.user : "Usuário ativo";
+ const institution = props.institution
+ ? props.institution
+ : "Erro ao carregar instituição";
return (
+ {!isOfficialPluviometer(props.name) &&
+ iconTextRow({ name: "account", description: user })}
+ {props.institution && iconInstitutionTextRow({
+ name: "university",
+ description: institution,
+ })}
{iconTextRow({ name: "map-marker", description: address })}
{!isPluviometer(props.name) &&
iconTextRow({ name: "calendar", description: date })}
- {iconTextRow({ name: "account", description: user })}
- {props.name != "automaticPluviometer" &&
+ {!isOfficialPluviometer(props.name) &&
iconImageRow({ name: "camera", pic: pictures })}
@@ -236,6 +270,10 @@ function isPluviometer(name) {
return name === "pluviometer" || name === "automaticPluviometer";
}
+function isOfficialPluviometer(name) {
+ return name === "automaticPluviometer";
+}
+
function MapModal({ showModal, setShowModal, markers }) {
const [currentMarker, setCurrentMarker] = useState(undefined);
var timeFilter = null;
@@ -249,11 +287,10 @@ function MapModal({ showModal, setShowModal, markers }) {
}
const result = await getFieldsAnswers.fieldsAnswers(timeFilter, id);
- if (result.data) {
- console.log(timeFilter);
+ if (result.data && showModal && currentMarker == undefined) {
setCurrentMarker(
AssembleModalObject(
- JSON.stringify(result.data.responseData.array_to_json),
+ JSON.stringify(result.data.responseData),
name
)
);
@@ -265,22 +302,44 @@ function MapModal({ showModal, setShowModal, markers }) {
getAnswers(showModal, markers.get(showModal).name);
}
- if (currentMarker != undefined && showModal != null) {
+ if (showModal != null) {
return (
onCloseModal(setShowModal, setCurrentMarker)}
>
- {topBar(currentMarker, setShowModal)}
-
- {componentBody(currentMarker)}
- {isPluviometer(currentMarker.name) ? moreInfo(currentMarker) : null}
- {/* {!isPluviometer(currentMarker.name) ? reviews(currentMarker) : null} */}
- {userMessage(currentMarker)}
-
+ {topBar(currentMarker, setShowModal, setCurrentMarker)}
+
+ {currentMarker != undefined && (
+
+ {componentBody(currentMarker)}
+ {isPluviometer(currentMarker.name) ? moreInfo(currentMarker) : null}
+ {/* {!isPluviometer(currentMarker.name) ? reviews(currentMarker) : null} */}
+ {userMessage(currentMarker)}
+
+ )}
+ {currentMarker == undefined && (
+
+
+
+
+ Aguarde um momento enquanto os dados são carregados
+
+
+
+ )}
);
} else {
@@ -338,6 +397,13 @@ const styles = StyleSheet.create({
fontWeight: "500",
fontSize: dimensions.text.default,
},
+ textWait: {
+ fontSize: dimensions.text.secondary,
+ textAlign: "center",
+ color: colors.primary,
+ fontWeight: "bold",
+ paddingBottom: dimensions.spacing.big_padding,
+ },
});
export default MapModal;
diff --git a/src/app/config/assets.js b/src/app/config/assets.js
index 80b6363..e4f347b 100644
--- a/src/app/config/assets.js
+++ b/src/app/config/assets.js
@@ -35,6 +35,7 @@ import PinPluviometroArt from "../assets/pluviometer/PinPluviometroArt";
import FloodPassable from "../assets/floodZonesAssets/passable.svg";
import FloodNotPassable from "../assets/floodZonesAssets/not_passable.svg";
+import PinPluviometerOfficial from "../assets/pluviometer/PinPluviometerOfficial";
export default {
floodZones: {
@@ -91,7 +92,7 @@ export default {
pluviometer: require("../assets/pluviometer/diario_pluviometrico.png"),
pluviometer_pin: PinPluviometroArt,
officialPluviometer: require("../assets/pluviometer/pluviometroOficial.png"),
- officialPluviometer_pin: require("../assets/pluviometer/PinPluviometroOficial.png"),
+ officialPluviometer_pin: PinPluviometerOfficial,
PluviometerIcon: Pluviometer,
OfficialPluviometer: OfficialPluviometer,
AppLogoTitle: AppLogoTitle,
diff --git a/src/app/hooks/useFiltering.js b/src/app/hooks/useFiltering.js
index 6bd0ef5..ad70367 100644
--- a/src/app/hooks/useFiltering.js
+++ b/src/app/hooks/useFiltering.js
@@ -1,49 +1,53 @@
import moment from "moment";
function useFiltering(location) {
- const initialDate = moment().format("YYYY-MM-DDTHH:mm:ss");
+ const endpoint =
+ "wss://waterproofing.geog.uni-heidelberg.de/wss/hot/formsanswers?";
+ const initialDate = moment().add(1, "days").format("YYYY-MM-DDTHH:mm:ss");
const finalDate = moment().subtract(1, "days").format("YYYY-MM-DDTHH:mm:ss");
+ // console.log(initialDate+"/"+finalDate);
+
const filters = [
{
name: "floodZones",
socketUrl: new WebSocket(
- "wss://waterproofing.geog.uni-heidelberg.de/wss/hot/formsanswers?" +
+ endpoint +
`type=FLOODZONES_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=5000&limit=5`
),
},
{
name: "rain",
socketUrl: new WebSocket(
- "wss://waterproofing.geog.uni-heidelberg.de/wss/hot/formsanswers?" +
+ endpoint +
`type=RAIN_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=30`
),
},
{
name: "riverFlood",
socketUrl: new WebSocket(
- "wss://waterproofing.geog.uni-heidelberg.de/wss/hot/formsanswers?" +
+ endpoint +
`type=RIVERFLOOD_FORM&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=5`
),
},
{
name: "pluviometer",
socketUrl: new WebSocket(
- "wss://waterproofing.geog.uni-heidelberg.de/wss/hot/formsanswers?" +
+ endpoint +
`type=PLUVIOMETER_REGISTRATION&time=${finalDate}/${initialDate}&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=5`
),
},
{
name: "susceptibilityAreas",
socketUrl: new WebSocket(
- "wss://waterproofing.geog.uni-heidelberg.de/wss/hot/formsanswers?" +
+ endpoint +
`type=FLOODZONES_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=50000&limit=15`
),
},
{
name: "automaticPluviometer",
socketUrl: new WebSocket(
- "wss://waterproofing.geog.uni-heidelberg.de/wss/hot/formsanswers?" +
+ endpoint +
`type=PLUVIOMETERS_OFFICIAL&lat=${location.lat}&lon=${location.long}&buffer=500000&limit=10`
),
},
diff --git a/src/app/hooks/useSocketMarkers.js b/src/app/hooks/useSocketMarkers.js
index 9b951bc..801cd33 100644
--- a/src/app/hooks/useSocketMarkers.js
+++ b/src/app/hooks/useSocketMarkers.js
@@ -5,7 +5,7 @@ import PinTransitavel from "../assets/floodZonesAssets/PinTransitavel";
const custom_assets = {
pluviometer: assets.pluviometer,
- officialPluviometer: assets.officialPluviometer,
+ officialPluviometer: assets.pluviometer,
floodZones: assets.floodZones,
riverLevel: ["low", "normal", "high", "flooding"].map((key) => {
return assets.riverLevel[key];
@@ -17,7 +17,7 @@ const custom_assets = {
const custom_assets_pin = {
pluviometer: assets.pluviometer_pin,
- officialPluviometer: assets.pluviometer_pin,//assets.officialPluviometer_pin,
+ officialPluviometer: assets.officialPluviometer_pin,
floodZones: {
passable: PinTransitavel,
not_passable: PinIntransitavel,
@@ -157,26 +157,22 @@ function buildMarkerObject(response, name) {
const r = JSON.parse(response);
const resposta = r.formsanswersgeom;
const formsanswersgeom = JSON.parse(resposta).coordinates;
-
var situation = null;
- if (r.fias) {
- r.fias.forEach(function (f) {
- if (f.fieldname == "situation") {
- situation = f.fieldsanswersvalue;
- }
- });
+ if (r.array_to_json) {
+ situation = r.array_to_json.find((field)=> field.fieldname == "situation");
}
+// console.log(situation.fieldsanswersvalue);
return {
ID: r.formsanswersid,
name: name,
- title: situation,
+ title: situation ? situation.fieldsanswersvalue : null,
coordinate: {
latitude: formsanswersgeom[1],
longitude: formsanswersgeom[0],
},
- image: getImage(name, situation),
+ image: getImage(name, situation ? situation.fieldsanswersvalue : null),
};
}
diff --git a/src/app/screens/MapFeedScreen.js b/src/app/screens/MapFeedScreen.js
index d21c1d8..3707d2f 100644
--- a/src/app/screens/MapFeedScreen.js
+++ b/src/app/screens/MapFeedScreen.js
@@ -13,14 +13,14 @@ export default function MapFeedScreen(props) {
const [dataOptionsToShow, setDataOptionsToShow] = useState({
oficial: {
- automaticPluviometer: false,
+ automaticPluviometer: true,
susceptibilityAreas: false,
},
citzen: {
- floodRisk: false,
- pluviometer: false,
- rain: true,
- floodZones: false,
+ floodRisk: true,
+ pluviometer: true,
+ rain: false,
+ floodZones: true,
riverFlood: false,
},
});
diff --git a/src/app/screens/SharingFloodZonesScreen.js b/src/app/screens/SharingFloodZonesScreen.js
index 42b9648..9c0ce92 100644
--- a/src/app/screens/SharingFloodZonesScreen.js
+++ b/src/app/screens/SharingFloodZonesScreen.js
@@ -87,14 +87,14 @@ function SharingFloodZonesScreen(props) {
SvgImage={assets.floodZones.passable}
onPress={() => {
setPassable(1);
- setFloodSituation("TRANSITAVEL");
+ setFloodSituation("TRANSITÁVEL");
}}
/>
{
setPassable(0);
- setFloodSituation("INTRANSITAVEL");
+ setFloodSituation("INTRANSITÁVEL");
}}
label={"INTRANSITÁVEL"}
isToggle={passable == 0}