Last active
August 29, 2015 14:01
-
-
Save jameslaneconkling/4f12dc2427e6d3d6f3e6 to your computer and use it in GitHub Desktop.
adding/removing grid layers using L.control.layers() control
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<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