Home

Awesome

Leaflet.glify Leaflet.glify logo

web gl renderer plugin for leaflet in typescript

Pronounced leaflet-G.L.-Ify, or leaflet-glify, or L.-G.L.-Ify, or L-glify, or elglify

inspired by http://bl.ocks.org/Sumbera/c6fed35c377a46ff74c3 & need.

Backers on Open Collective Sponsors on Open Collective

Objective

Usage

Browser

<script src="dist/glify-browser.js"></script>
<script>
  // namespace
  L.glify;
</script>

Typescript

import glify from 'leaflet.glify';
// namespace
glify

Node

const { glify } = require('leaflet.glify');
// namespace
glify

Simple Points Usage

L.glify.points({
  map,
  data: pointsOrGeoJson,
  click: (e, pointOrGeoJsonFeature, xy): boolean | void => {
    // do something when a point is clicked
    // return false to continue traversing
  },
  hover: (e, pointOrGeoJsonFeature, xy): boolean | void => {
    // do something when a point is hovered
  },
});

Simple Lines Usage

L.glify.lines({
  map: map,
  data: geojson,
  size: 2,
  click: (e, feature): boolean | void => {
    // do something when a line is clicked
    // return false to continue traversing
  },
  hover: (e, feature): boolean | void => {
    // do something when a line is hovered
  },
  hoverOff: (e, feature): boolean | void => {
    // do something when a line is hovered off
  },
});

Simple Polygon Usage

L.glify.shapes({
  map,
  data: geoJson,
  click: (e, feature): boolean | void => {
    // do something when a shape is clicked
    // return false to continue traversing
  },
  hover: (e, feature): boolean | void => {
    // do something when a shape is hovered
  }
});

API

L.glify methods

L.glify properties


L.glify.points(options: object)

Adds point data passed in options.data to the Leaflet map instance passed in options.map.

Returns

L.glify.Points instance

Options


L.glify.lines(options: object)

Adds line data passed in options.data to the Leaflet map instance passed in options.map.

Returns

L.glify.Lines instance

Options


L.glify.shapes(options: object)

Adds polygon data passed in options.data to the Leaflet map instance passed in options.map.

Returns

L.glify.Shapes instance

Options


longitudeFirst()

Sets the expecetd order of arrays in the coordinates array of GeoJSON passed to options.data to be [lng, lat]

Returns

The updated L.glify instance it was called on


latitudeFirst()

Sets the expecetd order of arrays in the coordinates array of GeoJSON passed to options.data to be [lat, lng]

Returns

The updated L.glify instance it was called on


pointsInstances

All of the L.glify.Points instances


linesInstances

All of the L.glify.Lines instances


shapesInstances

All of the L.glify.Shapes instances

Building

You can build the library by running yarn run build or npm run build

Developing

Use yarn serve or npm run serve

Testing

Use yarn test or npm run test

Update & Remove Data

L.glify instances can be updated using the update(data, index) method.

An object or some elements of an object are removed using the remove(index) method.

Example

let newPoints = L.glify.points({
  map: leafletMap,
  data: geojsonFeatureCollection,
  size: 30
});

// Update the third feature
newPoints.update({
  "type": "FeatureCollection",
  "features": [{
    "type": "Feature",
    "properties": {},
    "geometry": {
      "type": "Point",
      "coordinates": [
        34.072204277521394
        -118.44255208969116
      ]
    }
  }]
}, 2);

// Now remove it
newPoints.remove(2);

Contributors

This project exists thanks to all the people who contribute. [Contribute]. <a href="https://github.com/robertleeplummerjr/Leaflet.glify/graphs/contributors"><img src="https://opencollective.com/leafletglify/contributors.svg?width=890&button=false" /></a>

Backers

Thank you to all our backers! 🙏 [Become a backer]

<a href="https://opencollective.com/leafletglify#backers" target="_blank"><img src="https://opencollective.com/leafletglify/backers.svg?width=890"></a>

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]

<a href="https://opencollective.com/leafletglify/sponsor/0/website" target="_blank"><img src="https://opencollective.com/leafletglify/sponsor/0/avatar.svg"></a> <a href="https://opencollective.com/leafletglify/sponsor/1/website" target="_blank"><img src="https://opencollective.com/leafletglify/sponsor/1/avatar.svg"></a> <a href="https://opencollective.com/leafletglify/sponsor/2/website" target="_blank"><img src="https://opencollective.com/leafletglify/sponsor/2/avatar.svg"></a> <a href="https://opencollective.com/leafletglify/sponsor/3/website" target="_blank"><img src="https://opencollective.com/leafletglify/sponsor/3/avatar.svg"></a> <a href="https://opencollective.com/leafletglify/sponsor/4/website" target="_blank"><img src="https://opencollective.com/leafletglify/sponsor/4/avatar.svg"></a> <a href="https://opencollective.com/leafletglify/sponsor/5/website" target="_blank"><img src="https://opencollective.com/leafletglify/sponsor/5/avatar.svg"></a> <a href="https://opencollective.com/leafletglify/sponsor/6/website" target="_blank"><img src="https://opencollective.com/leafletglify/sponsor/6/avatar.svg"></a> <a href="https://opencollective.com/leafletglify/sponsor/7/website" target="_blank"><img src="https://opencollective.com/leafletglify/sponsor/7/avatar.svg"></a> <a href="https://opencollective.com/leafletglify/sponsor/8/website" target="_blank"><img src="https://opencollective.com/leafletglify/sponsor/8/avatar.svg"></a> <a href="https://opencollective.com/leafletglify/sponsor/9/website" target="_blank"><img src="https://opencollective.com/leafletglify/sponsor/9/avatar.svg"></a>