aboutsummaryrefslogtreecommitdiff
path: root/resources
diff options
context:
space:
mode:
authorWilli <willi@jups42.de>2012-12-02 15:48:47 +0100
committerWilli <willi@jups42.de>2012-12-02 15:48:47 +0100
commite6553439a6857080c375c59ae8275112680b8efc (patch)
tree5a515becdb9e90368867b0047dddfe669319267e /resources
parent341797bc84fc0672e4eda0e79de815e7c2b123c8 (diff)
parent656847f983b84387229f6010fd000d0348566fa2 (diff)
downloadhealth-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.js38
-rw-r--r--resources/op2geojson.js9
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) {