summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2016-08-02 20:25:58 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2016-08-02 20:25:58 +0200
commit3ecd7bf48736d4dbc9aa91593dda932d3c523e1c (patch)
tree3327b24b1720f5b01e81d4ad9db60b011a654d13
parent077ceaed429ac0d51691e47a24305d721a971fb0 (diff)
downloadChimère-3ecd7bf48736d4dbc9aa91593dda932d3c523e1c.tar.bz2
Chimère-3ecd7bf48736d4dbc9aa91593dda932d3c523e1c.zip
Polygon: try to simplify geometry to have lighter loading
-rw-r--r--chimere/models.py7
-rw-r--r--chimere/views.py2
2 files changed, 6 insertions, 3 deletions
diff --git a/chimere/models.py b/chimere/models.py
index e3fa122..0fb42fb 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -1092,7 +1092,7 @@ class AggregatedPolygon(models.Model):
managed = False
db_table = 'chimere_aggregated_polygons'
- def getGeoJSON(self, color="", inner_color=''):
+ def getGeoJSON(self, simplify=False, color="", inner_color=''):
'''Return a GeoJSON string
'''
# get colors
@@ -1112,8 +1112,11 @@ class AggregatedPolygon(models.Model):
if not inner_color:
inner_color = c.inner_color
+ geom = self.polygon
+ if simplify:
+ geom = self.polygon.simplify(0.0003).json
attributes = {
- 'color': color, 'geometry': json.loads(self.polygon.geojson),
+ 'color': color, 'geometry': json.loads(geom),
'type': "Feature", "properties": {
'color': color,
'inner_color': inner_color,
diff --git a/chimere/views.py b/chimere/views.py
index 8eaa83a..52ac3b4 100644
--- a/chimere/views.py
+++ b/chimere/views.py
@@ -815,7 +815,7 @@ def _getGeoObjects(area_name, category_ids, status='A', getjson=True,
# no bounding box filter
if getjson:
for poly in query.all():
- items.append(json.loads(poly.getGeoJSON()))
+ items.append(json.loads(poly.getGeoJSON(simplify=True)))
else:
items += list(query)
else: