Files
awesome-awesomeness/html/frontendgis.html
2024-04-20 19:22:54 +02:00

631 lines
31 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--lint disable double-link awesome-heading -->
<div data-align="center">
<h2>
Awesome Frontend GIS <a href="https://github.com/sindresorhus/awesome">
<img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" alt="Awesome" href="https://github.com/sindresorhus/awesome">
</a>
</h2>
<p>Geographic Information Systems (GIS) for web browsers. For managing,
analyzing, editing, and visualizing geographic data.</p>
<div>
<pre><code>&lt;a href=&quot;https://github.com/eurostat/gridviz&quot; target=&quot;_blank&quot;&gt;
&lt;img src=&#39;https://user-images.githubusercontent.com/25485293/191950255-cbd83c6a-4880-4c0a-a665-b59a21467702.PNG&#39;&gt;
&lt;/a&gt;</code></pre>
</div>
<p><em>A compilation of geospatial-related web frameworks, tools, demos,
applications, data sources and more.</em></p>
</div>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#-javascript-libraries">👨‍💻 <strong>JavaScript
Libraries</strong></a>
<ul>
<li><a href="#mapping">Mapping</a></li>
<li><a href="#data-processing">Data Processing</a></li>
<li><a href="#lidar">LiDAR</a></li>
<li><a href="#remote-sensing">Remote Sensing</a></li>
</ul></li>
<li><a href="#-data-sources">💾 <strong>Data sources</strong></a>
<ul>
<li><a href="#downloads">Downloads</a></li>
<li><a href="#web-apis">Web APIs</a></li>
<li><a href="#collections">Collections</a></li>
</ul></li>
<li><a href="#-notebooks">📒 <strong>Notebooks</strong></a>
<ul>
<li><a href="#beginner">Beginner</a></li>
<li><a href="#intermediate">Intermediate</a></li>
<li><a href="#advanced">Advanced</a></li>
</ul></li>
<li><a href="#world_map-web-maps">:world_map: Web maps</a></li>
<li><a href="#-web-apps">🌐 <strong>Web apps</strong></a></li>
<li><a href="#-colour-advice">🎨 <strong>Colour advice</strong></a></li>
<li><a href="#-icons">📍 <strong>Icons</strong></a></li>
<li><a href="#-videos">📺 <strong>Videos</strong></a></li>
<li><a href="#-further-reading">📚 <strong>Further
reading</strong></a></li>
</ul>
<h2 id="javascript-libraries">👨‍💻 JavaScript Libraries</h2>
<h3 id="mapping">Mapping</h3>
<p>Libraries for creating web maps:</p>
<ul>
<li><a href="https://leafletjs.com/">Leaflet</a> - The leading
open-source JavaScript library for mobile-friendly interactive
maps.</li>
<li><a href="https://openlayers.org/">OpenLayers</a> - A
high-performance, feature-packed library for creating interactive maps
on the web.</li>
<li><a href="https://cesium.com">Cesium.js</a> - An open-source
JavaScript library for world-class 3D mapping of geospatial data.</li>
<li><a href="https://github.com/maplibre/maplibre-gl-js">maplibre</a> -
It originated as an open-source fork of mapbox-gl-js, before their
switch to a non-OSS license in December 2020.</li>
<li><a href="https://github.com/uber/deck.gl">Deck.GL</a> - WebGL2
powered geospatial visualization layers.</li>
<li><a href="https://github.com/maptalks/maptalks.js">MapTalks.js</a> -
An open-source JavaScript library for integrated 2D/3D maps.</li>
<li><a href="https://github.com/antvis/L7">antvis L7</a> - Large-scale
WebGL-powered Geospatial Data Visualization.</li>
<li><a href="https://github.com/tangrams/tangram">Tangram</a> - WebGL
map rendering engine for creative cartography.</li>
<li><a href="https://github.com/TerriaJS/terriajs">TerriaJS</a> -
TerriaJS is a library for building rich, web-based geospatial data
explorers.</li>
<li><a href="https://github.com/eurostat/gridviz">gridviz</a> - A
package for visualizing gridded data.</li>
<li><a
href="https://github.com/eurostat/eurostat-map.js">Eurostat-map</a> -
Create and customise web maps showing Eurostat data using D3.js.</li>
<li><a href="https://github.com/neocarto/bertin">Bertin.js</a> - A
JavaScript library for visualizing geospatial data and making thematic
maps for the web.</li>
<li><a
href="https://github.com/eurostat/regl-map-animation">regl-map-animation</a>
- Animate x/y point data using regl and categorize them into a bar
chart.</li>
<li><a href="https://github.com/iTowns/itowns">iTowns</a> - A
Three.js-based framework written in JavaScript/WebGL for visualizing 3D
geospatial data.</li>
<li><a href="https://globe.gl/">globe.gl</a> - This library is a
convenience wrapper around the three-globe plugin, and uses
ThreeJS/WebGL for 3D rendering.</li>
<li><a href="https://github.com/d3/d3-geo">d3-geo</a> - A library for
creating maps based on D3.js.</li>
<li><a
href="https://github.com/d3/d3-geo-projection">d3-geo-projection</a> -
Extended geographic projections.</li>
<li><a href="https://github.com/Fil/d3-geo-voronoi">d3-geo-voronoi</a> -
Voronoi diagrams and Delaunay triangulation for the sphere.</li>
<li><a href="https://github.com/Fil/d3-inertia">d3-inertia</a> - An
extension to d3-drag that continues the mouse movement with some
inertia.</li>
<li><a href="https://github.com/markmarkoh/datamaps">datamaps</a> -
Customizable map visualizations in one file.</li>
<li><a
href="https://github.com/zcreativelabs/react-simple-maps">react-simple-maps</a>
- An SVG mapping component library for React, built on top of
d3-geo.</li>
<li><a
href="https://developers.google.com/maps/documentation/javascript">Google
Maps</a> - Google Maps API for JavaScript.</li>
<li><a href="https://github.com/wrld3d/wrld.js/">Wrld.js</a> - Animated
3D city maps based on Leaflet.</li>
<li><a href="https://docs.mapbox.com/mapbox-gl-js/examples/">Mapbox GL
JS</a> - JavaScript library that uses WebGL to render interactive maps
from vector tiles.</li>
<li><a href="https://developers.arcgis.com/javascript/3/">ArcGIS API for
JS</a> - A lightweight way to embed maps and tasks in web
applications.</li>
<li><a href="https://developer.here.com/develop/javascript-api">HERE
maps API</a> - Build web applications with feature-rich and customizable
HERE maps.</li>
<li><a href="https://github.com/windycom/API">Map Forecast API</a> -
Simple-to-use library based on Leaflet 1.4.x. It allows you to show wind
maps.</li>
</ul>
<h3 id="data-processing">Data Processing</h3>
<p>Libraries that help you analyse and process geospatial data: - <a
href="https://github.com/manuelbieh/geolib">geolib</a> - Library to
provide basic geospatial operations like distance calculation,
conversion of decimal coordinates to sexagesimal, etc. - <a
href="https://github.com/Turfjs/turf">Turf.js</a> - Turf is a JavaScript
library for spatial analysis. - <a
href="https://github.com/bjornharrtell/jsts">JSTS</a> - JavaScript
Topology Suite. - <a
href="https://github.com/alexbol99/flatten-js">flatten-js</a> - For
manipulating geometrical shapes, finding intersections, checking
inclusion, calculating distance, transformations and more. - <a
href="https://github.com/mourner/flatbush">flatbush</a> - A really fast
static spatial index for 2D points and rectangles in JavaScript. - <a
href="https://github.com/mourner/rbush">rbush</a> - RBush is a
high-performance JavaScript library for 2D spatial indexing of points
and rectangles. - <a
href="https://github.com/HarryStevens/geometric">Geometric.js</a> - A
JavaScript library for doing geometry. - <a
href="https://github.com/mathigon/euclid.js">Euclid.ts</a> - 2D
Euclidean geometry classes, utilities, and drawing tools. - <a
href="https://github.com/proj4js/proj4js">Proj4js</a> - Transform
coordinates from one coordinate system to another, including datum
transformations. - <a
href="https://github.com/geotiffjs/geotiff.js">GeoTiff.js</a> - Parse
TIFF files for visualization or analysis. - <a
href="https://github.com/springmeyer/arc.js">Arc.js</a> - Calculate
great circles routes as lines in GeoJSON or WKT format. - <a
href="https://github.com/tmcw/awesome-geojson">awesome-GeoJSON</a> -
Catalogue of GeoJSON tools. - <a
href="https://github.com/topojson/topojson">topoJSON</a> - Convert
GeoJSON to TopoJSON for use in D3 maps. - <a
href="https://github.com/d3/d3-geo-polygon">d3-geo-polygon</a> -
Clipping and geometric operations for spherical polygons. - <a
href="https://github.com/arthur-e/Wicket">Wicket</a> - A modest library
for moving between Well-Known Text (WKT) and various framework
geometries. - <a href="https://github.com/koopjs/koop">koop</a> - Koop
is a JavaScript toolkit for connecting incompatible spatial APIs. - <a
href="https://github.com/jvail/spl.js">spl.js</a> - Makes it possible to
use SpatiaLite functionality in JavaScript. Behind the scenes, a
WebAssembly port of SpatiaLite is used. - <a
href="https://github.com/neocarto/geotoolbox">geotoolbox</a> - Provides
several GIS operations for use with geojson properties. Useful for
thematic cartography. - <a
href="https://www.npmjs.com/package/supercluster">supercluster</a> - A
very fast JavaScript library for geospatial point clustering for
browsers and Node. - <a
href="https://github.com/GeoTIFF/geoblaze">geoblaze</a> - 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. - <a
href="https://github.com/ngageoint/geopackage-js">geopackage-js</a> -
The GeoPackage JavaScript library currently provides the ability to read
GeoPackage files. - <a
href="https://github.com/mapbox/geojson-merge">geojson-merge</a> - Merge
multiple GeoJSON files into one FeatureCollection. - <a
href="https://github.com/urbica/galton">Galton</a> - Lightweight Node.js
isochrone server. Build isochrones using OSRM, Turf and concaveman. - <a
href="https://github.com/mapbox/geojson-vt">geojson-vt</a> - A highly
efficient JavaScript library for slicing GeoJSON data into vector tiles
on the fly. - <a href="https://github.com/mapbox/geobuf">geobuf</a> -
Geobuf is a compact binary encoding for geographic data. - <a
href="https://github.com/opengeospatial/geoparquet">geoparquet</a> -
Encoding geospatial data in Apache Parquet. - <a
href="https://github.com/riatelab/statsbreaks">statsbreaks</a> - Split
(classify/discretize) a quantitative dataset into a (k) number of
classes or thematic categories. Useful for creating a choropleth map. -
<a href="https://github.com/bugra9/gdal3.js">gdal3.js</a> - Convert
raster and vector geospatial data to various formats and coordinate
systems entirely in the browser. - <a
href="https://github.com/uber-web/math.gl">math.gl</a> - JavaScript math
library focused on Geospatial and 3D use cases.</p>
<h3 id="lidar">LiDAR</h3>
<p>Tools for visualizing point clouds with web browsers:</p>
<ul>
<li><a href="https://github.com/potree/potree">Potree</a> - WebGL point
cloud viewer for large datasets.</li>
<li><a href="https://github.com/verma/plasio">Plasio</a> - Drag-n-drop
In-browser LAS/LAZ point cloud viewer.</li>
<li><a href="https://potree.org/potree/examples/cesium_retz.html">Potree
&amp; Cesium.js</a> - Rezt, Austria LIDAR viewer.</li>
<li><a
href="https://threejs.org/examples/#webgl_loader_pcd">Three.js</a> -
Point cloud data loader.</li>
</ul>
<h3 id="remote-sensing">Remote Sensing</h3>
<p>Resources for frontend earth observation and remote sensing:</p>
<ul>
<li><a
href="https://developers.google.com/earth-engine/tutorials/tutorial_api_01">Google
Earth Engine</a> - Geospatial processing service.</li>
<li><a
href="https://github.com/sentinel-hub/sentinelhub-js/">sentinelhub-js</a>
- Download and process satellite imagery in JavaScript or TypeScript
using Sentinel Hub services.</li>
<li><a href="https://github.com/sentinel-hub/custom-scripts">Sentinel
Hub custom scripts</a> - A repository of custom scripts to be used with
Sentinel Hub.</li>
<li><a href="https://github.com/awesome-spectral-indices">Spectral</a> -
Awesome Spectral Indices for the Google Earth Engine JavaScript API
(Code Editor).</li>
<li><a href="https://github.com/nasa-gibs/worldview">EOSDIS
Worldview</a> - Interactive interface for browsing global,
full-resolution satellite imagery.</li>
</ul>
<h2 id="data-sources">💾 Data sources</h2>
<p>A collection of geospatial open data sources:</p>
<h3 id="downloads">Downloads</h3>
<p>Data available for download:</p>
<ul>
<li><a href="https://openmaptiles.org/">OpenMapTiles</a> - Free
OpenStreetMap Vector Tiles.</li>
<li><a
href="https://www.geofabrik.de/data/download.html">OpenStreetMap</a> - A
free, world-wide geographic data set.</li>
<li><a href="https://www.naturalearthdata.com/">Natural Earth</a> - Free
vector and raster map data at 1:10m, 1:50m, and 1:110m scales.</li>
<li><a href="https://github.com/topojson/world-atlas">World Atlas
TopoJSON</a> - A convenient redistribution of Natural Earths vector
data as TopoJSON.</li>
<li><a
href="https://ec.europa.eu/eurostat/web/gisco/geodata/reference-data/elevation/copernicus-dem/elevation">Copernicus
global DEM</a> - Global elevation tiles.</li>
<li><a href="https://www.ngdc.noaa.gov/mgg/global/">ETOPO1</a> - 1
arc-minute global relief model of Earths surface that integrates land
topography and ocean bathymetry.</li>
<li><a href="https://www.hydrosheds.org/">HydroSHEDS</a> - Hydrographic
information in a consistent and comprehensive format for regional and
global-scale applications.</li>
<li><a href="https://www.geoboundaries.org/">geoboundaries</a> - The
worlds largest open, free and research-ready database of political
administrative boundaries.</li>
<li><a
href="https://datasets.wri.org/dataset/globalpowerplantdatabase">Global
power plant database</a> - A comprehensive, global, open source database
of power plants.</li>
<li><a href="https://github.com/teamookla/ookla-open-data">Ookla
internet speed data</a> - Provides global network performance metrics.
Data is provided in both Shapefile format as well as Apache
Parquet.</li>
<li><a
href="https://ec.europa.eu/eurostat/web/gisco/geodata/reference-data/grids">European
population grids - GISCO</a> - These datasets contain grid cells
covering the European land territory, for various resolutions from 1km
to 100km. Base statistics such as population figures are provided for
these cells.</li>
<li><a
href="https://ec.europa.eu/eurostat/web/gisco/geodata/reference-data/healthcare-services">Healthcare
Services in Europe</a> - The locations of healthcare services across
Europe.</li>
<li><a
href="https://ec.europa.eu/eurostat/web/gisco/geodata/reference-data/postal-codes">European
Postcodes Point Data</a> - The postal code point dataset shows the
location of postal codes, NUTS codes and the Degree of Urbanisation
classification across the EU, EFTA and candidate countries from a
variety of sources.</li>
<li><a href="https://www.worldpop.org/">WorldPop</a> - Open access
spatial demographic datasets built using transparent approaches.</li>
<li><a href="https://data.worldbank.org/">World Bank</a> - Free and open
access to global development data.</li>
<li><a href="https://earthexplorer.usgs.gov/">USGS Earth Explorer</a> -
Query and order satellite images, aerial photographs, and cartographic
products through the U.S. Geological Survey.</li>
<li><a href="https://opentopography.org/">Open Topography</a> -
OpenTopography facilitates community access to high-resolution, Earth
science-oriented, topography data, and related tools and resources.</li>
<li><a href="https://neo.gsfc.nasa.gov/">NASA Earth Observations</a> -
Here you can browse and download imagery of satellite data from NASAs
constellation of Earth Observing System satellites.</li>
<li><a href="https://geodata.gov.gr/en/dataset">Geodata.gov.gr</a> -
Open geospatial data for Greece.</li>
<li><a href="https://hub.arcgis.com/">ArcGIS Hub</a> - Over 380,000 open
datasets.</li>
<li><a href="https://www.diva-gis.org/Data">DIVA-GIS</a> - Free spatial
data. Includes country and global level boundaries, climate, species
occurence, crop and elevation data.</li>
<li><a href="https://openaerialmap.org/">OpenAerialMap</a> - An open
service to provide access to a commons of openly licensed imagery and
map layer services.</li>
<li><a href="https://www.globalclimatemonitor.org/">Global Climate
Monitor</a> - Global open climate data available for download.</li>
<li><a href="https://scihub.copernicus.eu">Copernicus open access
hub</a> - Copernicus satellite imagery download.</li>
</ul>
<h3 id="web-apis">Web APIs</h3>
<p>Restful APIs for consuming geospatial data on the fly:</p>
<ul>
<li><a href="https://gisco-services.ec.europa.eu/distribution/v2/">GISCO
data distribution API</a> - Official European Commission data source for
administrative regions, Coastal lines, Communes, Countries, Local
Administrative Units, NUTS, Urban Audit.</li>
<li><a
href="https://gisco-services.ec.europa.eu/addressapi/docs/">Address
API</a> - Pan-european address data. Supports geocoding,
reverse-geocoding and lists of address components (e.g. all roads in a
city).</li>
<li><a href="https://earthquake.usgs.gov/fdsnws/event/1/">USGS
earthquake data</a> - Allows custom searches for earthquake information
using a variety of parameters.</li>
<li><a
href="https://github.com/movebank/movebank-api-doc">movebank-api</a> -
Movebank is a free, online database and research platform for animal
tracking and other on-animal sensor data.</li>
<li><a href="https://wiki.openstreetmap.org/wiki/Overpass_API">Overpass
API</a> - Retrieve OpenStreetMap data.</li>
<li><a href="https://restcountries.com/">REST countries</a> - Get
information about countries via a RESTful API.</li>
<li><a href="https://osmnames.org/api/">OSMNames</a> - The OSMNames
open-source project provides raw place data in an easy-to-index
form.</li>
<li><a href="http://open-notify.org/Open-Notify-API/">Open Notify</a> -
Get the current location of the International Space Station (ISS) and
current number of people in space!</li>
<li><a href="https://docs.openaq.org/docs">OpenAQ</a> - OpenAQ is the
largest open-source air quality data platform.</li>
<li><a
href="https://openrouteservice.org/dev/#/api-docs">openrouteservice</a>
- Directions, Isochrones, Time-Distance Matrix, Pelias Geocoding, POIs,
Elevation, Optimization.</li>
<li><a
href="https://www.graphhopper.com/route-optimization/">GraphHopper Route
Optimization API</a> - Solves a variety of vehicle routing problems,
including the classical “traveling salesman problem”.</li>
<li><a href="https://apidocs.geoapify.com/">Geoapify</a> - Maps, address
and location search, route optimization, reachability analysis, geodata
access, and more.</li>
<li><a href="https://opencagedata.com/api">OpenCage</a> - Forward and
reverse worldwide geocoding API using open data.</li>
<li><a
href="https://docs.breezometer.com/api-documentation/introduction/">breezometer</a>
- API endpoints for Air Quality, Pollen, Weather, Wildfire, Cleanest
Routes and Environmental Alerts. Serves current conditions, forecasts,
and historical data.</li>
<li><a href="https://ipfind.io/">ipfind</a> - Geographic location of an
IP address or any domain name along with some other useful
information.</li>
<li><a href="https://www.getthedata.com/bng2latlong">bng2latlong</a> -
Simple API to convert an OSGB36 easting and northing (British National
Grid) to WGS84 latitude and longitude.</li>
<li><a href="https://www.getthedata.com/open-postcode-geo-api">Open
Postcode Geo API</a> - British postcodes with easting, northing,
latitude, and longitude.</li>
<li><a href="https://countrystatecity.in/">Country State City API</a> -
Full Database of city state country available in JSON, SQL, XML, YAML
&amp; CSV format.</li>
<li><a href="https://api.gouv.fr/les-api/api-geo">API Geo</a> - Official
French geographical data API.</li>
<li><a
href="http://www.geonames.org/export/web-services.html">geonames</a> -
Supports placename lookup, postal Code Search, reverse geocoding, nearby
populated place and nearby toponym searches.</li>
<li><a href="https://www.opentopodata.org/">opentopodata API</a> - Open
Topo Data is a REST API server for your elevation data.</li>
<li><a href="https://developer.what3words.com/public-api">what3words</a>
- Convert 3 word addresses to coordinates and vice versa.</li>
<li><a
href="https://developer.tomtom.com/api-explorer-index/documentation/product-information/introduction">TomTom</a>
- Charging stations, fuel prices, routing, geocoding, parking
availability, traffic and waypoint optimization endpoints.</li>
<li><a href="https://openchargemap.org/site/develop/api">Open Charge Map
API</a> - Non-commercial, non-profit global public registry of electric
vehicle charging locations.</li>
<li><a
href="https://openskynetwork.github.io/opensky-api/rest.html">OpenSky
API</a> - Retrieve live airspace information for research and
non-commerical purposes.</li>
<li><a href="https://open-meteo.com/">Open-Meteo</a> - Global weather
forecast API for non-commercial use.</li>
<li><a href="https://www.rainviewer.com/api.html">RainViewer</a> - Free
weather API. Offers the past (2 hours) and forecast (30 minutes) weather
radar data and the past infrared satellite data.</li>
<li><a href="https://sunrise-sunset.org/api">Sunrise and sunset</a> -
Sunset and sunrise times for a given latitude and longitude.</li>
<li><a href="https://geocode.xyz/">Geocode.xyz</a> - Reverse Geocoding,
Forward Geocoding, Geoparsing API. Free requests throttled at 1 request
per second.</li>
</ul>
<h3 id="collections">Collections</h3>
<p>Compilations and repositories of open geospatial datasets: - <a
href="https://github.com/awesomedata/awesome-public-datasets">awesome-public-datasets</a>
- An awesome repository full of open datasets from an abundance of
different categories. - <a href="https://freegisdata.rtwilson.com/">Free
GIS data</a> - Links to over 500 sites providing freely available
geographic datasets. - <a href="https://www.wri.org/data">WRI</a> -
World resources institute. - <a
href="https://github.com/public-apis-dev/public-apis">Public APIs</a> -
A collective list of free APIs for use in software and web
development.</p>
<h2 id="notebooks">📒 Notebooks</h2>
<p>Some JavaScript notebooks to help you code:</p>
<h3 id="beginner">Beginner</h3>
<ul>
<li><a
href="https://observablehq.com/@observablehq/hello-leaflet">Hello,
Leaflet</a> - ObservableHQ.</li>
<li><a
href="https://observablehq.com/@neocartocnrs/hello-bertin-js">Hello,
Bertin.js</a> - Nicolas Lambert.</li>
<li><a
href="https://observablehq.com/@observablehq/hello-mapbox-gl">Hello,
Mapbox GL</a> - Mike Bostock.</li>
<li><a
href="https://observablehq.com/@joewdavies/eurostat-map-js">Hello,
eurostat-map.js</a> - Joe Davies.</li>
<li><a
href="https://observablehq.com/@neocartocnrs/hello-gridviz">Hello,
gridviz</a> - Nicolas Lambert.</li>
</ul>
<h3 id="intermediate">Intermediate</h3>
<ul>
<li><a href="https://observablehq.com/@d3/world-tour">World Tour</a> -
D3.</li>
<li><a href="https://observablehq.com/@d3/choropleth">Choropleth</a> -
D3.</li>
<li><a href="https://observablehq.com/@jgaffuri/nice-scale-bar">How to
make a nice scalebar</a> - Julien Gaffuri.</li>
<li><a
href="https://observablehq.com/@chriszrc/gischat-twitter-users-with-mapboxgl-globe-projection">#GISCHAT
Twitter Users with MapBoxGL - Globe Projection</a> - Chris Marx.</li>
<li><a
href="https://observablehq.com/@larsvers/hexgrid-maps-with-d3-hexgrid">Hexgrid
maps with d3-hexgrid</a> - Larsvers.</li>
<li><a
href="https://observablehq.com/@stephanietuerk/bivariate-choropleth-with-continuous-color-scales">Bivariate
Choropleth with Continuous Color Scales</a> - Stephanie Tuerk.</li>
<li><a
href="https://observablehq.com/@joewdavies/visualizing-eurostat-grid-data-using-three-js-d3">Visualizing
Eurostat grid data using Three.js &amp; D3</a> - Joe Davies.</li>
</ul>
<h3 id="advanced">Advanced</h3>
<ul>
<li><a
href="https://observablehq.com/@karimdouieb/try-to-impeach-this-challenge-accepted">Try
to impeach this? Challenge accepted!</a> - Karim Douieb.</li>
<li><a
href="https://observablehq.com/@neocartocnrs/bars-pubs-in-paris">Bars
and pubs in Paris</a> - Nicolas Lambert.</li>
<li><a
href="https://observablehq.com/@karimdouieb/brussels-streets-gender-inequality">Brussels
Street Gender Inequality</a> - Karim Douieb.</li>
<li><a
href="https://observablehq.com/@bmschmidt/animating-voting-maps-with-regl">Animating
voting maps with regl</a> - Benjamin Schmidt.</li>
<li><a
href="https://observablehq.com/@jgaffuri/election-map-dorling-striped-circles">Election
maps as dorling striped circles</a> - Julien Gaffuri.</li>
<li><a
href="https://observablehq.com/@kylebarron/geoparquet-on-the-web">GeoParquet
on the web</a> - Kyle Barron.</li>
<li><a
href="https://observablehq.com/@dkaoster/interactive-regl-wind-demo">Interactive
Regl wind demo</a> - Daniel Kao.</li>
<li><a
href="https://observablehq.com/@adrianblanco/dorling-cartogram-of-the-spanish-presidential-election">Dorling
cartogram of the Spanish Presidential election</a> - Adrián Blanco.</li>
<li><a
href="https://observablehq.com/@joewdavies/visualizing-earthquakes-with-three-js">Visualizing
earthquakes with Three.js</a> - Joe Davies.</li>
<li><a
href="https://observablehq.com/@kylebarron/geoarrow-and-geoparquet-in-deck-gl">GeoArrow
and GeoParquet in deck.gl</a> - Kyle Barron.</li>
</ul>
<h2 id="world_map-web-maps">:world_map: Web maps</h2>
<p>A compilation of interesting web maps:</p>
<ul>
<li><a href="https://tjukanovt.github.io/notable-people">Map of notable
people</a> - Topi Tjukanov.</li>
<li><a href="https://www.submarinecablemap.com/">Submarine cable map</a>
- TeleGeography.</li>
<li><a href="https://radio.garden/">Radio Garden</a> - 3D Globe Radio
Tuner.</li>
<li><a
href="https://www.nytimes.com/interactive/2018/10/12/us/map-of-every-building-in-the-united-states.html">Map
of every building in the United States</a> - New York Times.</li>
<li><a href="https://orbis.stanford.edu/">Map of the Roman transport
network</a> - The Stanford Geospatial Network Model of the Roman
World.</li>
<li><a href="https://github.com/mapbox/webgl-wind">Webgl Wind</a> - A
WebGL-powered visualization of wind power. Capable of rendering up to 1
million wind particles at 60fps.</li>
</ul>
<h2 id="web-apps">🌐 Web apps</h2>
<p>Plug-and-play geospatial web apps:</p>
<ul>
<li><a href="https://anvaka.github.io/city-roads/">city roads</a> -
Render every single road in any city at once.</li>
<li><a href="https://kepler.gl/demo">Kepler</a> - A powerful open source
geospatial analysis tool for large-scale data sets.</li>
<li><a href="https://github.com/verma/plasio">Plasio</a> - Drag-n-drop
In-browser LAS/LAZ point cloud viewer.</li>
<li><a href="https://mapshaper.org/">mapshaper</a> - Online editor for
map data.</li>
<li><a href="http://app.geotiff.io/">geotiff.io</a> - GeoTIFF.io
provides quick access to easy-to-use raster processing.</li>
<li><a href="https://gisco-services.ec.europa.eu/image/">IMAGE</a> - An
easy-to-use tool for generating thematic maps.</li>
<li><a href="https://magrit.cnrs.fr/">magrit</a> - Magrit is an online
application for thematic mapping (cartography).</li>
<li><a href="https://storymap.knightlab.com/">StoryMap JS</a> - The Open
source alternative to ESRIs Story map application.</li>
<li><a href="https://github.com/datawrapper/datawrapper">Datawrapper</a>
- Create charts, maps, and tables.</li>
<li><a href="https://github.com/maputnik/editor">Maputnik</a> - A free
and open visual editor for the Mapbox GL styles targeted at developers
and map designers.</li>
<li><a href="https://github.com/Azgaar/Fantasy-Map-Generator">Fantasy
Map Generator</a> - Free web application that helps fantasy writers,
game masters, and cartographers create and edit fantasy maps.</li>
<li><a href="https://github.com/umap-project/umap">uMap</a> - Lets you
create a map with OpenStreetMap layers and embed it in your site.</li>
<li><a href="https://github.com/anvaka/peak-map">Peak Map</a> - Allows
you to visualize elevation of any area on the map with filled area
charts (also known as a ridgeline).</li>
<li><a href="https://github.com/alyssaxuu/mapus">mapus</a> - Mapus is a
tool to explore and annotate collaboratively on a map.</li>
<li><a href="https://maponshirt.com">MapOnShirt</a> - A fun tool for
creating colorful designs from maps and turning them into T-shirts,
Posters, Cushions and more.</li>
</ul>
<h2 id="colour-advice">🎨 Colour advice</h2>
<p>Colour usage is very important in data visualisation and cartography.
Here are some tools to help you choose the best colours for your
maps:</p>
<ul>
<li><a href="https://colorbrewer2.org/">ColorBrewer</a> - Colour advice
for maps, based on the research of Dr. Cynthia Brewer.</li>
<li><a
href="https://www.susielu.com/data-viz/viz-palette">viz-palette</a> -
This project is optimized for tweaking, copying, and pasting colors in
and out of JavaScript.</li>
<li><a href="https://gka.github.io/palettes/#/9">Chroma.js Color Palette
Helper</a> - This chroma.js-powered tool is here to help us mastering
multi-hued, multi-stops color scales.</li>
<li><a href="https://github.com/riatelab/dicopal.js">Dicopal.js</a> -
Discrete color palettes (hundreds of them!) for JavaScript.</li>
<li><a href="https://github.com/riccardoscalco/textures">Textures.js</a>
- JavaScript library for creating SVG patterns. Made on top of d3.js, it
is designed for data visualization. Textures are useful for the
selective perception of different categories.</li>
</ul>
<h2 id="icons">📍 Icons</h2>
<p>Icons to add to your GIS websites: - <a
href="https://github.com/Viglino/font-gis">font-GIS</a> - A very very
cool icon font set for use with GIS and spatial analysis tools. - <a
href="https://mapicons.mapsmarker.com/">Map Icons Collection</a> - A set
of more than 1000 free and customizable icons to use as placemarks for
your POI (Point of Interests) locations on your maps. - <a
href="https://fonts.google.com/icons?icon.query=map">Material
Symbols</a> - Over 2,990 glyphs in a single font file with a wide range
of design variants. - <a
href="https://apidocs.geoapify.com/playground/icon/">Geoapify map marker
playground</a> - The Marker Icon API lets you create beautiful icons and
use them as Map Markers.</p>
<h2 id="videos">📺 Videos</h2>
<p>Videos of web mapping presentations and tutorials:</p>
<ul>
<li><a href="https://www.youtube.com/watch?v=nZaZ2dB6pow">Mapping
Geolocation with Leaflet.js - Working with Data and APIs in
JavaScript</a> - The Coding Train.</li>
<li><a href="https://www.youtube.com/watch?v=PpWAKVjPlgU">10 Maps, and
the Tech and Stories Behind Them</a> - Maarten Lambrechts.</li>
<li><a
href="https://www.youtube.com/watch?v=vM8M4QloVL0&amp;t=4418s">Intermediate
Three.js Tutorial - Create a Globe with Custom Shaders</a> - Chris
Courses.</li>
<li><a href="https://www.youtube.com/watch?v=e803ElX5Q_c">Statistical
Cartography - Design principles for statistical map design</a> - Julien
Gaffuri.</li>
</ul>
<h2 id="further-reading">📚 Further reading</h2>
<ul>
<li><a href="https://clauswilke.com/dataviz/">Fundamentals of Data
Visualization</a> - Claus O. Wilke.</li>
<li><a href="https://github.com/uwcartlab/webmapping">A Workbook for
Interactive Cartography and Visualization on the Open Web</a> - Robert
Roth, Carl Sack, Gareth Baldrica-Franklin, Yuying Chen, Rich Donohue,
Lily Houtman, Tim Prestby, Robin Tolochko, Nick Underwood.</li>
<li><a
href="https://www.esri.com/en-us/esri-press/browse/thematic-mapping">Thematic
Mapping: 101 Inspiring Ways to Visualise Empirical Data</a> - Kenneth
Field.</li>
<li><a
href="https://colorbrewer2.org/learnmore/schemes_full.html#qualitative">Color
use guidelines for mapping and visualization</a> - Cynthia A.
Brewer.</li>
</ul>
<h2 id="contributing">Contributing</h2>
<p>Contributions of any kind are welcome, just follow the <a
href="./CONTRIBUTING.md">guidelines</a> by either:</p>
<ul>
<li>Filling a <a
href="https://github.com/joewdavies/awesome-frontend-gis/issues/new/">suggestion
issue</a> (easier).</li>
<li>Opening a <a
href="https://github.com/joewdavies/awesome-frontend-gis/compare">pull
request</a>.</li>
</ul>
<hr />
<p>If you have any questions about this list, please dont hesitate to
contact me <a href="https://twitter.com/joewdavies"><span
class="citation" data-cites="joewdavies">@joewdavies</span></a> on X
(formerly Twitter) or <a
href="https://github.com/joewdavies/awesome-frontend-gis/issues/new">open
a GitHub issue</a>.</p>