diff options
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 |
commit | 04e654a925565f75a9efdb845de88d166bfbd76e (patch) | |
tree | 5098c9bf08633077e7a45fc00e766a13fbdc2dda /chimere/models.py | |
parent | 54facb137f45e9ea5fc774203c45d508184973d5 (diff) | |
download | Chimère-04e654a925565f75a9efdb845de88d166bfbd76e.tar.bz2 Chimère-04e654a925565f75a9efdb845de88d166bfbd76e.zip |
Improve JSON generation performance
Diffstat (limited to 'chimere/models.py')
-rw-r--r-- | chimere/models.py | 20 |
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 ''' |