Skip to content

Instantly share code, notes, and snippets.

@jameslaneconkling
Last active August 29, 2015 14:01
Show Gist options
  • Save jameslaneconkling/4f12dc2427e6d3d6f3e6 to your computer and use it in GitHub Desktop.
Save jameslaneconkling/4f12dc2427e6d3d6f3e6 to your computer and use it in GitHub Desktop.
adding/removing grid layers using L.control.layers() control
<script type='text/javascript'>
//JLC additions
gridControls = {}
var map = L.mapbox.map('map', 'geointerest.map-dqz2pa8r', { zoomControl: false }).setView([17.1456, -87.0029], 8);
map.options.maxZoom = 13;map.options.minZoom = 6;
map.legendControl.addLegend(document.getElementById('legend-content').innerHTML);
new L.Control.Zoom({ position: 'topleft' }).addTo(map);
L.control.scale({ position: 'bottomleft' }).addTo(map);
L.control({ position: 'topleft' })
map.attributionControl.setPrefix('<a href="http://www.naturalcapitalproject.org/people.html#Verutes">Mapping portal by Gregg Verutes</a>');
var BelizeBaseMap = L.mapbox.gridLayer('geointerest.BelizeBaseMap');
map.addLayer(BelizeBaseMap);
map.addControl(L.mapbox.gridControl(BelizeBaseMap));
// build Belizelayers, grid layers, and grid controls
// var BelizeLayers = {
// Lobster_grid: L.mapbox.gridLayer('geointerest.BelizeLobster')
// };
// BelizeLayers.Lobster_gridControl = L.mapbox.gridControl(BelizeLayers.Lobster_grid);
// var BelizeLobster = L.mapbox.gridLayer('geointerest.BelizeLobster');
// map.addLayer(BelizeLobster);
// map.addControl(L.mapbox.gridControl(BelizeLobster, {follow: true}));
//var BelizeCP = L.mapbox.gridLayer('geointerest.BelizeCP');
//map.addLayer(BelizeCP);
//map.addControl(L.mapbox.gridControl(BelizeCP, {follow: true}));
var mapboxUrl='http://a.tiles.mapbox.com/v3/examples.map-9ijuk24y/{z}/{x}/{y}.png';
var mb = new L.TileLayer(mapboxUrl, {minZoom: 0, maxZoom: 14});
var miniMap = new L.Control.MiniMap(mb, { toggleDisplay: true }).addTo(map);
layerControl = L.control.layers({
'satellite': L.mapbox.tileLayer('geointerest.map-dqz2pa8r').addTo(map),
'terrain': L.mapbox.tileLayer('examples.map-9ijuk24y'),
}, {
'Coastal Zone (<i>zoom level > 10 only</i>)': L.mapbox.tileLayer('geointerest.BelizeLandMap').addTo(map),
'Habitats': L.mapbox.tileLayer('geointerest.BelizeHabitats').addTo(map),
'Marine Recreation': L.mapbox.tileLayer('geointerest.BelizeMarineRec'),
'Fishing Area': L.mapbox.tileLayer('geointerest.BelizeFishingArea'),
'Agricultural Runoff': L.mapbox.tileLayer('geointerest.BelizeAgRunoff'),
'Special Development Areas': L.mapbox.tileLayer('geointerest.BelizeSDA'),
'Oil Exploration': L.mapbox.tileLayer('geointerest.BelizeOil'),
'Marine Transportation': L.mapbox.tileLayer('geointerest.BelizeTransport'),
'Dredging': L.mapbox.tileLayer('geointerest.BelizeDredge'),
'Conservation': L.mapbox.tileLayer('geointerest.BelizeConservation'),
'Aquaculture': L.mapbox.tileLayer('geointerest.BelizeAqua'),
'Coastal Development': L.mapbox.tileLayer('geointerest.BelizeDevelopment'),
'Cultural & Historic Areas<hr><b>InVEST Outputs:</b>': L.mapbox.tileLayer('geointerest.BelizeCHA'),
'Risk to Habitats': L.mapbox.tileLayer('geointerest.BelizeHabitatsRisk'),
'Recreation': L.mapbox.tileLayer('geointerest.BelizeRecreation'),
'Spiny Lobster': L.mapbox.tileLayer('geointerest.BelizeLobster'),
'Coastal Protection': L.mapbox.tileLayer('geointerest.BelizeCP'),
'Coastal Hazard': L.mapbox.tileLayer('geointerest.BelizeCV'),
'Towns / Planning Regions<hr><b>"Informed Management" Zones</b>': L.mapbox.tileLayer('geointerest.BelizeBaseMap').addTo(map),
}, {position: 'topleft'}).addTo(map);
map.on('layeradd', function(e) {
if (e.layer.getTileJSON) {
map.legendControl.addLegend(e.layer.getTileJSON().legend);
//JLC additions
var layer_id = e.layer.getTileJSON().id;
if (!gridControls[layer_id]){
var grid = L.mapbox.gridLayer(layer_id);
var gridControl = L.mapbox.gridControl(grid, {follow: true});
gridControls[layer_id] = [grid, gridControl];
}
map.addLayer(gridControls[layer_id][0])
map.addControl(gridControls[layer_id][1])
}
});
map.on('layerremove', function(e) {
if (e.layer.getTileJSON) {
map.legendControl.removeLegend(e.layer.getTileJSON().legend);
//JLC additions
var layer_id = e.layer.getTileJSON().id;
map.removeLayer(gridControls[layer_id][0])
map.removeControl(gridControls[layer_id][1])
}
});
document.getElementById('map-ui').onclick = function(e) {
var pos = e.target.getAttribute('data-position1');
if (pos) {
var loc = pos.split(',');
map.setView(loc, 10);
}
var pos = e.target.getAttribute('data-position2');
if (pos) {
var loc = pos.split(',');
map.setView(loc, 11);
}
var pos = e.target.getAttribute('data-position3');
if (pos) {
var loc = pos.split(',');
map.setView(loc, 12);
}
var pos = e.target.getAttribute('data-position4');
if (pos) {
var loc = pos.split(',');
map.setView(loc, 8);
}
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment