Make random page show polygon on map

This commit is contained in:
Edward Betts 2023-11-04 21:36:05 +00:00
parent ea2f172388
commit 690d3281df

View file

@ -188,16 +188,10 @@ def index() -> str | Response:
@app.route("/random")
def random_location() -> str:
def random_location() -> str | Response:
"""Return detail page for random lat/lon."""
lat, lon = get_random_lat_lon()
elements = model.Polygon.coords_within(lat, lon)
result = do_lookup(elements, lat, lon)
return render_template(
"detail.html", lat=lat, lon=lon, result=result, elements=elements
)
return build_detail_page(lat, lon)
@app.route("/wikidata_tag")
@ -223,14 +217,8 @@ def wikidata_tag() -> str:
)
@app.route("/detail")
def detail_page() -> Response | str:
"""Detail page."""
try:
lat_str, lon_str = request.args["lat"], request.args["lon"]
lat, lon = float(lat_str), float(lon_str)
except TypeError:
return redirect(url_for("index"))
def build_detail_page(lat: float, lon: float) -> str:
"""Run lookup and build detail page."""
try:
reply = lat_lon_to_wikidata(lat, lon)
except wikidata.QueryError as e:
@ -251,5 +239,17 @@ def detail_page() -> Response | str:
)
@app.route("/detail")
def detail_page() -> Response | str:
"""Detail page."""
try:
lat_str, lon_str = request.args["lat"], request.args["lon"]
lat, lon = float(lat_str), float(lon_str)
except TypeError:
return redirect(url_for("index"))
return build_detail_page(lat, lon)
if __name__ == "__main__":
app.run(host="0.0.0.0")