Map client holes fix

* fixes bug where holes in stored geometries would not be rendered properly on initial loading the map client
    * drawback: multiple polygons are treated as a single feature on the map client. Not a real issue but maybe we can find a better solution to this
* quality of life: renders geometry area in m² on detail and report view
pull/223/head
mpeltriaux 2 years ago
parent b57d52dc9f
commit d95827770d

@ -213,12 +213,9 @@ class Geometry(BaseResource):
geojson (dict): The FeatureCollection json (as dict) geojson (dict): The FeatureCollection json (as dict)
""" """
geom = self.geom geom = self.geom
geom.transform(ct=srid) if geom.srid != srid:
geom.transform(ct=srid)
polygons = []
for coords in geom.coords:
p = Polygon(coords[0], srid=geom.srid)
polygons.append(p)
geojson = { geojson = {
"type": "FeatureCollection", "type": "FeatureCollection",
"crs": { "crs": {
@ -230,8 +227,8 @@ class Geometry(BaseResource):
"features": [ "features": [
{ {
"type": "Feature", "type": "Feature",
"geometry": json.loads(x.geojson) "geometry": json.loads(geom.json),
} for x in polygons }
] ]
} }
return geojson return geojson

@ -2,10 +2,19 @@
<div class="col-sm-12"> <div class="col-sm-12">
<div class="card"> <div class="card">
<div class="card-header rlp-r"> <div class="card-header rlp-r">
<h5> <div class="row">
{% fa5_icon 'search-location' %} <div class="col-6">
{% trans 'Spatial reference' %} <h5>
</h5> {% fa5_icon 'search-location' %}
{% trans 'Spatial reference' %}
</h5>
</div>
<div class="col-6 text-right">
<h5>
{{ obj.geometry.geom.area|floatformat:2 }} m²
</h5>
</div>
</div>
</div> </div>
<div class="card-body"> <div class="card-body">
<div hx-trigger="load, every 5s" hx-get="{% url 'geometry-parcels' geom_form.instance.geometry.id %}"> <div hx-trigger="load, every 5s" hx-get="{% url 'geometry-parcels' geom_form.instance.geometry.id %}">

Loading…
Cancel
Save