Awesome Frontend GIS Awesome

Geographic Information Systems (GIS) for web browsers. For managing, analyzing, editing, and visualizing geographic data.

<a href="https://github.com/eurostat/gridviz" target="_blank">
    <img src='https://user-images.githubusercontent.com/25485293/191950255-cbd83c6a-4880-4c0a-a665-b59a21467702.PNG'>
</a>

A compilation of geospatial-related web frameworks, tools, demos, applications, data sources and more.

Contents

👨‍💻 JavaScript Libraries

Mapping

Libraries for creating web maps:

Data Processing

Libraries that help you analyse and process geospatial data: - geolib - Library to provide basic geospatial operations like distance calculation, conversion of decimal coordinates to sexagesimal, etc. - Turf.js - Turf is a JavaScript library for spatial analysis. - JSTS - JavaScript Topology Suite. - flatten-js - For manipulating geometrical shapes, finding intersections, checking inclusion, calculating distance, transformations and more. - flatbush - A really fast static spatial index for 2D points and rectangles in JavaScript. - rbush - RBush is a high-performance JavaScript library for 2D spatial indexing of points and rectangles. - Geometric.js - A JavaScript library for doing geometry. - Euclid.ts - 2D Euclidean geometry classes, utilities, and drawing tools. - Proj4js - Transform coordinates from one coordinate system to another, including datum transformations. - GeoTiff.js - Parse TIFF files for visualization or analysis. - Arc.js - Calculate great circles routes as lines in GeoJSON or WKT format. - awesome-GeoJSON - Catalogue of GeoJSON tools. - topoJSON - Convert GeoJSON to TopoJSON for use in D3 maps. - d3-geo-polygon - Clipping and geometric operations for spherical polygons. - Wicket - A modest library for moving between Well-Known Text (WKT) and various framework geometries. - koop - Koop is a JavaScript toolkit for connecting incompatible spatial APIs. - spl.js - Makes it possible to use SpatiaLite functionality in JavaScript. Behind the scenes, a WebAssembly port of SpatiaLite is used. - geotoolbox - Provides several GIS operations for use with geojson properties. Useful for thematic cartography. - supercluster - A very fast JavaScript library for geospatial point clustering for browsers and Node. - geoblaze - A blazing fast JavaScript raster processing engine. Using geoblaze, you can run computations ranging from basic statistics (min, max, mean, mode) to band arithmetic and histogram generation in either a web browser or a node application. - geopackage-js - The GeoPackage JavaScript library currently provides the ability to read GeoPackage files. - geojson-merge - Merge multiple GeoJSON files into one FeatureCollection. - Galton - Lightweight Node.js isochrone server. Build isochrones using OSRM, Turf and concaveman. - geojson-vt - A highly efficient JavaScript library for slicing GeoJSON data into vector tiles on the fly. - geobuf - Geobuf is a compact binary encoding for geographic data. - geoparquet - Encoding geospatial data in Apache Parquet. - statsbreaks - Split (classify/discretize) a quantitative dataset into a (k) number of classes or thematic categories. Useful for creating a choropleth map. - gdal3.js - Convert raster and vector geospatial data to various formats and coordinate systems entirely in the browser. - math.gl - JavaScript math library focused on Geospatial and 3D use cases.

LiDAR

Tools for visualizing point clouds with web browsers:

Remote Sensing

Resources for frontend earth observation and remote sensing:

💾 Data sources

A collection of geospatial open data sources:

Downloads

Data available for download:

Web APIs

Restful APIs for consuming geospatial data on the fly:

Collections

Compilations and repositories of open geospatial datasets: - awesome-public-datasets - An awesome repository full of open datasets from an abundance of different categories. - Free GIS data - Links to over 500 sites providing freely available geographic datasets. - WRI - World resources institute. - Public APIs - A collective list of free APIs for use in software and web development.

📒 Notebooks

Some JavaScript notebooks to help you code:

Beginner

Intermediate

Advanced

:world_map: Web maps

A compilation of interesting web maps:

🌐 Web apps

Plug-and-play geospatial web apps:

🎨 Colour advice

Colour usage is very important in data visualisation and cartography. Here are some tools to help you choose the best colours for your maps:

📍 Icons

Icons to add to your GIS websites: - font-GIS - A very very cool icon font set for use with GIS and spatial analysis tools. - Map Icons Collection - A set of more than 1000 free and customizable icons to use as placemarks for your POI (Point of Interests) locations on your maps. - Material Symbols - Over 2,990 glyphs in a single font file with a wide range of design variants. - Geoapify map marker playground - The Marker Icon API lets you create beautiful icons and use them as Map Markers.

📺 Videos

Videos of web mapping presentations and tutorials:

📚 Further reading

Contributing

Contributions of any kind are welcome, just follow the guidelines by either:


If you have any questions about this list, please don’t hesitate to contact me @joewdavies on X (formerly Twitter) or open a GitHub issue.