
To create web interactive maps with Leaflet and Mapbox, you can follow these general steps:
- Sign up for a Mapbox account: Go to the Mapbox website and sign up for a free account. Once you have an account, you will be given an API access token that you will need later to access Mapbox services.
- Set up your development environment: You will need to have Node.js and npm installed on your machine. You can then create a new project and install the necessary dependencies.
- Create a basic HTML page: Create an HTML page with the necessary elements to display a map.
- Include Leaflet and Mapbox: In the HTML page, include the necessary JavaScript and CSS files for Leaflet and Mapbox.
- Set up your map: Use the Leaflet JavaScript library to create a new map object and set the initial view.
- Add a Mapbox tile layer: Use your Mapbox access token to add a tile layer to your map.
- Add interactivity: Use Leaflet’s built-in functionality to add markers, popups, and other interactive elements to your map.
Here is some sample code to get you started:
<!DOCTYPE html>
<html>
<head>
<title>Interactive Map with Leaflet and Mapbox</title>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/leaflet.min.js"></script>
</head>
<body>
<div id="mapid" style="width: 100%; height: 600px;"></div>
<script>
// create a new map object
var mymap = L.map('mapid').setView([51.505, -0.09], 13);
// add a Mapbox tile layer
L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {
attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors, ' +
'<a href="https://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, ' +
'Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
maxZoom: 18,
id: 'mapbox/streets-v11',
tileSize: 512,
zoomOffset: -1,
accessToken: 'your-access-token-here'
}).addTo(mymap);
// add a marker with popup
L.marker([51.5, -0.09]).addTo(mymap)
.bindPopup("<b>Hello world!</b><br />I am a popup.").openPopup();
</script>
</body>
</html>
This is just a basic example, but you can customize your map and add additional functionality as needed.