Sightline
Платформа геопространственной разведки инфраструктуры для поиска и анализа объектов физического мира с использованием данных OpenStreetMap.

Обзор
Sightline позволяет осуществлять поиск, мониторинг и анализ реальной инфраструктуры, включая:
- Вышки связи и центры обработки данных
- Электростанции, подстанции и накопители энергии
- Аэропорты, вертолетные площадки и канатный транспорт (гондолы, фуникулеры)
- Порты, гавани, причалы и морские сооружения
- Склады и промышленные объекты
- Трубопроводы, нефтеперерабатывающие заводы и энергетическая инфраструктура
- Военные объекты
- Больницы, тюрьмы, посольства и правительственные учреждения
- Камеры видеонаблюдения и аварийная инфраструктура
- Транспортные узлы (вокзалы, автовокзалы, стоянки такси)
И многие другие типы активов в более чем 30 категориях с более чем 200 типами искомой инфраструктуры.
Архитектура
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
Источники данных
OpenStreetMap
Все данные об инфраструктуре поступают из OpenStreetMap, совместного картографического проекта. Данные OSM создаются сообществом и могут содержать неточности или пробелы.
Nominatim
Географическое разрешение использует сервис геокодирования Nominatim для преобразования названий мест в ограничивающие прямоугольники и координаты.
Overpass API
Запросы инфраструктуры выполняются через Overpass API, который обеспечивает доступ только для чтения к данным OSM.
Синтаксис запросов
Естественный язык
telecom towers in karnataka
power plants near mumbai
data centers in california
airports in germany
Структурированные запросы
type:telecom operator:airtel region:karnataka
type:data_center operator:google
type:substation region:texas
type:airport country:france
Поддерживаемые параметры
Поддерживаемые типы активов
Энергетика и электроэнергия
Телекоммуникации
Нефть, газ и горнодобывающая промышленность
Водоснабжение и коммунальные услуги
Авиация
Морской транспорт
Железная дорога и общественный транспорт
Сооружения
Промышленные и коммерческие
Военные и оборонные
Правительственные и общественные службы
Образование и наука
Здравоохранение
Культура и развлечения
Туризм и отдых
Религиозные
Исторические
Сельское хозяйство
Услуги
Коммунальные услуги
Канатный транспорт
Аварийная инфраструктура (дополнительно)
Коммерческие и розничные
| Тип | Псевдонимы | Описание |
|---|
supermarket | - | Супермаркеты |
mall |
Совместная мобильность
| Тип | Псевдонимы | Описание |
|---|
bicycle_rental | - | Станции проката велосипедов |
car_sharing | - | Пункты каршеринга |
Наука и исследования (дополнительно)
| Тип | Псевдонимы | Описание |
|---|
planetarium | - | Планетарии |
laboratory | - | Лаборатории |
Строительство
| Тип | Псевдонимы | Описание |
|---|
construction_site | - | Строительные площадки |
Производство продуктов и напитков
| Тип | Псевдонимы | Описание |
|---|
winery | - | Винодельни |
bakery | - |
Общественное питание
| Тип | Псевдонимы | Описание |
|---|
restaurant | - | Рестораны |
cafe |
Отдых
| Тип | Псевдонимы | Описание |
|---|
playground | - | Детские площадки |
park |
Водные объекты
| Тип | Псевдонимы | Описание |
|---|
fountain | - | Фонтаны |
waterfall |
Мониторинг и погода
| Тип | Псевдонимы | Описание |
|---|
monitoring_station | - | Станции экологического мониторинга |
weather_station | - | Метеостанции |
Общественные объекты
| Тип | Псевдонимы | Описание |
|---|
community_centre | - | Общественные центры |
|
Разработка
Предварительные требования
Настройка
Откройте http://localhost:3000.
Структура проекта
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
Развертывание
Vercel
npm install -g vercel
vercel
Переменные окружения
Переменные окружения не требуются. Приложение использует публичные API OpenStreetMap.
Ограничения частоты запросов API
- Nominatim: 1 request/second (enforced by Nominatim usage policy)
- Overpass API: Fair use, avoid heavy queries
Ответственное использование
Этот инструмент обращается к общедоступным данным OpenStreetMap. Пользователи должны:
- Соблюдать политику использования тайлов OpenStreetMap
- Соблюдать политику использования Nominatim
- Соблюдать политику использования Overpass API
- Не использовать этот инструмент для незаконного наблюдения или вредоносных целей
- Признавать, что данные OSM могут быть неполными или неточными
- Не выполнять массовые автоматические запросы, перегружающие публичную инфраструктуру
- По вопросам, касающимся карты, обращайтесь по адресу https://www.openstreetmap.org/fixthemap
Наличие или отсутствие инфраструктуры в OSM не следует считать авторитетным. Всегда проверяйте критически важную информацию через официальные источники.
License
MIT