Реализовал фильтрацию

This commit is contained in:
Krivchikov Dmitry 2014-07-03 21:46:23 +04:00
parent 06704acaeb
commit 32c43b03c0
2 changed files with 29 additions and 3 deletions

View File

@ -6,7 +6,7 @@
<div class="glyphicon glyphicon-minus big _b" title="Отдалить" onclick="myMap.zoomOut()"></div>
<div class="glyphicon glyphicon-globe _t boxButtonLayers" onclick="openBox('Layers')" title="Слои карты"></div>
<div class="glyphicon glyphicon-filter _c boxButtonFilter" title="Фильтры" onclick="openBox('Filter')"></div>
<div class="glyphicon glyphicon-filter _c boxButtonFilter" title="Фильтры и поиск" onclick="openBox('Filter')"></div>
<div class="glyphicon glyphicon-flag _b" title="Я на карте" onclick="showMeOnTheMap()"></div>
<div class="glyphicon glyphicon-list boxButtonRoute" title="Маршрут" onclick="openBox('Route')"></div>
@ -40,7 +40,7 @@
<div onclick="setLayer('yandex')" class="layers yandexLayer">Яндекс.Карты</div>
<div onclick="setLayer('yandexMap')" class="layers yandexMapLayer">Яндекс.Карты (схема)</div>
</div>
<div id="boxFilter">
<div id="boxFilter" style="height: 100%; overflow-y: auto;">
<h3>Фильтры и поиск</h3>
<span class="input-group">
<input type="text" id="addressField" class="form-control" placeholder="Поиск на карте..." onkeydown="if(event.keyCode == 13) {searchAdderess()}" />
@ -48,6 +48,10 @@
<button class="btn btn-default" type="button" onclick="searchAdderess()"><span class="glyphicon glyphicon-search"></span></button>
</span>
</span>
<br />
<?php foreach ($categories as $category): ?>
<input type="checkbox" value="<?=$category['id']?>" class="filterSelector"> <?=$category['name']?><br/>
<?php endforeach; ?>
</div>
<div id="boxRoute" style="height: 100%; overflow-y: auto;">
<h3>Маршрут</h3>

View File

@ -88,6 +88,8 @@ function init(lat, lng) {
}
});
$('.filterSelector').bind('change', function(){filter()});
return true;
}
@ -101,7 +103,7 @@ function constructPoint(data)
id = data['id'];
points[id] = L.marker(
[data['lat'], data['lng']], {icon: categories[data['categoryId']], title: data['name'],id: id}
[data['lat'], data['lng']], {icon: categories[data['categoryId']], title: data['name'], id: id, categoryId: data['categoryId']}
).on('click', function(e){showInfo(e.target.options.id);});
return points[id];
@ -429,3 +431,23 @@ function closePopup()
if (myMap._popup)
myMap._popup._close();
}
function filter()
{
var selected = new Array();
$('.filterSelector:checked').each(function(i, e){
selected.push($(e).val());
});
for(var key in points)
{
if (selected.length == 0 || points[key].options.categoryId == undefined || selected.indexOf(points[key].options.categoryId) != -1)
{
points[key].addTo(myMap);
}
else
{
myMap.removeLayer(points[key]);
}
}
}