spec.md 2.1 KB

ADDED Requirements

Requirement: Render a Beijing bus line network

The system SHALL provide busLineNetworkComponent that loads the local Mars3D Beijing bus GeoJSON dataset copy and renders the routes as a three-dimensional line network.

Scenario: Default render

  • GIVEN the component is rendered with default props
  • WHEN the local GeoJSON request succeeds
  • THEN the scene SHALL display elevated bus route lines using the configured color theme and line width

Scenario: Data load failure

  • GIVEN the configured dataUrl cannot be fetched or parsed
  • WHEN the component handles the error
  • THEN it SHALL clear its own route lines and log a scoped warning without throwing into the host scene

Requirement: Convert GeoJSON coordinates to local Three coordinates

The component SHALL convert longitude/latitude pairs to local Three.js coordinates before rendering.

Scenario: Automatic center

  • GIVEN autoCenter is true
  • WHEN GeoJSON data is loaded
  • THEN the component SHALL center the rendered network from the loaded coordinate bounds

Scenario: Manual center

  • GIVEN autoCenter is false
  • WHEN centerLng or centerLat changes
  • THEN the component SHALL rebuild route geometry around the provided center

Requirement: Config service integration

The component SHALL be registered in src/dcsConfig.ts with defaults and configuration controls.

Scenario: Component appears in service list

  • GIVEN the dynamic component service reads src/dcsConfig.ts
  • WHEN the component list is built
  • THEN busLineNetworkComponent SHALL be available with preview metadata

Scenario: Apply URL from config panel

  • GIVEN a user edits the data source URL text field
  • WHEN the user clicks the confirm action
  • THEN the component SHALL apply the edited URL to dataUrl and reload route data

Scenario: Runtime config updates

  • GIVEN a user changes sampling, scale, height, width, color theme, opacity, or pulse controls
  • WHEN props update
  • THEN the component SHALL rebuild geometry only when needed and update material style in place otherwise