AeroGIS is a spatially enabled website that visualises airports around the UK using the Google Maps API.
For a comprehensive list of datasets, their sources and any modifications, please refer to the README in the datasets directory.
This project was created as part of IS3S665 - GIS and the Spatial Web at the University of South Wales (USW).
The curriculum for the module can be found here: IS3S665 - GIS and the Spatial Web
A deployed version of the tool is available to try at: aeroGIS.totaldwarf.dev.
Note: The above URL redirects you to Vercel deployment of the website.
- Interactive Maps: Explore airports across the UK using dynamic maps powered by the Google Maps API.
- Airport Finder: Locate airports by entering a UK postcode or exploring by country.
- Airport Wiki: View detailed information about each airport, including runway information and geographic position.
- Airport Top Down: See a scaled, top-down polygon view of airport runways throughout the UK.
To run the project locally, a Google Maps API key is required.
An API key can be obtained from the Google Cloud Console using the following guide: Set up the Maps JavaScript API.
Once you have an API key, you will need to add it into setApiKey.js.
apiKey = "YOUR_API_KEY_HERE"; // Replace with your actual API keyNote: This file is ignored by Git so your API key will not be committed to the repository. It can be re-ignored using the following command:
git update-index --assume-unchanged src/setApiKey.jsOr un-ignored using:
git update-index --no-assume-unchanged src/setApiKey.jsAfter adding your API key, you can open index.html in a web browser to view the project.
Unfortunately, a few changes have been made to the project in order to get it working on the USW student webserver. These changes are noted below:
- File Types: The student webserver has restrictions on certain file types, geojson files in particular. To work around this, all geojson files have been converted to standard
.jsonfiles.
This project uses GitHub Actions to run Prettier and Markdownlint on push and pull requests to the main branch. These action can be found in the .github/workflows directory.
These action will check for formatting and linting issues in the codebase. If any issues are found, the action will fail and provide feedback on what needs to be fixed.
To fix any issues, you will need to run the tools locally using the instructions below.
Credit:
To run Prettier locally, you will need to have Node.js and npm installed. You can then install Prettier using the following command:
npm install --global prettierNote: This installs Prettier globally on your system. If you prefer to install it locally to the project, you can run npm install --save-dev prettier instead.
Once Prettier is installed, you can run it on the project using the following command:
prettier --write .To run Markdownlint using Docker, you will need to have Docker or Podman installed. You can then run the following command from the root of the project:
docker run -v $PWD:/workdir ghcr.io/igorshubovych/markdownlint-cli:latest "**/*.md"If using Podman, simply replace docker with podman in the command above.
To run Markdownlint locally, you will need to have Node.js and npm installed. You can then install Markdownlint using the following command:
npm install --global markdownlint-cliNote: This installs Markdownlint globally on your system. If you prefer to install it locally to the project, you can run npm install --save-dev markdownlint-cli instead.
Once Markdownlint is installed, you can run it on the project using the following command:
markdownlint . --fixFor more information on the Google Maps JavaScript API, please refer to the official documentation: Google Maps JavaScript API
- Airport and Runway Data: OpenFlights
- UK Postcode Data: Ordnance Survey Code-Point Open
- UK Border Data: UK Boundaries BGC
- Google Maps JavaScript API: Google Maps API
- GetTheData BNG to Lat/Long API: GetTheData - BNG to Lat/Long
- GetTheData Postcode API: GetTheData - Postcodes
- Pico CSS: Pico CSS Framework
- Toastify.js: Toastify.js Library
- Canvas Confetti: Canvas Confetti Library
- FontAwesome Icons: FontAwesome
- Google Material Icons: Google Material Icons