Overmatch

From OpenStreetMap Wiki
Jump to navigation Jump to search
Overmatch
Author: whammo
License: MIT License
Platform: Web
Status: Active
Website: https://whubsch.github.io/overmatch/
Source code: https://github.com/whubsch/overmatch/

Tool for matching Overture Maps data with OpenStreetMap elements and applying enriched tags

Features
Feature Value
Map Display
?
Routing
?
Navigating
?
Tracking
?
Monitoring
?
Editing
?
Rendering
?
Accessibility
?

Overmatch is a web-based tool for enriching OpenStreetMap data using Overture Maps information. It helps mappers efficiently match OSM amenities with Overture data, review tag differences, and apply enriched tags to improve map completeness.

Overview

Overmatch addresses the challenge of improving OSM data quality by leveraging the Overture Maps dataset. The tool matches OSM amenities with corresponding Overture Maps data, presents tag differences in a visual interface, and allows mappers to selectively apply additional information.

Features

  • Geospatial matching between OSM and Overture Maps data using spatial indexing and fuzzy name matching
  • Visual comparison table showing tag differences between OSM and Overture
  • Interactive map with MapLibre showing matched elements
  • Batch upload to OSM via authenticated changesets
  • Automatic deduplication to prevent duplicate edits
  • Relation-based area selection for focused mapping
  • OAuth authentication with OpenStreetMap

Architecture

Overmatch consists of three main components. User will only need to interact with the frontend:

Web Frontend

A React application for reviewing matches and applying tags:

  • Visual comparison table with color-coded tag differences
  • OSM data fetching via the QLever API
  • Batch changeset creation and upload

Matching Scripts

Python scripts that perform the core geospatial matching between OSM and Overture data. The matching scripts output JSONL (JSON Lines) format with match metadata including distance, similarity scores, and tag differences.

Tracking API

A FastAPI service deployed on AWS Lambda that tracks processed elements:

  • Tracks which OSM elements have been uploaded with changes
  • Tracks which Overture elements have been marked as non-matching
  • Stores and retrieves OSM-to-Overture match data
  • Uses DynamoDB for millisecond response times at any scale
  • Serverless architecture for cost-effective operation (almost free for moderate usage)
  • OpenAPI docs

Technical Details

  • Languages: Python (matching scripts), TypeScript/React (frontend), Python/FastAPI (API)
  • Key Dependencies: GeoPandas, RapidFuzz, rtree, overturetoosm, atlus (Python); React, MapLibre GL JS (frontend)
  • Infrastructure: AWS Lambda, DynamoDB, API Gateway, CloudFormation
  • Data Format: JSONL for match data, DynamoDB for tracking

See also

External links