Skip to content

[FEATURE] Interactive Map with Road Segment Selection #9

@HiepvHo

Description

@HiepvHo

Description

The project needs an interactive web map that allows users to visualize road segments in Ho Chi Minh City and click on individual segments to view detailed infrastructure information. This enables the core concept where each road becomes a clickable data node showing associated streetlights, weather, air quality, POIs, and citizen reports.

Problem

UrbanReflex collects comprehensive infrastructure data for each road segment, but there is currently no user interface to explore this data visually. Users cannot see the road network, access detailed information by clicking on roads, or understand spatial relationships between entities. Without an interactive map, the valuable data remains inaccessible to non-technical users.

Solution / Proposed Changes

1. Map Component

Create an interactive map using Leaflet or Mapbox that:

  • Displays Ho Chi Minh City with proper bounds
  • Renders road segments as clickable polylines
  • Supports zoom, pan, and is responsive

2. Road Segment Selection

Implement click interaction that:

  • Detects clicks on road segment polylines
  • Fetches related data from Orion-LD (streetlights, weather, AQI, POIs, reports)
  • Displays information in a side panel

3. Data Display Panel

Create a UI component showing:

  • Road segment basic info (name, type, length)
  • Associated streetlights with status
  • Weather and air quality data
  • Nearby POIs with distance
  • Citizen reports (if any)

4. API Integration

Implement frontend functions that:

  • Query Orion-LD NGSI-LD API with proper context headers
  • Handle pagination and geospatial queries
  • Cache frequently accessed data
  • Handle errors gracefully

Performance

For 4,936 road segments:

  • Lazy loading: Render only visible segments
  • Clustering: Group segments at low zoom
  • Caching: Cache road segment data
  • Debouncing: Reduce API calls on map move/zoom

Metadata

Metadata

Labels

Projects

Status

In progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions