diff --git a/webapp/main.py b/webapp/main.py
index 56b0e6b..1d7efd5 100644
--- a/webapp/main.py
+++ b/webapp/main.py
@@ -1,7 +1,19 @@
-from flask import Flask, render_template
+from flask import Flask, request, render_template
app = Flask(__name__)
@app.route("/", methods=['GET'])
def getMap():
return render_template("map.html")
+
+@app.route("/eligdata", methods=['GET'])
+def getEligData():
+ args = request.args
+ if 'swx' in args and 'swy' in args and \
+ 'nex' in args and 'ney' in args:
+ return { "buildings": [
+ {"x": args['swx'], "y":args['swy'], "label": "dummy elig val" },
+ {"x": args['nex'], "y":args['ney'], "label": "dummy elig val 2" }
+ ]}
+ else:
+ return "Missing coordinates", 400
diff --git a/webapp/static/style.css b/webapp/static/style.css
index 306c72a..e9d8711 100644
--- a/webapp/static/style.css
+++ b/webapp/static/style.css
@@ -11,5 +11,13 @@ body {
#search-addr-autocomplete {
display: float;
top: 0;
- z-index: 1;
+ z-index: 2;
+}
+
+#btn-load-elig-data {
+ top: 4em;
+ right: 0;
+ position: fixed;
+ z-index: 1;
+ padding: .5em;
}
diff --git a/webapp/templates/app.js b/webapp/templates/app.js
index 7d8c98f..65a2160 100644
--- a/webapp/templates/app.js
+++ b/webapp/templates/app.js
@@ -1,16 +1,15 @@
+let markers = [];
function initMap() {
let map = L.map('map').setView([46.710, 3.669], 6);
L.tileLayer('https://{s}.tile.openstreetmap.fr/osmfr/{z}/{x}/{y}.png', {
attribution: '© OpenStreetMap contributors'
}).addTo(map);
- L.marker([51.5, -0.09]).addTo(map)
- .bindPopup('A pretty CSS3 popup.
Easily customizable.')
- .openPopup();
return map;
}
function initAddrSearch(map) {
const autocompleteOptions = {
+ debounceTime: 300,
search: async (query) => {
if(query.length > 2) {
const mapCenter = map.getCenter();
@@ -22,27 +21,49 @@ function initAddrSearch(map) {
return [];
}
},
- onSubmit: (res) => {
- const searchInput = document.getElementById('search-addr-autocomplete-input');
- const p = res.properties;
- searchInput.value = `${p.name} - ${p.postcode} ${p.city}, ${p.county}`;
- console.log("moving to");
- console.log(res.geometry.coordinates);
- // We already filtered out the result not having strictly 2 coordinates at item display
- map.setView([res.geometry.coordinates[1],res.geometry.coordinates[0]], 19)
- },
- debounceTime: 300,
renderResult: (res, props) => {
const p = res.properties;
if(p.name && p.postcode && p.city && p.county && res.geometry.coordinates && res.geometry.coordinates.length === 2)
return `