Skip to content

Comments

Implement tile aggregation system for efficient map display#1211

Draft
CollinBeczak wants to merge 6 commits intoadd-new-endpointsfrom
add-tile-layers
Draft

Implement tile aggregation system for efficient map display#1211
CollinBeczak wants to merge 6 commits intoadd-new-endpointsfrom
add-tile-layers

Conversation

@CollinBeczak
Copy link
Contributor

  • Introduced a new TileAggregate model to represent pre-computed tile data, including task counts and centroid coordinates.
  • Added TileAggregateRepository for database interactions, enabling retrieval and management of tile aggregates.
  • Developed TileAggregateService to handle tile data processing, including filtering by difficulty and global status.
  • Enhanced TaskController with a new endpoint to fetch task tiles, returning either clusters or individual task markers based on task count.
  • Implemented a scheduled job for refreshing tile aggregates, ensuring up-to-date data for map displays.
  • Updated configuration to include tile refresh interval and batch size settings.
  • Created SQL migrations for the new tile aggregation tables and functions, supporting efficient data management.

- Introduced a new `TileAggregate` model to represent pre-computed tile data, including task counts and centroid coordinates.
- Added `TileAggregateRepository` for database interactions, enabling retrieval and management of tile aggregates.
- Developed `TileAggregateService` to handle tile data processing, including filtering by difficulty and global status.
- Enhanced `TaskController` with a new endpoint to fetch task tiles, returning either clusters or individual task markers based on task count.
- Implemented a scheduled job for refreshing tile aggregates, ensuring up-to-date data for map displays.
- Updated configuration to include tile refresh interval and batch size settings.
- Created SQL migrations for the new tile aggregation tables and functions, supporting efficient data management.
- Updated `TileAggregateRepository` to incorporate an effective zoom level for tile calculations, enhancing precision for zoom levels below 14.
- Adjusted SQL functions in migration script to align with the new effective zoom logic, ensuring consistent tile coordinate generation across the application.
- Implemented `getTaskTile` method in `TaskController` to fetch task data for specific tile coordinates (z/x/y) for zoom levels 14 and above.
- Enhanced `TileAggregateRepository` with `getTaskGroupsByTile` method to retrieve pre-computed task groups for specified tile coordinates.
- Updated `TileAggregateService` to include `getTileDataByCoords` method for processing tile data with optional difficulty and global filters.
- Added corresponding API route for the new endpoint in `task.api` for improved frontend caching capabilities.
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
4.3% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant