diff options
author | Willi <willi@jups42.de> | 2012-12-02 15:48:47 +0100 |
---|---|---|
committer | Willi <willi@jups42.de> | 2012-12-02 15:48:47 +0100 |
commit | e6553439a6857080c375c59ae8275112680b8efc (patch) | |
tree | 5a515becdb9e90368867b0047dddfe669319267e /resources | |
parent | 341797bc84fc0672e4eda0e79de815e7c2b123c8 (diff) | |
parent | 656847f983b84387229f6010fd000d0348566fa2 (diff) | |
download | health-map-e6553439a6857080c375c59ae8275112680b8efc.tar health-map-e6553439a6857080c375c59ae8275112680b8efc.tar.gz |
Merge branch 'master' of github.com:filbertkm/hospital-map
Diffstat (limited to 'resources')
-rw-r--r-- | resources/map.js | 38 | ||||
-rw-r--r-- | resources/op2geojson.js | 9 |
2 files changed, 27 insertions, 20 deletions
diff --git a/resources/map.js b/resources/map.js index 6c7fbdf..482a5f7 100644 --- a/resources/map.js +++ b/resources/map.js @@ -2,18 +2,21 @@ $(document).ready(function() { var self = this; - self.popupTemplate = _.template('<dl> <% _.each(properties, function(val, key) { %> \ + self.popupTemplate = _.template('<table><tr><th>Key</th><th>Value</th></tr>\ + <% _.each(properties, function(val, key) { %> \ <% if (/\:/.exec(key)) { %> \ - <dl> \ - <dt><%= key.split(":")[1] %> </dt> \ - <dd><%= val %> </dd> \ - </dl> \ + <tr> \ + <td><%= key.split(":")[1] %> </td> \ + <td><%= val %> </td> \ + </tr> \ <% } else {%> \ - <dt><%= key %> </dt> \ - <dd><%= val %> </dd> \ + <tr>\ + <td><%= key %> </td> \ + <td><%= val %> </td> \ + </tr>\ <% } %> \ <% }); %> \ - </dl>'); + </table>'); // to filter them later self.hospitalAttributes = []; @@ -52,10 +55,13 @@ $(document).ready(function() { $('.leaflet-control-layers-selector').first().trigger('click') } - function createQueryURL(bbox) { - return "http://overpass-api.de/api/interpreter?" + - "data=[out:json];(node[amenity=hospital](" + bbox + - ");way[amenity=hospital]("+ bbox +");node(w););out;"; + function createQueryData(bbox) { + // TODO: Use POST instead of GET, for neatness + return "data=[out:json];(" + + "(node[amenity=hospital]("+ bbox +");way[amenity=hospital]("+ bbox +");node(w););" + + "(node[amenity=doctors]("+ bbox +");way[amenity=doctors]("+ bbox +");node(w););" + + "(node[amenity=dentist]("+ bbox +");way[amenity=dentist]("+ bbox +");node(w););" + + ");out;"; } map.on('hospitalsfetched', addHospitalLayer); @@ -73,9 +79,9 @@ $(document).ready(function() { var sw = bounds.getSouthWest(); var ne = bounds.getNorthEast(); bbox = [sw.lat, sw.lng, ne.lat, ne.lng].join(','); - var url = createQueryURL(bbox); + var data = createQueryData(bbox); converter = new op2geojson(); - converter.fetch(url, function(data) { + converter.fetch("http://overpass-api.de/api/interpreter", data, function(data) { self.hospitals = data; layer = buildLayer(data) self.hospitalLayer.addData(data); @@ -122,9 +128,9 @@ $(document).ready(function() { } function geojsonLayer() { - url = createQueryURL(52.34,13.3,52.52,13.6); + data = createQueryData([52.34,13.3,52.52,13.6]); converter = new op2geojson(); - converter.fetch(url, function(data) { + converter.fetch("http://overpass-api.de/api/interpreter", data, function(data) { self.hospitals = data; layer = buildLayer(data); self.hospitalLayer = layer; diff --git a/resources/op2geojson.js b/resources/op2geojson.js index 55be9e3..c453df7 100644 --- a/resources/op2geojson.js +++ b/resources/op2geojson.js @@ -5,8 +5,8 @@ op2geojson = function() { var instance = {}, geojson; - instance.fetch = function(url, callback) { - $.getJSON(url, { format: "json" }, + instance.fetch = function(url, data, callback) { + $.post(url, data, function(data) { // List all of the returned nodes var nodes = []; @@ -19,7 +19,8 @@ op2geojson = function() { // Add nodes and ways to the layer var features = []; $.each(data.elements, function(i, item) { - if( item.type === 'node' && item.tags != null ) { + if( item.type === 'node' && item.tags != undefined + && item.tags['amenity'] != undefined) { features.push( instance.point(item) ); } else if (item.type === 'way') { features.push( instance.lineString(item, nodes) ); @@ -28,7 +29,7 @@ op2geojson = function() { geojson = instance.featureCollection(features); callback(geojson); } - ); + , "json");; }; instance.point = function(node) { |