Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • CityDoctor2 CityDoctor2
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 18
    • Issues 18
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
    • Requirements
  • Merge requests 2
    • Merge requests 2
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Infrastructure Registry
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • CityDoctor
  • CityDoctor2CityDoctor2
  • Merge requests
  • !36

!Geodatabase implementation

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged Luna Riegel requested to merge dev_embedded_geodb into dev Dec 04, 2025
  • Overview 0
  • Commits 113
  • Pipelines 1
  • Changes 130

What does this MR do?

This MR implements an embedded geodatabase into CityDoctor2 and reworks the internal data model of CityDoctorModel by connecting it with the database. CityObjects and their geometric data are no longer permanently kept in memory, with a size-limited cache loading Objects from the database on request, evicting entries back to the database once the size limit is reached. This significantly reduces the RAM footprint of larger CityDoctorModels, allowing for bigger CityGml files to be used with CityDoctorGUI.

Additionally, the geodatabase serves as foundation for implementation of the planned topological cheks, and is a requirement for their compatibility with the streaming-mode of the CityDoctor2 CLI.

Furhtermore, this MR implements multithreading in Checker, massively reducing the time needed for a validation run.

Semi-breaking change: This MR introduces breaking changes to the CityDoctorModel and CityObject classes. Usage of the CityDoctorValidation API and CLI remain backwards compatible.

Breaking changes

  • CityDoctorModel: The getter functions for accessing Features, e.g. getBuildings(), now return a Stream instead of a List
  • CityObject: CityObjects may be evicted from the cache at any time, which will sever the connection of a CityObject reference to the cache and may lead to phantom reads and dropped updates if this is not taken into account.

Related issues

#110 (closed) #113 (closed)

Checklist

  • Commits squashed, following the message-template and containing changelog-trailers
  • MR title and description are up to date, accurate, and descriptive.
  • MR targeting the appropriate branch.
  • Latest Merge Result pipeline is green.
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: dev_embedded_geodb

Dies ist die Gitlab-Instanz des Transferportals der Hochschule für Technik Stuttgart. Hier geht es zurück zum Portal