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