1.0.0 • Published 6 years ago
leo-glify v1.0.0
Leaflet.glify
web gl renderer plugin for leaflet
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.
Objective
- To provide a means of rendering a massive amount of data visually in a way that does not degrade user experience
- Remaining as simple as possible with current fastest libs
- Providing the same sort of user experience one would get using standard html and elements
Simple Polygon Usage
L.glify.shapes({
map: map,
data: geoJson,
click: function(e, feature) {
//do something when a shape is clicked
}
});Simple Points Usage
L.glify.points({
map: map,
data: points,
click: function(e, point, xy) {
//do something when a point is clicked
}
});Simple Lines Usage
L.glify.lines({
map: map,
data: geojson,
size: 2,
click: function(e, feature, xy) {
//do something when a line is clicked
}
});L.glify.shapes Options
map{Object}required leaflet mapdata{Object}required geojson datavertexShaderSource{String|Function}optional glsl vertex shader source, defaults to useL.glify.shader.vertexfragmentShaderSource{String|Function}optional glsl fragment shader source, defaults to useL.glify.shader.fragment.polygonclick{Function}optional event handler for clicking a shapecolor{Function|Object|String}optional, default is 'random'- When
coloris aFunctionits arguments are gets theindex:number, and thefeature:objectthat is being colored
- When
opacity{Number} a value from 0 to 1, default is 0.5className{String} a class name applied to canvas, default is ''preserveDrawingBuffer{Boolean} optional, defaultfalse, perverse draw buffer on webgl context.- CAUTION: May cause performance issue with large data sets.
L.glify.points Options
map{Object}required leaflet mapdata{Object}required geojson datavertexShaderSource{String|Function}optional glsl vertex shader source, defaults to useL.glify.shader.vertexfragmentShaderSource{String|Function}optional glsl fragment shader source, defaults to useL.glify.shader.fragment.pointclick{Function}optional event handler for clicking a pointcolor{Function|Object|String}optional, default is 'random'- When
coloris aFunctionits arguments are gets theindex:number, and thepoint:arraythat is being colored
- When
opacity{Number} a value from 0 to 1, default is 0.8className{String} a class name applied to canvas, default is ''size{Number|Function} pixel size of point- When
sizeis aFunctionits arguments areindex:number, and thepoint:arraythat is being sized
- When
sensitivity{Number} exaggerates the size of the clickable area to make it easier to click a pointpreserveDrawingBuffer{Boolean} optional, defaultfalse, perverse draw buffer on webgl context.- CAUTION: May cause performance issue with large data sets.
isCentimetric{Boolean} optional, defaultfalse, uses a vertex shader with double precision to allow precise position for points at high zoom levels. Needed above zoom level 19 to avoid jittering and points snapped on a grid.
L.glify.lines Options
map{Object}required leaflet mapdata{Object}required geojson datavertexShaderSource{String|Function}optional glsl vertex shader source, defaults to useL.glify.shader.vertexfragmentShaderSource{String|Function}optional glsl fragment shader source, defaults to useL.glify.shader.fragment.pointclick{Function}optional event handler for clicking a pointcolor{Function|Object|String}optional, default is 'random'- When
coloris aFunctionits arguments are gets theindex:number, and thepoint:arraythat is being colored
- When
opacity{Number} a value from 0 to 1, default is 0.5className{String} a class name applied to canvas, default is ''preserveDrawingBuffer{Boolean} optional, defaultfalse, perverse draw buffer on webgl context.- CAUTION: May cause performance issue with large data sets.
weight{Number|Function} a value in pixels of how thick lines should be drawn- When
weightis aFunctionits arguments are gets theindex:number, and thefeature:objectthat is being drawn - CAUTION: Zoom of more than 18 will turn weight internally to 1 to prevent WebGL precision rendering issues.
- When
L.glify methods
longitudeFirst()latitudeFirst()instancespoints(options)shapes(options)flattenData(data)
Roadmap
Soon to come: limitless styles.
Contributors
This project exists thanks to all the people who contribute. [Contribute].
Backers
Thank you to all our backers! 🙏 [Become a backer]
Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]
1.0.0
6 years ago