<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Multiple Styles</title>
<link href="https://tiles.locationiq.com/v3/libs/leaflet/1.8.0/leaflet.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="https://tiles.locationiq.com/v3/libs/leaflet/1.8.0/leaflet.js"></script>
<script type="text/javascript" src="https://tiles.locationiq.com/v3/js/liq-styles-ctrl-leaflet.js?v=0.1.8"></script>
<style type="text/css">
body {
margin: 0;
}
#map {
width: 100vw;
height: 100vh;
}
</style>
</head>
<body>
<div id='map'></div>
<!-- location control -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet.locatecontrol/dist/L.Control.Locate.min.css" />
<script src="https://cdn.jsdelivr.net/npm/leaflet.locatecontrol/dist/L.Control.Locate.min.js" charset="utf-8"></script>
<script type="text/javascript">
// Maps access token goes here
var key = 'pk.aa7f5d0539c5675b7f3429402939d8fa';
// Add layers that we need to the map
var streets = L.tileLayer.Unwired({key: key, scheme: "streets"});
// Initialize the map
var map = L.map('map', {
center: [39.73, -104.99], // Map loads with this location as center
zoom: 14,
scrollWheelZoom: true,
layers: [streets],
zoomControl: false
});
// Define different layers
var dark = L.tileLayer.Unwired({ key: key, scheme: "dark" });
var light = L.tileLayer.Unwired({ key: key, scheme: "light" });
// Add the 'zoom' control
L.control.zoom({
position: 'topright'
}).addTo(map);
// Add the 'layers' control
L.control.layers({
"Streets": streets,
"Dark": dark,
"Light": light
}, null, {
position: "topright"
}).addTo(map);
// Add the 'scale' control
L.control.scale().addTo(map);
L.control.locate({
position: "bottomright"
}).addTo(map);
//fix for white lines in satellite view https://github.com/Leaflet/Leaflet/issues/3575#issuecomment-362230413
(function () {
var originalInitTile = L.GridLayer.prototype._initTile
L.GridLayer.include({
_initTile: function (tile) {
originalInitTile.call(this, tile);
var tileSize = this.getTileSize();
tile.style.width = tileSize.x + 1 + 'px';
tile.style.height = tileSize.y + 1 + 'px';
}
});
})()
</script>
</body>
</html>