ohmg-dev / OldInsuranceMaps

A public space for georeferencing historical fire insurance maps.
https://oldinsurancemaps.net
GNU General Public License v3.0
17 stars 2 forks source link

Add virtual resource sets #186

Closed mradamcox closed 2 months ago

mradamcox commented 2 months ago

This pull request implements a thorough abstraction of a hierarchical concept that had been gestured at before but not fully carried out. Where it was possible in the past to designate layers as "key maps" (and, though with limited utility, "map of congested district" or "graphic map of volumes"), there was no way to apply a Multimask or create a mosaic of any of these categories. Multimasks were only applied at the volume level.

The changes here include a new database model, AnnotationSet, which facilitates the aggregation of layers within a Volume (soon to be renamed Map) into thematic sets. Now, mosaics are created per AnnotationSet, not per Volume. Correspondingly, the MultiMask tool can now be used on any AnnotationSet that is present within a Map, not only the "main content".

A lot of deliberation went into the decision of whether to call this an "AnnotationSet" or "LayerSet". The idea behind AnnotationSet is that non-map content, like multiple pages of text indexes, could also be aggregated into an AnnotationSet of category "text-index", for example. In other words, it can be an aggregation for non-spatial resources as well. On the other hand, only geospatial AnnotationSets are really supported at this point, and will be in the near future.

Also, the term Annotation is meant to hopefully make more sense down the road, where individual layers are stored less as local files and more as Annotation definitions from their parent sheets/resources. This side of things is still in development.

This work dragged on a bit, so there are some other changes I ended up adding to the mix along the way:

Ultimately, this PR will close a handful of tickets around multimask behavior. Closes #169 Closes #176 Closes #137