Start a basic HTML template
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Getting Started with Leaflet JS</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
</body>
</html>
Include Leaflet CSS file in the head section of your document:
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.css">
Include Leaflet JavaScript file after Leaflet’s CSS (before the closing </body>
tag):
<script src='https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.js'></script>
Put a div element with the id map
where you want your map to be:
<div id="map"></div>
Make sure the map container has a defined height, for example by setting it in CSS:
body {
padding: 0;
margin: 0;
}
html,
body,
#map {
height: 100%;
}
Now you’re ready to initialize the map and do some stuff with it.
Lets start by setting up the BaseMap services. See (Docs) for more info:
//Init Overlays
var overlays = {};
//Init BaseMaps
var basemaps = {
"OpenStreetMaps": L.tileLayer(
"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png",
{
minZoom: 2,
maxZoom: 19,
id: "osm.streets"
}
),
"Google-Map": L.tileLayer(
"https://mt1.google.com/vt/lyrs=r&x={x}&y={y}&z={z}",
{
minZoom: 2,
maxZoom: 19,
id: "google.street"
}
),
"Google-Satellite": L.tileLayer(
"https://mt1.google.com/vt/lyrs=s&x={x}&y={y}&z={z}",
{
minZoom: 2,
maxZoom: 19,
id: "google.satellite"
}
),
"Google-Hybrid": L.tileLayer(
"https://mt1.google.com/vt/lyrs=y&x={x}&y={y}&z={z}",
{
minZoom: 2,
maxZoom: 19,
id: "google.hybrid"
}
)
};
Next we setup the map options such as center and zoom.
//Map Options
var mapOptions = {
zoomControl: false,
attributionControl: false,
center: [-29.0529434318608, 152.01910972595218],
zoom: 10,
layers: [basemaps.OpenStreetMaps]
};
Finally we can initialise the map
//Render Main Map
var map = L.map("map", mapOptions);
Besides tile layers, you can easily add other things to your map, including markers, polylines, polygons, circles, and popups. Let’s add a marker:
var marker = L.marker([-29.0529434318608, 152.01910972595218]).addTo(map);
Popups are usually used when you want to attach some information to a particular object on a map. Leaflet has a very handy shortcut for this:
marker.bindPopup("<b>Hello world!</b><br>I am a popup.").openPopup();
For more information please see the Leaflet Quick Start Guide
See it in action on CodePen
Join me on HashNode
Top comments (0)