Important Note: This is the main UNopenGIS/foil4g repository, a significant contribution to the UN Open GIS Initiative. The project supports the initiative's mission of leveraging open-source geospatial solutions for UN peacekeeping and humanitarian operations. If you're working with a fork, please ensure all pull requests are submitted here rather than to other forks to ensure proper contribution tracking.
FOIL4G actively supports the UN Open GIS Initiative's goals by:
- Providing open-source geospatial solutions for UN field operations
- Supporting decision-making with accurate location-based data
- Enabling collaborative mapping and data validation
- Contributing to the UN Maps ecosystem for peacekeeping missions
- Fostering knowledge sharing through the UN Maps Learning Hub
FOIL4G (Free and Open Information Library for Geospatial) is a comprehensive geospatial information platform built with:
- React + TypeScript frontend using Vite
- MapLibre GL for map rendering
- PMTiles for efficient tile storage
- Storybook for component documentation
- Web-based mapping application
- Multiple map source integrations
- Geospatial data processing
- Component-based architecture
foil4g/
├── src/ # Frontend source code
│ ├── App.tsx # Main application component
│ └── components/
│ └── Maps/ # Map components
│ ├── OpenStreetMap/
│ └── SatelliteImagery/
├── lib/ # Core library functionality
│ ├── api/ # API definitions for geospatial services
│ ├── data/ # Geospatial data source definitions
│ ├── skills/ # Geospatial processing skills
│ └── tasks/ # Data processing workflows
├── public/
│ └── stylejson/ # Map style configurations
└── .storybook/ # Storybook configuration
OpenStreetMapOrgRaster
: OSM standard raster tilesOpenStreetMapFrHotRaster
: Humanitarian OSM tilesOpenStreetMapJpOSMBrightVector
: Vector tiles with bright styleArcGISWorldImagery
: Satellite imageryUNClearMapRaster
: UN base map
maplibre-gl
: Main mapping librarypmtiles
: Efficient tile storage formatreact-map-gl
: React wrapper for MapLibre GL
FOIL4G welcomes contributions that enhance UN peacekeeping and humanitarian operations through open-source geospatial solutions. By contributing, you demonstrate technical capabilities in:
- Geospatial data processing and visualization
- Open-source GIS development
- UN Maps ecosystem integration
- Collaborative mapping solutions
- Humanitarian technology applications
When contributing to this project, follow these steps:
- Fork the repository to your account if you haven't already
- Create a new branch with a descriptive name
- Make your changes and commit them
- Create a pull request to your fork first
- After the PR is created, you can change the base to point to UNopenGIS/foil4g
Note: Due to authentication requirements, it's recommended to first create your PR to your own fork and then change the base repository to UNopenGIS/foil4g. This helps bypass potential authentication issues that may occur when trying to create PRs directly to the upstream repository.
- Node.js
- npm/pnpm
npm ci
# Start development server
npm run dev
# Build project
npm run build
# Run linting
npm run lint
# Start Storybook
npm run storybook
# Build Storybook
npm run build-storybook
Required fields in api/*.yaml:
api_id
: Unique identifierdescription
: API purposeendpoint_url
: Access URLparameters
: Input parameters
Required fields in data/*.yaml:
data_id
: Unique identifierlicense
: Usage licenseattributions
: Required creditsdescription
: Data descriptiondata_format
: Format typefile_format
: File typefile_size
: Data sizeurl
: Access URL
Required fields in tasks/*.yaml:
task_id
: Unique identifierdescription
: Task purposegoal
: Task objectiveinput
: Required data sourcessteps
: Processing instructions
- FOIL4G: Free and Open Information Library for Geospatial
- UN Open GIS Initiative: UN partnership established in 2016 to leverage open-source geospatial solutions for peacekeeping operations
- UN Maps: Program supporting UN field operations with geospatial data and collaborative mapping
- UN Clear Map: United Nations base map style for standardized visualization
- PMTiles: Efficient tile storage format for geospatial data
- Vector Tiles: Map data in vector format for flexible rendering
- Raster Tiles: Pre-rendered map images
- MapLibre GL: Open-source library for interactive maps
- OSM: OpenStreetMap, a collaborative mapping platform