forked from JuliaElenasc/Catasto
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathconfig.py
105 lines (93 loc) · 3.56 KB
/
config.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
from pymongo import MongoClient
from flask import Flask, render_template, request, jsonify
import pymongo
import json
app = Flask(__name__)
myClient = pymongo.MongoClient('mongodb+srv://BIGDATA1:[email protected]/')
mydb = myClient['proveITSAR']
myCollection = mydb['catasto_geojson']
catasto_lines = mydb['catasto_lines']
@app.route('/')
def index():
return render_template('index.html')
@app.route('/dati', methods=['GET', 'POST'])
def dati():
if request.method == 'POST':
print(request.form)
if not request.form['cod_fisc'] == '':
cod_fisc = request.form['cod_fisc']
resultados = myCollection.find({"properties.cod_fisc": cod_fisc})
else:
print("Longitud ingresada")
latitud = float(request.form['latitud'])
longitud = float(request.form['longitud'])
print(longitud)
resultados = myCollection.find({
'geometry.coordinates': {
'$elemMatch': {
'$elemMatch': {
'$elemMatch': {
'$eq': [latitud, longitud]
}
}
}
}
})
lista_resultados = []
for resultado in resultados:
clase = resultado['properties']['fclass']
name = resultado['properties']['name']
nome = resultado['properties']['nome']
cognome = resultado['properties']['cognome']
types = resultado['properties']['type']
lista_resultados.append({
'clase': clase,
'name': name,
'nome': nome,
'cognome': cognome,
'type': types
})
if lista_resultados:
print(lista_resultados)
return render_template('dati.html', resultados=lista_resultados)
else:
return render_template('dati.html', mensaje="No se encontraron datos para el código fiscal o las coordenadas proporcionadas.")
return render_template('dati.html')
coordinates=[]
@app.route('/routes', methods=['GET','POST'])
def save_coord():
global coordinates
formatted_results=[]
if request.method == 'POST':
data = request.get_json()
if 'coordinates' in data:
received_coordinates = data['coordinates']
coordinates.extend(received_coordinates)
geo_coordinates = [[coord['lng'], coord['lat']] for coord in received_coordinates]
results = myCollection.find({
"geometry": {
"$geoIntersects": {
"$geometry": {
"type": "LineString",
"coordinates": geo_coordinates
}
}
}
})
for result in results:
clase = result['properties']['fclass']
name = result['properties']['name']
nome = result['properties']['nome']
cognome = result['properties']['cognome']
types = result['properties']['type']
formatted_results.append({
'clase': clase,
'name': name,
'nome': nome,
'cognome': cognome,
'types': types
})
return (formatted_results)
return render_template('routes.html')
if __name__ == '__main__':
app.run(debug=True)