blob: fcf85049e60482306f82f06710380ef0420a1059 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
var streets = [];
var img_dir = '/streets/images/';
var street_file = '/streets/streets.min.json';
function doSearch() {
// take out previous results
$('#results').text('');
// figure out which districts to search
var enabled_districts = [];
if ($('#dist_51').prop('checked')) {
enabled_districts.push('51');
}
if ($('#dist_52').prop('checked')) {
enabled_districts.push('52');
}
if ($('#dist_53').prop('checked')) {
enabled_districts.push('53');
}
// perform the search
var f = new Fuse(streets, {keys: ['name', 'alternates'], threshold: 0.3});
var result = f.search($('#search').val());
// display results
result.forEach(function(street) {
// ensure it is in an enabled district
if (enabled_districts.indexOf(street.district) > -1) {
var html = '<div class="street">'
+ '<p class="name">' + street.name + '</p>';
if (street.hasOwnProperty("route")) {
html += '<p class="directions">' + street.route + '</p>';
} else if (street.hasOwnProperty("routes")) {
street.routes.forEach(function(route) {
html += '<div class="route">'
+ '<p class="title">' + route.title + '</p>'
+ '<p class="directions">' + route.route + '</p>'
+ '</div>';
});
}
if (street.hasOwnProperty('note')) {
html += '<p class="note">' + street.note + '</p>';
}
if (street.hasOwnProperty('image')) {
html += '<a href="' + img_dir + street.image + '"><img src="' + img_dir + street.image + '" alt="map" /></a>';
}
// add street to the results
$('#results').append(html);
}
});
}
$(document).ready(function() {
// give focus to search box
$('#search').focus();
// load the streets
$.getJSON(street_file, function (data) {
streets = data;
});
// search when value changed
$('#search').keyup(doSearch);
// search and refocus when checkboxes change
$(':checkbox').change(function () {
doSearch();
$('#search').focus();
});
$('#dist_51').prop('checked', true);
});
|