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

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
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
Supported Asset Types
Energy & Power
Telecommunications
Oil, Gas & Mining
Water & Utilities
Aviation
Maritime
Rail & Transit
Structures
Industrial & Commercial
Military & Defense
Government & Public Safety
Education & Research
Healthcare
Culture & Entertainment
Tourism & Leisure
Religious
Historic
Agriculture
Services
Public Utilities
Cable Transport
Emergency Infrastructure (Additional)
Commercial & Retail
| Type | Aliases | Description |
|---|
supermarket | - | Supermarkets |
mall |
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 | - |
Food Services
| Type | Aliases | Description |
|---|
restaurant | - | Restaurants |
cafe |
Recreation
| Type | Aliases | Description |
|---|
playground | - | Playgrounds |
park | - |
Water Features
| Type | Aliases | Description |
|---|
fountain | - | Fountains |
waterfall |
Monitoring & Weather
| Type | Aliases | Description |
|---|
monitoring_station | - | Environmental monitoring |
weather_station | - | Weather stations |
| Type | Aliases | Description |
|---|
community_centre | - | Community centres |
|
Development
Prerequisites
Setup
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:
- Respect OpenStreetMap's tile usage policy
- Respect Nominatim usage policy
- Respect Overpass API usage policy
- Not use this tool for illegal surveillance or harmful purposes
- Acknowledge that OSM data may be incomplete or inaccurate
- Not perform bulk automated queries that overload public infrastructure
- 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