]> gitweb.michael.orlitzky.com - dead/census-tools.git/commitdiff
Added a distances() method returning the distances between consumers/producers.
authorMichael Orlitzky <michael@orlitzky.com>
Wed, 24 Feb 2010 18:10:44 +0000 (13:10 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Wed, 24 Feb 2010 18:10:44 +0000 (13:10 -0500)
www/maps/maps/controllers/directions.py

index 4c765a3dad217bc4e428eb73122a4a073fe5bae3..a16bad20bf3fe0d2e7aa89d0bc70031ffcdfe8c1 100644 (file)
@@ -86,3 +86,33 @@ class DirectionsController(BaseController):
         response.headers['Content-disposition'] = 'attachment; filename=routes.kml'
         return doc.to_kml()
 
+
+    def directions_result_to_csv(self, result):
+        row = ''
+
+        for trip in result['trips']:
+
+            for route in trip['routes']:
+                route_start = self.get_route_address(route, True)
+                route_end   = self.get_route_address(route, False)
+                row += '"' + route_start + '"'
+                row += ', '
+                row += '"' + route_end   + '"'
+                row += ', '
+                row += str(float(route['distance']['value']) / 1000)
+                row += "\n"
+
+        return row
+
+    
+    def distances(self):
+        directions_array = json.loads(request.POST['data'])
+        csv = ''
+        
+        for result in directions_array:
+            csv += self.directions_result_to_csv(result) + "\n"
+        
+        response.content_type = 'text/csv'
+        response.headers['Content-disposition'] = 'attachment; filename=distances.csv'
+        return csv
+