var request = require("request")
module.exports = {
getWeatherForecast:function (lat, long, callback) {
request("https://api.hgbrasil.com/weather?key=dde75659&lat=" + lat + "&log=" + long + "&user_ip=remote", function (error, response, body) {
callback(error, response, body)
})
}
}
var request = require("request")
module.exports = {
getFloodRisk:function(lat1, long1, lat2, long2, callback){
var url='https://portal1.snirh.gov.br/ana/rest/services/dados_abertos/Trechos_de_Curso_de_Agua_Inundaveis/FeatureServer/0/query?where=1%3D1&outFields=*&geometry='+long1+'%2C'+lat1+'%2C'+long2+'%2C'+lat2+'&geometryType=esriGeometryEnvelope&inSR=4326&spatialRel=esriSpatialRelIntersects&outSR=4326&f=json'
request(url, function (error, response, body) {
callback(error, response, body)
})
}
}
const express = require('express')
const apihg = require('./services/hgtempo')
const apiana = require('./services/ana')
const app = express()
app.get('/floodrisk', function (req, res) {
apihg.getWeatherForecast(req.query.clientLat, req.query.clientLong, function (errHg, respHg, bodyHg) {
apiana.getFloodRisk(req.query.firstLat, req.query.firstLong, req.query.secondLat, req.query.secondLong, function (errAna, respAna, bodyAna) {
var bodyHgJson = JSON.parse(bodyHg)
var returnHg = {
condition: bodyHgJson.results.condition_slug,
forecast: bodyHgJson.results.forecast,
}
var vulnerabilidade = JSON.parse(bodyAna).features[0].attributes.VULNERABILIDADE
var condicao = returnHg.condition
var grauRisco;
if (condicao == "storm" && vulnerabilidade == "Alta" || condicao == "hail" && vulnerabilidade == "Alta") {
grauRisco = "Muito Alto"
} else if (condicao == "storm" && vulnerabilidade == "Media" || condicao == "hail" && vulnerabilidade == "Media" ||
condicao == "rain" && vulnerabilidade == "Alta" || condicao == "fog" && vulnerabilidade == "Alta") {
grauRisco = "Alto"
} else if (condicao == "storm" && vulnerabilidade == "Baixa" || condicao == "hail" && vulnerabilidade == "Baixa" ||
condicao == "rain" && vulnerabilidade == "Media" || condicao == "clear_day" && vulnerabilidade == "Alta" ||
condicao == "clear_night" && vulnerabilidade == "Alta" || condicao == "cloud" && vulnerabilidade == "Alta" ||
condicao == "cloudly_day" && vulnerabilidade == "Alta" || condicao == "cloudly_day" && vulnerabilidade == "Alta" ||
condicao == "cloudly_night" && vulnerabilidade == "Alta") {
grauRisco = "Médio"
} else if (condicao == "rain" && vulnerabilidade == "Baixa" || condicao == "fog" && vulnerabilidade == "Media" ||
condicao == "clear_day" && vulnerabilidade == "Media" || condicao == "clear_night" && vulnerabilidade == "Media" ||
condicao == "cloud" && vulnerabilidade == "Media" || condicao == "cloudly_day" && vulnerabilidade == "Media" ||
condicao == "cloudly_night" && vulnerabilidade == "Media") {
grauRisco = "baixo"
} else if (condicao == "fog" && vulnerabilidade == "Baixa" || condicao == "clear_day" && vulnerabilidade == "Baixa" ||
condicao == "clear_night" && vulnerabilidade == "Baixa" || condicao == "cloudly_day" && vulnerabilidade == "Baixa" ||
condicao == "cloudly_night" && vulnerabilidade == "Baixa") {
grauRisco = "Muito Baixo"
} else {
grauRisco = "indefinido"
}
var json = { grauRisco: grauRisco }
res.json(json)
})
})
})
app.listen(3000, function () {
console.log("O servidor na porta 3000 está online")
})