Home

Awesome

Leaflet.VectorIcon

A plugin for Leaflet to make pure svg icon for markers.

Demo

Live demo at http://muxlab.github.io/Leaflet.VectorIcon/demo.html

Usage

Load the script.

<script src="L.VectorIcon.js"></script>

L.VectorIcon support three types of the svg shape:

W3C page (Basic Shapes) for more information on svg shapes.

Path

var pathIcon = L.vectorIcon({
  className: 'my-vector-icon',
  svgHeight: 32,
  svgWidth: 32,
  type: 'path',
  shape: {
    d: 'M23.963,20.834L17.5,9.64c-0.825-1.429-2.175-1.429-3,0L8.037,20.834c-0.825,1.429-0.15,2.598,1.5,2.598h12.926C24.113,23.432,24.788,22.263,23.963,20.834z'
  },
  style: {
    fill: '#ddd',
    stroke: '#fff',
    strokeWidth: 2
  }
});

var pathMarker = L.marker([36, 137], { icon: pathIcon }).addTo(map);

Circle

var circleIcon = L.vectorIcon({
  className: 'my-vector-icon',
  svgHeight: 32,
  svgWidth: 32,
  type: 'circle',
  shape: {
    r: '15',
    cx: '16',
    cy: '16'
  },
  style: {
    fill: '#ddd',
    stroke: '#fff',
    strokeWidth: 2
  }
});

var circleMarker = L.marker([36, 139], { icon: circleIcon }).addTo(map);

Rect

var rectIcon = L.vectorIcon({
  className: 'my-vector-icon',
  svgHeight: 32,
  svgWidth: 32,
  type: 'rect',
  shape: {
    x: '1',
    y: '1',
    width: '30',
    height: '30'
  },
  style: {
    fill: '#ddd',
    stroke: '#fff',
    strokeWidth: 2
  }
});

var rectMarker = L.marker([36, 141], { icon: rectIcon }).addTo(map);

Text

var textIcon = L.vectorIcon({
  className: 'my-vector-icon',
  svgHeight: 32,
  svgWidth: 50,
  type: 'text', // path | circle | rect | text
  shape: {
    x: '25',
    y: '24'
  },
  style: {
    fill: '#ddd',
    //stroke: '#fff',
    strokeWidth: 2,
    fontFamily: 'Helvetica',
    fontSize: '16',
    fontWeight: '100'
  },
  text: 'Hello!'
});

var textMarker = L.marker([36, 141], { icon: textIcon }).addTo(map);

License

Copyright 2016 MUX Lab.

MIT.