AngularJS directive to embed an interact with maps managed by Leaflet library

Angular Leaflet Directive

AngularJS directive for the Leaflet Javascript Library. This software aims to easily embed maps managed by Leaflet on your project.


This is a personal project, which has been coded by me helped by many people for some years. I'm evolving it frequently, actually I'm making the code transition to Leaflet 1.0 and Angular 2. If you need enterprise for older versions, sorry, I can't give you more support that my spare time allows me. If you want to help with the actual code it would be really appreciated, but first of all, please, read the * CONTRIBUTING documentation

Build Status Dependencies  Dependencies Coverage
Status semantic-release


If you need better response time with your doubts and needs with the code of version 0.9.0, take a look at the angular-ui fork of this project, it's lead by really awesome developers which have helped me evolving the project for some time.

Build Status Dependencies  Dependencies Coverage


Browse all the examples added by the community to learn about the directive and its possibilities.


Still working on it. In the meantime, take a look at this URL for some minimal descriptions:

Getting started/How to use it

Include the leaflet-directive dependency on your Angular module:

var app = angular.module('demoapp', ['leaflet-directive']);

After that, you are ready to rock. Just define some objects with the basic configuration you want reflected in your map and the rendered map will obey you. Also, you can modify that configuration dinamically if you need to. Let's see an example.


If you want to set the map view to a precise position, you can define the "center" property of the scope (lat, lng, zoom). It will also be updated interacting on the scope and on the leaflet map in two-way binding. Example:

angular.extend($scope, {
    center: {
        lat: 51.505,
        lng: -0.09,
        zoom: 8

Finally, you must include the markup directive on your HTML page. One important thing is that you must define the map width&height, as attributes of the directive or with CSS code, as you wish.

<leaflet lf-center="center" height="480px" width="640px"></leaflet>

If you want to have more than one map on the page and access their respective map objects, add an id attribute to your leaflet directive in HTML:

<leaflet id="mymap" lf-center="center" height="480px" width="640px"></leaflet>