Index: src/django_gheat/website/static/OpenStreetMap.js
===================================================================
--- src/django_gheat/website/static/OpenStreetMap.js	(revision 9152)
+++ src/django_gheat/website/static/OpenStreetMap.js	(revision 9166)
@@ -158,5 +158,5 @@
     initialize: function(name, options) {
         var url = [
-            "/website/tile/${z}/${x},${y}.png"
+            "/website/tile/${z}/${x},${y}.png?colour=255,0,0"
         ];
         options = OpenLayers.Util.extend({ numZoomLevels: 21 }, options);
@@ -167,2 +167,15 @@
     CLASS_NAME: "OpenLayers.Layer.Overlay2"
 });
+
+OpenLayers.Layer.OSM.Overlay3 = OpenLayers.Class(OpenLayers.Layer.OSM, {
+    initialize: function(name, options) {
+        var url = [
+            "/website/tile/${z}/${x},${y}.png?colour=0,0,255&accespoint__ssid__icontains=WirelessLeiden"
+        ];
+        options = OpenLayers.Util.extend({ numZoomLevels: 21 }, options);
+        var newArguments = [name, url, options];
+        OpenLayers.Layer.OSM.prototype.initialize.apply(this, newArguments);
+    },
+
+    CLASS_NAME: "OpenLayers.Layer.Overlay3"
+});
Index: src/django_gheat/website/static/heatmap.js
===================================================================
--- src/django_gheat/website/static/heatmap.js	(revision 9152)
+++ src/django_gheat/website/static/heatmap.js	(revision 9166)
@@ -24,6 +24,9 @@
 	map.addLayer(layerHeatmap);
 
-	layerHeatmap2 = new OpenLayers.Layer.OSM.Overlay2("Overlay 2", {isBaseLayer: false, visibility: false});
+	layerHeatmap2 = new OpenLayers.Layer.OSM.Overlay2("All Access points", {isBaseLayer: false, visibility: false});
 	map.addLayer(layerHeatmap2);
+
+	layerHeatmap3 = new OpenLayers.Layer.OSM.Overlay3("Wireless Leiden Only", {isBaseLayer: false, visibility: true});
+	map.addLayer(layerHeatmap3);
 	
 	var lon   = 4.48907;
Index: src/django_gheat/website/tile.py
===================================================================
--- src/django_gheat/website/tile.py	(revision 9152)
+++ src/django_gheat/website/tile.py	(revision 9166)
@@ -144,5 +144,5 @@
 
 
-def make_tile(x,y,z):
+def make_tile(x,y,z,filter={},colour=(255,0,0)):
   """
   Crude attempt to generate tiles, by placing a gradient circle on a
@@ -187,9 +187,13 @@
   lat_max = 0
   lon_max = 0
-  
+
+  filter.update({
+    'latitude__lte' : nw_deg.lat,
+    'latitude__gte' : se_deg.lat,
+    'longitude__lte' : se_deg.lon,
+    'longitude__gte' : nw_deg.lon
+  })
   # TODO: This is currently hard-coded to display _all_ metingen
-  metingen = Meting.objects.select_related().filter(
-     latitude__lte=nw_deg.lat,latitude__gte=se_deg.lat,
-     longitude__lte=se_deg.lon,longitude__gte=nw_deg.lon)
+  metingen = Meting.objects.select_related().filter(**filter)
 
   # XXX: Signal is not normalized in the database making it unknown when a
@@ -232,5 +236,5 @@
     # http://stackoverflow.com/questions/3104781/inverse-distance-weighted-idw-interpolation-with-python
     signal_normalized = MAX_RANGE - (MAX_SIGNAL - meting.signaal)
-    im.add_circle((xcoord,ycoord),float(signal_normalized) / meters_per_pixel,(255,0,0), MAX_SIGNAL - meting.signaal)
+    im.add_circle((xcoord,ycoord),float(signal_normalized) / meters_per_pixel,colour, MAX_SIGNAL - meting.signaal)
   
   log.info("BoundingBox NW: %s" % nw_deg)
@@ -248,5 +252,12 @@
 # Create your views here.
 def serve_tile(request,zoom,x,y):
-  im = make_tile(int(x),int(y),int(zoom))
+  filter = {}
+  colour = (255,0,0)
+  for key, value in request.GET.iteritems():
+    if key == 'colour':
+      colour = tuple(map(int,value.split(',')))
+    else:
+      filter[key] = value
+  im = make_tile(int(x),int(y),int(zoom),filter=filter,colour=colour)
   response = HttpResponse(mimetype="image/png")
   im.write(response,'png')
