{"id":46634830,"url":"https://github.com/ni5arga/sightline","last_synced_at":"2026-04-04T14:48:34.737Z","repository":{"id":334515146,"uuid":"1141658060","full_name":"ni5arga/sightline","owner":"ni5arga","description":"An OSINT search engine for mapping real-world infrastructure from OpenStreetMap data","archived":false,"fork":false,"pushed_at":"2026-03-01T19:41:46.000Z","size":8398,"stargazers_count":307,"open_issues_count":0,"forks_count":40,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-03-31T00:38:46.611Z","etag":null,"topics":["geo-osint","geoint","openstreetmap","openstreetmap-api","openstreetmap-data","osint","overpass-turbo"],"latest_commit_sha":null,"homepage":"https://sightline-maps.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ni5arga.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-25T07:20:04.000Z","updated_at":"2026-03-28T11:05:59.000Z","dependencies_parsed_at":null,"dependency_job_id":"5d4fbb1b-ac2a-4a40-af4c-b70aaf5ae2e4","html_url":"https://github.com/ni5arga/sightline","commit_stats":null,"previous_names":["ni5arga/sightline"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ni5arga/sightline","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ni5arga%2Fsightline","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ni5arga%2Fsightline/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ni5arga%2Fsightline/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ni5arga%2Fsightline/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ni5arga","download_url":"https://codeload.github.com/ni5arga/sightline/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ni5arga%2Fsightline/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31403636,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["geo-osint","geoint","openstreetmap","openstreetmap-api","openstreetmap-data","osint","overpass-turbo"],"created_at":"2026-03-08T01:01:00.703Z","updated_at":"2026-04-04T14:48:34.723Z","avatar_url":"https://github.com/ni5arga.png","language":"TypeScript","funding_links":[],"categories":["WAR / MILITARY CONFLICT"],"sub_categories":["URL's"],"readme":"# Sightline\n\nGeospatial infrastructure intelligence platform for discovering and analyzing physical-world assets using OpenStreetMap data.\n\n![screenshot2](screenshots/screenshot2.png)\n![screenshot](screenshots/screenshot.png)\n\n## Overview\n\nSightline enables searching, monitoring, and analyzing real-world infrastructure including:\n\n- Telecommunications towers and data centers\n- Power plants, substations, and energy storage\n- Airports, helipads, and cable transport (gondolas, funiculars)\n- Ports, harbours, piers, and maritime facilities\n- Warehouses and industrial facilities\n- Pipelines, refineries, and energy infrastructure\n- Military installations\n- Hospitals, prisons, embassies, and government facilities\n- Surveillance cameras and emergency infrastructure\n- Transportation hubs (train stations, bus stations, taxi stands)\n\nAnd many more asset types across 30+ categories with over 200 searchable infrastructure types.\n\n## Architecture\n\n```mermaid\nflowchart TB\n    classDef frontend fill:#6366f1,stroke:#4338ca,color:#fff\n    classDef backend fill:#0ea5e9,stroke:#0284c7,color:#fff\n    classDef external fill:#f59e0b,stroke:#d97706,color:#fff\n\n    subgraph FE[\"Frontend\"]\n        SearchBar[\"SearchBar\"]\n        Filters[\"Filters\"]\n        ResultList[\"ResultList\"]\n        MapView[\"MapView — Leaflet.js\"]\n    end\n\n    subgraph BE[\"Backend\"]\n        route[\"route.ts — Request Handler\"]\n        parser[\"parser.ts — NLP Engine\"]\n        geo[\"geo.ts — Geocoding\"]\n        overpass[\"overpass.ts — OSM Query Builder\"]\n        cache[\"cache.ts — Cache Layer\"]\n    end\n\n    subgraph EX[\"External APIs\"]\n        Nominatim[\"Nominatim — Geocoding API\"]\n        OverpassAPI[\"Overpass API — OSM Data\"]\n    end\n\n    SearchBar \u0026 Filters \u0026 ResultList \u0026 MapView --\u003e|\"POST /api/search\"| route\n\n    route --\u003e|\"parse query\"| parser\n    route --\u003e|\"resolve location\"| geo\n    route --\u003e|\"fetch POIs\"| overpass\n    route \u003c--\u003e|\"read / write\"| cache\n\n    geo --\u003e|\"geocode\"| Nominatim\n    overpass --\u003e|\"QL query\"| OverpassAPI\n\n    class SearchBar,Filters,ResultList,MapView frontend\n    class route,parser,geo,overpass,cache backend\n    class Nominatim,OverpassAPI external\n```\n\n## Data Sources\n\n### OpenStreetMap\n\nAll infrastructure data comes from [OpenStreetMap](https://www.openstreetmap.org/), a collaborative mapping project. OSM data is crowd-sourced and may contain inaccuracies or gaps.\n\n### Nominatim\n\nGeographic resolution uses the [Nominatim](https://nominatim.openstreetmap.org/) geocoding service to convert place names to bounding boxes and coordinates.\n\n### Overpass API\n\nInfrastructure queries execute against the [Overpass API](https://overpass-api.de/), which provides read-only access to OSM data.\n\n## Query Syntax\n\n### Natural Language\n\n```\ntelecom towers in karnataka\npower plants near mumbai\ndata centers in california\nairports in germany\n```\n\n### Structured Queries\n\n```\ntype:telecom operator:airtel region:karnataka\ntype:data_center operator:google\ntype:substation region:texas\ntype:airport country:france\n```\n\n### Supported Parameters\n\n| Parameter | Description | Example |\n|-----------|-------------|---------|\n| `type:` | Asset type | `type:power_plant` |\n| `operator:` | Operator/owner | `operator:google` |\n| `region:` | State/region | `region:bavaria` |\n| `country:` | Country | `country:india` |\n| `near:` | Proximity search | `near:london` |\n| `radius:` | Search radius (km) | `radius:100` |\n\n### Supported Asset Types\n\n#### Energy \u0026 Power\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `power_plant` | `powerplant` | Power generation facilities |\n| `substation` | - | Electrical substations |\n| `transformer` | - | Power transformers |\n| `converter` | - | Power converters |\n| `switch` | - | Power switches |\n| `power_line` | - | High voltage power lines |\n| `power_pole` | - | Power distribution poles |\n| `solar` | - | Solar farms and panels |\n| `wind` | - | Wind farms and turbines |\n| `nuclear` | `nuclear_site` | Nuclear power plants |\n| `hydroelectric` | - | Hydroelectric plants |\n| `geothermal` | - | Geothermal plants |\n| `coal` | - | Coal power plants |\n| `gas_power` | - | Gas power plants |\n| `oil_power` | - | Oil power plants |\n| `biogas` | - | Biogas plants |\n| `biomass` | - | Biomass plants |\n| `tidal` | - | Tidal power plants |\n| `battery_storage` | - | Battery energy storage |\n\n#### Telecommunications\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `telecom` | `tower` | Telecom towers |\n| `antenna` | - | Antennas |\n| `mast` | - | Communication masts |\n| `cell_tower` | - | Mobile cell towers |\n| `radio_tower` | - | Radio transmission towers |\n| `broadcast_tower` | - | TV/Radio broadcast towers |\n| `satellite_dish` | - | Satellite dishes |\n| `telephone_exchange` | - | Telephone exchanges |\n| `data_center` | `datacenter` | Data centers |\n\n#### Oil, Gas \u0026 Mining\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `refinery` | - | Oil refineries |\n| `pipeline` | - | Pipelines |\n| `oil_well` | - | Oil extraction wells |\n| `gas_well` | - | Gas extraction wells |\n| `storage_tank` | - | Fuel/liquid storage tanks |\n| `silo` | - | Storage silos |\n| `gasometer` | - | Gas storage tanks |\n| `quarry` | `mine` | Quarries and mines |\n| `landfill` | - | Landfill sites |\n| `scrap_yard` | - | Scrap yards |\n\n#### Water \u0026 Utilities\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `water_tower` | - | Water towers |\n| `water_treatment` | - | Water treatment plants |\n| `wastewater` | `sewage`, `sewage_plant` | Wastewater plants |\n| `dam` | - | Dams |\n| `reservoir` | - | Reservoirs |\n| `pumping_station` | - | Water pumping stations |\n| `water_well` | - | Water wells |\n\n#### Aviation\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `airport` | - | Airports |\n| `helipad` | - | Helipads |\n| `airfield` | - | Military/private airfields |\n| `runway` | - | Airport runways |\n| `taxiway` | - | Airport taxiways |\n| `terminal` | - | Airport terminals |\n| `hangar` | - | Aircraft hangars |\n| `atc_tower` | - | Air traffic control towers |\n\n#### Maritime\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `port` | `seaport` | Ports and seaports |\n| `harbour` | - | Harbours |\n| `ferry_terminal` | - | Ferry terminals |\n| `marina` | - | Marinas |\n| `shipyard` | - | Shipyards |\n| `dock` | - | Docks |\n| `lighthouse` | - | Lighthouses |\n| `pier` | - | Piers |\n| `jetty` | - | Jetties |\n| `slipway` | - | Boat slipways |\n| `mooring` | - | Moorings |\n| `boat_lift` | - | Boat lifts |\n\n#### Rail \u0026 Transit\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `train_station` | - | Train stations |\n| `railyard` | `rail_yard` | Rail yards |\n| `metro` | - | Metro/subway stations |\n| `tram_stop` | - | Tram stops |\n| `halt` | - | Railway halts |\n| `level_crossing` | - | Level crossings |\n| `bus_station` | - | Bus stations |\n| `parking` | - | Parking facilities |\n| `toll_booth` | - | Toll booths |\n| `weigh_station` | - | Truck weigh stations |\n| `rest_area` | - | Highway rest areas |\n| `service_area` | - | Highway service areas |\n\n#### Structures\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `building` | - | General buildings |\n| `bridge` | - | Bridges |\n| `tunnel` | - | Tunnels |\n| `cooling_tower` | - | Cooling towers |\n| `chimney` | - | Industrial chimneys |\n| `crane` | - | Cranes |\n| `windmill` | - | Windmills |\n| `watermill` | - | Watermills |\n| `clock_tower` | - | Clock towers |\n| `bell_tower` | - | Bell towers |\n\n#### Industrial \u0026 Commercial\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `warehouse` | - | Warehouses |\n| `factory` | - | Factories |\n| `industrial` | - | Industrial zones |\n| `works` | - | Industrial works |\n| `depot` | - | Depots |\n| `brewery` | - | Breweries |\n| `distillery` | - | Distilleries |\n| `sawmill` | - | Sawmills |\n| `slaughterhouse` | - | Slaughterhouses |\n| `recycling_plant` | `recycling` | Recycling plants |\n\n#### Military \u0026 Defense\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `military` | - | Military installations |\n| `bunker` | - | Bunkers |\n| `barracks` | - | Military barracks |\n| `naval_base` | - | Naval bases |\n| `range` | - | Firing/shooting ranges |\n| `checkpoint` | - | Military checkpoints |\n| `radar` | - | Radar installations |\n\n#### Government \u0026 Public Safety\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `embassy` | - | Embassies |\n| `courthouse` | - | Courthouses |\n| `townhall` | - | Town halls |\n| `government` | - | Government offices |\n| `customs` | - | Customs offices |\n| `tax_office` | - | Tax offices |\n| `border_control` | - | Border control points |\n| `police` | - | Police stations |\n| `fire_station` | - | Fire stations |\n| `prison` | - | Prisons |\n| `ambulance_station` | - | Ambulance stations |\n| `rescue_station` | - | Rescue stations |\n| `coast_guard` | - | Coast guard stations |\n| `emergency_phone` | - | Emergency phones |\n| `fire_hydrant` | - | Fire hydrants |\n| `lifeguard` | - | Lifeguard stations |\n| `surveillance_camera` | `cctv` | Surveillance cameras |\n\n#### Education \u0026 Research\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `school` | - | Schools |\n| `university` | - | Universities |\n| `college` | - | Colleges |\n| `kindergarten` | - | Kindergartens |\n| `driving_school` | - | Driving schools |\n| `research` | - | Research institutes |\n| `library` | - | Libraries |\n\n#### Healthcare\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `hospital` | - | Hospitals |\n| `clinic` | - | Clinics |\n| `pharmacy` | - | Pharmacies |\n| `dentist` | - | Dental practices |\n| `veterinary` | - | Veterinary clinics |\n| `nursing_home` | - | Nursing homes |\n| `hospice` | - | Hospices |\n| `blood_bank` | - | Blood banks |\n\n#### Culture \u0026 Entertainment\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `museum` | - | Museums |\n| `theatre` | - | Theatres |\n| `cinema` | - | Cinemas |\n| `stadium` | - | Stadiums |\n| `sports_centre` | - | Sports centres |\n| `swimming_pool` | - | Swimming pools |\n| `golf_course` | - | Golf courses |\n| `racetrack` | - | Racetracks |\n| `ice_rink` | - | Ice rinks |\n\n#### Tourism \u0026 Leisure\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `hotel` | - | Hotels |\n| `campsite` | - | Campsites |\n| `caravan_site` | - | Caravan sites |\n| `theme_park` | - | Theme parks |\n| `zoo` | - | Zoos |\n| `aquarium` | - | Aquariums |\n| `viewpoint` | - | Viewpoints |\n| `attraction` | - | Tourist attractions |\n| `information` | - | Tourist information centers |\n| `picnic_site` | - | Picnic sites |\n\n#### Religious\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `church` | - | Churches |\n| `mosque` | - | Mosques |\n| `temple` | - | Temples |\n| `synagogue` | - | Synagogues |\n| `place_of_worship` | - | General places of worship |\n| `cemetery` | - | Cemeteries |\n\n#### Historic\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `monument` | - | Monuments |\n| `memorial` | - | Memorials |\n| `castle` | - | Castles |\n| `fort` | - | Forts |\n| `ruins` | - | Ruins |\n| `archaeological_site` | - | Archaeological sites |\n| `observatory` | - | Observatories |\n\n#### Agriculture\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `farm` | - | Farms |\n| `greenhouse` | - | Greenhouses |\n| `orchard` | - | Orchards |\n| `vineyard` | - | Vineyards |\n\n#### Services\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `bank` | - | Banks |\n| `atm` | - | ATMs |\n| `post_office` | - | Post offices |\n| `post_box` | - | Post boxes |\n| `fuel` | `gas_station`, `petrol` | Fuel stations |\n| `charging_station` | - | EV charging stations |\n| `taxi_stand` | - | Taxi stands |\n| `car_wash` | - | Car washes |\n| `bicycle_repair` | - | Bicycle repair stations |\n\n#### Public Utilities\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `bicycle_parking` | - | Bicycle parking |\n| `drinking_water` | - | Drinking water fountains |\n| `public_toilet` | - | Public toilets |\n| `bench` | - | Public benches |\n| `waste_basket` | - | Waste baskets |\n| `street_lamp` | - | Street lamps |\n| `traffic_signals` | - | Traffic signals |\n| `telephone` | - | Public telephones |\n\n#### Cable Transport\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `aerialway` | - | Cable cars |\n| `gondola` | - | Gondolas |\n| `funicular` | - | Funiculars |\n| `chairlift` | - | Chairlifts |\n\n#### Emergency Infrastructure (Additional)\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `siren` | - | Emergency sirens |\n| `defibrillator` | - | Public defibrillators |\n| `assembly_point` | - | Emergency assembly points |\n| `life_ring` | - | Life rings |\n\n#### Commercial \u0026 Retail\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `supermarket` | - | Supermarkets |\n| `mall` | - | Shopping malls |\n| `marketplace` | - | Marketplaces |\n\n#### Shared Mobility\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `bicycle_rental` | - | Bike sharing stations |\n| `car_sharing` | - | Car sharing locations |\n\n#### Science \u0026 Research (Additional)\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `planetarium` | - | Planetariums |\n| `laboratory` | - | Laboratories |\n\n#### Construction\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `construction_site` | - | Construction sites |\n\n#### Food \u0026 Beverage Production\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `winery` | - | Wineries |\n| `bakery` | - | Bakeries |\n| `dairy` | - | Dairies |\n\n#### Food Services\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `restaurant` | - | Restaurants |\n| `cafe` | - | Cafes |\n| `fast_food` | - | Fast food restaurants |\n\n#### Recreation\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `playground` | - | Playgrounds |\n| `park` | - | Parks |\n| `pitch` | - | Sports pitches |\n\n#### Water Features\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `fountain` | - | Fountains |\n| `waterfall` | - | Waterfalls |\n| `hot_spring` | - | Hot springs |\n\n#### Monitoring \u0026 Weather\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `monitoring_station` | - | Environmental monitoring |\n| `weather_station` | - | Weather stations |\n\n#### Community Facilities\n| Type | Aliases | Description |\n|------|---------|-------------|\n| `community_centre` | - | Community centres |\n| `social_facility` | - | Social facilities |\n| `shelter` | - | Public shelters |\n\n## Development\n\n### Prerequisites\n\n- Node.js 18+\n- npm\n\n### Setup\n\n```bash\nnpm install\nnpm run dev\n```\n\nOpen [http://localhost:3000](http://localhost:3000).\n\n### Project Structure\n\n```\napp/\n├── page.tsx              # Main application page\n├── layout.tsx            # Root layout\n├── globals.css           # Global styles\n└── api/\n    └── search/\n        └── route.ts      # Search API endpoint\n\ncomponents/\n├── SearchBar.tsx         # Query input\n├── Filters.tsx           # Filter sidebar\n├── ResultList.tsx        # Results display\n├── MapView.tsx           # Leaflet map\n├── ShareButton.tsx       # Share functionality\n└── ui/\n    └── scroll-area.tsx   # UI components\n\nlib/\n├── types.ts              # Type definitions\n├── parser.ts             # Query parsing and NLP\n├── geo.ts                # Nominatim integration\n├── overpass.ts           # Overpass API queries\n├── cache.ts              # In-memory caching\n├── search-index.ts       # Search indexing\n```\n\n## Deployment\n\n### Vercel\n\n```bash\nnpm install -g vercel\nvercel\n```\n\n### Environment Variables\n\nNo environment variables required. The application uses public OpenStreetMap APIs.\n\n### API Rate Limits\n\n- Nominatim: 1 request/second (enforced by Nominatim usage policy)\n- Overpass API: Fair use, avoid heavy queries\n\n## Responsible Use\n\nThis tool accesses publicly available OpenStreetMap data. Users must:\n\n1. Respect [OpenStreetMap's tile usage policy](https://operations.osmfoundation.org/policies/tiles/)\n2. Respect [Nominatim usage policy](https://operations.osmfoundation.org/policies/nominatim/)\n3. Respect [Overpass API usage policy](https://wiki.openstreetmap.org/wiki/Overpass_API#Public_Overpass_API_instances)\n4. Not use this tool for illegal surveillance or harmful purposes\n5. Acknowledge that OSM data may be incomplete or inaccurate\n6. Not perform bulk automated queries that overload public infrastructure\n7. For issues regarding the map, please refer to [https://www.openstreetmap.org/fixthemap](https://www.openstreetmap.org/fixthemap)\n\nThe presence or absence of infrastructure in OSM should not be taken as authoritative. Always verify critical information through official sources.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fni5arga%2Fsightline","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fni5arga%2Fsightline","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fni5arga%2Fsightline/lists"}