Skip to content

An OSINT search engine for mapping real-world infrastructure from OpenStreetMap data

License

Notifications You must be signed in to change notification settings

ni5arga/sightline

Repository files navigation

Sightline

Geospatial infrastructure intelligence platform for discovering and analyzing physical-world assets using OpenStreetMap data.

screenshot2 screenshot

Overview

Sightline enables searching, monitoring, and analyzing real-world infrastructure including:

  • Telecommunications towers and data centers
  • Power plants, substations, and energy storage
  • Airports, helipads, and cable transport (gondolas, funiculars)
  • Ports, harbours, piers, and maritime facilities
  • Warehouses and industrial facilities
  • Pipelines, refineries, and energy infrastructure
  • Military installations
  • Hospitals, prisons, embassies, and government facilities
  • Surveillance cameras and emergency infrastructure
  • Transportation hubs (train stations, bus stations, taxi stands)

And many more asset types across 30+ categories with over 200 searchable infrastructure types.

Architecture

flowchart TB
    classDef frontend fill:#6366f1,stroke:#4338ca,color:#fff
    classDef backend fill:#0ea5e9,stroke:#0284c7,color:#fff
    classDef external fill:#f59e0b,stroke:#d97706,color:#fff

    subgraph FE["Frontend"]
        SearchBar["SearchBar"]
        Filters["Filters"]
        ResultList["ResultList"]
        MapView["MapView — Leaflet.js"]
    end

    subgraph BE["Backend"]
        route["route.ts — Request Handler"]
        parser["parser.ts — NLP Engine"]
        geo["geo.ts — Geocoding"]
        overpass["overpass.ts — OSM Query Builder"]
        cache["cache.ts — Cache Layer"]
    end

    subgraph EX["External APIs"]
        Nominatim["Nominatim — Geocoding API"]
        OverpassAPI["Overpass API — OSM Data"]
    end

    SearchBar & Filters & ResultList & MapView -->|"POST /api/search"| route

    route -->|"parse query"| parser
    route -->|"resolve location"| geo
    route -->|"fetch POIs"| overpass
    route <-->|"read / write"| cache

    geo -->|"geocode"| Nominatim
    overpass -->|"QL query"| OverpassAPI

    class SearchBar,Filters,ResultList,MapView frontend
    class route,parser,geo,overpass,cache backend
    class Nominatim,OverpassAPI external
Loading

Data Sources

OpenStreetMap

All infrastructure data comes from OpenStreetMap, a collaborative mapping project. OSM data is crowd-sourced and may contain inaccuracies or gaps.

Nominatim

Geographic resolution uses the Nominatim geocoding service to convert place names to bounding boxes and coordinates.

Overpass API

Infrastructure queries execute against the Overpass API, which provides read-only access to OSM data.

Query Syntax

Natural Language

telecom towers in karnataka
power plants near mumbai
data centers in california
airports in germany

Structured Queries

type:telecom operator:airtel region:karnataka
type:data_center operator:google
type:substation region:texas
type:airport country:france

Supported Parameters

Parameter Description Example
type: Asset type type:power_plant
operator: Operator/owner operator:google
region: State/region region:bavaria
country: Country country:india
near: Proximity search near:london
radius: Search radius (km) radius:100

Supported Asset Types

Energy & Power

Type Aliases Description
power_plant powerplant Power generation facilities
substation - Electrical substations
transformer - Power transformers
converter - Power converters
switch - Power switches
power_line - High voltage power lines
power_pole - Power distribution poles
solar - Solar farms and panels
wind - Wind farms and turbines
nuclear nuclear_site Nuclear power plants
hydroelectric - Hydroelectric plants
geothermal - Geothermal plants
coal - Coal power plants
gas_power - Gas power plants
oil_power - Oil power plants
biogas - Biogas plants
biomass - Biomass plants
tidal - Tidal power plants
battery_storage - Battery energy storage

Telecommunications

Type Aliases Description
telecom tower Telecom towers
antenna - Antennas
mast - Communication masts
cell_tower - Mobile cell towers
radio_tower - Radio transmission towers
broadcast_tower - TV/Radio broadcast towers
satellite_dish - Satellite dishes
telephone_exchange - Telephone exchanges
data_center datacenter Data centers

Oil, Gas & Mining

Type Aliases Description
refinery - Oil refineries
pipeline - Pipelines
oil_well - Oil extraction wells
gas_well - Gas extraction wells
storage_tank - Fuel/liquid storage tanks
silo - Storage silos
gasometer - Gas storage tanks
quarry mine Quarries and mines
landfill - Landfill sites
scrap_yard - Scrap yards

Water & Utilities

Type Aliases Description
water_tower - Water towers
water_treatment - Water treatment plants
wastewater sewage, sewage_plant Wastewater plants
dam - Dams
reservoir - Reservoirs
pumping_station - Water pumping stations
water_well - Water wells

Aviation

Type Aliases Description
airport - Airports
helipad - Helipads
airfield - Military/private airfields
runway - Airport runways
taxiway - Airport taxiways
terminal - Airport terminals
hangar - Aircraft hangars
atc_tower - Air traffic control towers

Maritime

Type Aliases Description
port seaport Ports and seaports
harbour - Harbours
ferry_terminal - Ferry terminals
marina - Marinas
shipyard - Shipyards
dock - Docks
lighthouse - Lighthouses
pier - Piers
jetty - Jetties
slipway - Boat slipways
mooring - Moorings
boat_lift - Boat lifts

Rail & Transit

Type Aliases Description
train_station - Train stations
railyard rail_yard Rail yards
metro - Metro/subway stations
tram_stop - Tram stops
halt - Railway halts
level_crossing - Level crossings
bus_station - Bus stations
parking - Parking facilities
toll_booth - Toll booths
weigh_station - Truck weigh stations
rest_area - Highway rest areas
service_area - Highway service areas

Structures

Type Aliases Description
building - General buildings
bridge - Bridges
tunnel - Tunnels
cooling_tower - Cooling towers
chimney - Industrial chimneys
crane - Cranes
windmill - Windmills
watermill - Watermills
clock_tower - Clock towers
bell_tower - Bell towers

Industrial & Commercial

Type Aliases Description
warehouse - Warehouses
factory - Factories
industrial - Industrial zones
works - Industrial works
depot - Depots
brewery - Breweries
distillery - Distilleries
sawmill - Sawmills
slaughterhouse - Slaughterhouses
recycling_plant recycling Recycling plants

Military & Defense

Type Aliases Description
military - Military installations
bunker - Bunkers
barracks - Military barracks
naval_base - Naval bases
range - Firing/shooting ranges
checkpoint - Military checkpoints
radar - Radar installations

Government & Public Safety

Type Aliases Description
embassy - Embassies
courthouse - Courthouses
townhall - Town halls
government - Government offices
customs - Customs offices
tax_office - Tax offices
border_control - Border control points
police - Police stations
fire_station - Fire stations
prison - Prisons
ambulance_station - Ambulance stations
rescue_station - Rescue stations
coast_guard - Coast guard stations
emergency_phone - Emergency phones
fire_hydrant - Fire hydrants
lifeguard - Lifeguard stations
surveillance_camera cctv Surveillance cameras

Education & Research

Type Aliases Description
school - Schools
university - Universities
college - Colleges
kindergarten - Kindergartens
driving_school - Driving schools
research - Research institutes
library - Libraries

Healthcare

Type Aliases Description
hospital - Hospitals
clinic - Clinics
pharmacy - Pharmacies
dentist - Dental practices
veterinary - Veterinary clinics
nursing_home - Nursing homes
hospice - Hospices
blood_bank - Blood banks

Culture & Entertainment

Type Aliases Description
museum - Museums
theatre - Theatres
cinema - Cinemas
stadium - Stadiums
sports_centre - Sports centres
swimming_pool - Swimming pools
golf_course - Golf courses
racetrack - Racetracks
ice_rink - Ice rinks

Tourism & Leisure

Type Aliases Description
hotel - Hotels
campsite - Campsites
caravan_site - Caravan sites
theme_park - Theme parks
zoo - Zoos
aquarium - Aquariums
viewpoint - Viewpoints
attraction - Tourist attractions
information - Tourist information centers
picnic_site - Picnic sites

Religious

Type Aliases Description
church - Churches
mosque - Mosques
temple - Temples
synagogue - Synagogues
place_of_worship - General places of worship
cemetery - Cemeteries

Historic

Type Aliases Description
monument - Monuments
memorial - Memorials
castle - Castles
fort - Forts
ruins - Ruins
archaeological_site - Archaeological sites
observatory - Observatories

Agriculture

Type Aliases Description
farm - Farms
greenhouse - Greenhouses
orchard - Orchards
vineyard - Vineyards

Services

Type Aliases Description
bank - Banks
atm - ATMs
post_office - Post offices
post_box - Post boxes
fuel gas_station, petrol Fuel stations
charging_station - EV charging stations
taxi_stand - Taxi stands
car_wash - Car washes
bicycle_repair - Bicycle repair stations

Public Utilities

Type Aliases Description
bicycle_parking - Bicycle parking
drinking_water - Drinking water fountains
public_toilet - Public toilets
bench - Public benches
waste_basket - Waste baskets
street_lamp - Street lamps
traffic_signals - Traffic signals
telephone - Public telephones

Cable Transport

Type Aliases Description
aerialway - Cable cars
gondola - Gondolas
funicular - Funiculars
chairlift - Chairlifts

Emergency Infrastructure (Additional)

Type Aliases Description
siren - Emergency sirens
defibrillator - Public defibrillators
assembly_point - Emergency assembly points
life_ring - Life rings

Commercial & Retail

Type Aliases Description
supermarket - Supermarkets
mall - Shopping malls
marketplace - Marketplaces

Shared Mobility

Type Aliases Description
bicycle_rental - Bike sharing stations
car_sharing - Car sharing locations

Science & Research (Additional)

Type Aliases Description
planetarium - Planetariums
laboratory - Laboratories

Construction

Type Aliases Description
construction_site - Construction sites

Food & Beverage Production

Type Aliases Description
winery - Wineries
bakery - Bakeries
dairy - Dairies

Food Services

Type Aliases Description
restaurant - Restaurants
cafe - Cafes
fast_food - Fast food restaurants

Recreation

Type Aliases Description
playground - Playgrounds
park - Parks
pitch - Sports pitches

Water Features

Type Aliases Description
fountain - Fountains
waterfall - Waterfalls
hot_spring - Hot springs

Monitoring & Weather

Type Aliases Description
monitoring_station - Environmental monitoring
weather_station - Weather stations

Community Facilities

Type Aliases Description
community_centre - Community centres
social_facility - Social facilities
shelter - Public shelters

Development

Prerequisites

  • Node.js 18+
  • npm

Setup

npm install
npm run dev

Open http://localhost:3000.

Project Structure

app/
├── page.tsx              # Main application page
├── layout.tsx            # Root layout
├── globals.css           # Global styles
└── api/
    └── search/
        └── route.ts      # Search API endpoint

components/
├── SearchBar.tsx         # Query input
├── Filters.tsx           # Filter sidebar
├── ResultList.tsx        # Results display
├── MapView.tsx           # Leaflet map
├── ShareButton.tsx       # Share functionality
└── ui/
    └── scroll-area.tsx   # UI components

lib/
├── types.ts              # Type definitions
├── parser.ts             # Query parsing and NLP
├── geo.ts                # Nominatim integration
├── overpass.ts           # Overpass API queries
├── cache.ts              # In-memory caching
├── search-index.ts       # Search indexing

Deployment

Vercel

npm install -g vercel
vercel

Environment Variables

No environment variables required. The application uses public OpenStreetMap APIs.

API Rate Limits

  • Nominatim: 1 request/second (enforced by Nominatim usage policy)
  • Overpass API: Fair use, avoid heavy queries

Responsible Use

This tool accesses publicly available OpenStreetMap data. Users must:

  1. Respect OpenStreetMap's tile usage policy
  2. Respect Nominatim usage policy
  3. Respect Overpass API usage policy
  4. Not use this tool for illegal surveillance or harmful purposes
  5. Acknowledge that OSM data may be incomplete or inaccurate
  6. Not perform bulk automated queries that overload public infrastructure
  7. For issues regarding the map, please refer to https://www.openstreetmap.org/fixthemap

The presence or absence of infrastructure in OSM should not be taken as authoritative. Always verify critical information through official sources.

License

MIT

About

An OSINT search engine for mapping real-world infrastructure from OpenStreetMap data

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors