Markers at one zoom level
Hide markers outside a specific zoom level.
<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>Markers at one zoom level</title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<script src='https://api.mapbox.com/mapbox.js/v3.3.1/mapbox.js'></script>
<link href='https://api.mapbox.com/mapbox.js/v3.3.1/mapbox.css' rel='stylesheet' />
<style>
body { margin:0; padding:0; }
#map { position:absolute; top:0; bottom:0; width:100%; }
</style>
</head>
<body>
<div id='map'></div>
<script>
L.mapbox.accessToken = '<your access token here>';
var map = L.mapbox.map('map')
.setView([37.77396, -122.4366], 13)
.addLayer(L.mapbox.styleLayer('mapbox://styles/mapbox/streets-v11'));
var myFeatureLayer = L.mapbox.featureLayer('/mapbox.js/assets/data/sf_locations.geojson')
.addTo(map);
// the function given to this callback will be called every time the map
// completes a zoom animation.
map.on('zoomend', function() {
// here's where you decided what zoom levels the layer should and should
// not be available for: use javascript comparisons like < and > if
// you want something other than just one zoom level, like
// (map.getZoom > 10)
if (map.getZoom() === 13) {
// setFilter is available on L.mapbox.featureLayers only. Here
// we're hiding and showing the default marker layer that's attached
// to the map - change the reference if you want to hide or show a
// different featureLayer.
// If you want to hide or show a different kind of layer, you can use
// similar methods like .setOpacity(0) and .setOpacity(1)
// to hide or show it.
myFeatureLayer.setFilter(function() { return true; });
} else {
myFeatureLayer.setFilter(function() { return false; });
}
});
</script>
Get a free Mapbox account to create your own custom map and use it in this example.
Use this example by copying its source into your own HTML page and
replacing the Map ID
with
one of your own from your projects.
Having trouble with JavaScript? Try out Codecademy
or contact our support team.