summaryrefslogtreecommitdiff
path: root/chimere/models.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@peacefrogs.net>2013-04-09 01:58:59 +0200
committerÉtienne Loks <etienne.loks@peacefrogs.net>2013-04-09 01:58:59 +0200
commit04e654a925565f75a9efdb845de88d166bfbd76e (patch)
tree5098c9bf08633077e7a45fc00e766a13fbdc2dda /chimere/models.py
parent54facb137f45e9ea5fc774203c45d508184973d5 (diff)
downloadChimère-04e654a925565f75a9efdb845de88d166bfbd76e.tar.bz2
Chimère-04e654a925565f75a9efdb845de88d166bfbd76e.zip
Improve JSON generation performance
Diffstat (limited to 'chimere/models.py')
-rw-r--r--chimere/models.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/chimere/models.py b/chimere/models.py
index c269439..7db530a 100644
--- a/chimere/models.py
+++ b/chimere/models.py
@@ -624,6 +624,19 @@ class Marker(GeographicItem):
val = values[unicode(propertymodel.id)]
self.setProperty(propertymodel, val)
+ def _getItems(self, base_dct={"properties":{}}):
+ '''Return a dict representation for json
+ '''
+ item = base_dct
+ item["geometry"] = {"type": "Point",
+ "coordinates": [ self.point.x, self.point.y ]
+ }
+ item["properties"]['pk'] = self.pk
+ item["properties"]['name'] = self.name
+ if self.weight:
+ item["properties"]['weight'] = self.weight
+ return item
+
def getGeoJSON(self, categories_id=[]):
'''Return a GeoJSON string
'''
@@ -1117,6 +1130,13 @@ class Route(GeographicItem):
properties.append(property)
return properties
+ def _getItems(self, dct={'properties':{}}):
+ dct['geometry'] = { "type": "LineString",
+ "coordinates": [[point.x, point.y]
+ for point in self.route]}
+ dct['properties'].update({'id':self.id, 'name':self.name})
+ return dct
+
def getGeoJSON(self, color="#000"):
'''Return a GeoJSON string
'''