631 lines
31 KiB
HTML
631 lines
31 KiB
HTML
<!--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><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></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
|
||
& 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 Earth’s 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 Earth’s 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
|
||
world’s 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 NASA’s
|
||
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
|
||
& 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 & 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 ESRI’s 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&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 don’t 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>
|