Hiding layers
HTML
<link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.css">
<script src="http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js"></script>
<div id="map"></div>
<ul>
<li><a id="restaurants" href="#">restaurants</a></li>
<li><a id="sport" href="#">sport</a></li>
<li><a id="sights" href="#">sights</a></li>
</ul>
CSS
#map { height: 480px; }
a:link {
color: #909090;
}
a.selected:link {
color: #101010;
}
JavaScript
// setup map
var lat = 48.185556;
var lng = 11.620278;
var zoom = 10;
var map = new L.Map('map');
var osmUrl='http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';
var osmAttrib='Map data © OpenStreetMap contributors';
var osm = new L.TileLayer(osmUrl, {minZoom: 5, maxZoom: 18, attribution: osmAttrib});
map.addLayer(osm);
map.setView(new L.LatLng(lat, lng), zoom);
// add markers
var aa = L.marker([48.185556, 11.620278]).bindPopup('AA'),
bb = L.marker([48.152222, 11.592778]).bindPopup('BB'),
cc = L.marker([48.161209, 11.597989]).bindPopup('CC'),
dd = L.marker([48.14350, 11.58775]).bindPopup('DD'),
ee = L.marker([48.14989, 11.59094]).bindPopup('EE'),
ff = L.marker([48.15958, 11.60608]).bindPopup('FF');
var restaurants = L.layerGroup([aa, bb]);
var sport = L.layerGroup([cc, dd]);
var sights = L.layerGroup([ee, ff]);
$("#restaurants").click(function(event) {
event.preventDefault();
if(map.hasLayer(restaurants)) {
$(this).removeClass('');
map.removeLayer(restaurants);
} else {
map.addLayer(restaurants);
$(this).addClass('');
}
});
$("#sport").click(function(event) {
event.preventDefault();
if(map.hasLayer(sport)) {
$(this).removeClass('selected');
map.removeLayer(sport);
} else {
map.addLayer(sport);
$(this).addClass('selected');
}
});
$("#sights").click(function(event) {
event.preventDefault();
if(map.hasLayer(sights)) {
$(this).removeClass('selected');
map.removeLayer(sights);
} else {
map.addLayer(sights);
$(this).addClass('selected');
}
});