Kicking off the Holy Roman Empire OHM project (Are you nuts?!? Yes, please join in!)

To me, attempts to map the Holy Roman Empire represent the ultimate mapping jigsaw puzzle, which makes it an irresistible challenge to tackle on OHM.

Maps that do exist - svg, png, and others - are based on inscrutable, unsourced data. Ours will be different… and downloadable. : )

[^map]

There are innumerable challenges to this project:

  • It’s big - easily over 2,000 relations
  • Sources can be hard to find
  • Learning to let go of any alignment between place types and admin_level: welcome to fuedalism!

The Holy Roman Empire project page is a call for volunteers, and a lightweight organization of how to go about this task.

Please take a look and let me know if you or someone you know or lots of people you know might want to join this effort!

[^map]Map: Mitteleuropa zur Zeit der Staufer; Wikimedia Commons, OHM User:Alphathon.

Cool project, I started adding some borders from the early HRE period (when it wasn’t yet a mess of decentralized states :joy:)

Awesome!

Two question, though - is that your map or the source for your mapping in OHM. In either case, what are the sources for those boundaries?

There’s quite a few plagiarized and unsourced maps floating around the interwebz. If we can add source links to more trustworthy old maps or older sources of information, that would go a long way to making us even more differentiated from other sources of old vector maps on the web.

Yes, I made it with QGIS

You are right! I added the sources of the boundaries in the relation, I hope it’s ok now

Whoa! Nice work!! :open_mouth:

Fantastic! Much appreciated. :saluting_face:

@Frying_Pan - I’m just realizing what you did! You knocked out the entire first source map from the project page… very nice work!

On OHM:

And… on the project page, a coveted status update:

Again, nice work! :sunglasses:

2 Likes

I love the idea, but I’m busy trying to piece Central America together. Mostly Belize. I’ll be following your progress though.

1 Like

Hi, checking back in again, is there any active community involved with this project?

1 Like

I am adding some states in northern Italy that were part of the HRE.
These regions were under the nominal control of the Emperor until the Napoleonic wars but they are generally represented on maps as independent from the 17th century onwards.

2 Likes

@Charlie_Plett @Frying_Pan - I think there has been a fair bit of progress on this project, but it might not be showing up on the HRE project page on the wiki. For example, we show 388 relations tagged with empire=hre, out of ~1,750, so that’s not a small dent, but we should probably get the spreadsheet updated.

I also had a DM with @Alphathon today about a changeset that shall go unmentioned and the appropriate admin_level for sovereign states even if they are Duchies, Grand Duchies, or Counties. Alpha’s point, which I feel is correct, is that sovereign states should be admin_level=2. My point is that our style sheets should gracefully handle small sovereign states so that we don’t end up with messy maps like this:


View Larger Map

One other thought about messy maps: these states didn’t really have crisp borders, so it’s a bit misleading to show them that way. Anyone given any thought to how to depict a sphere of influence? (or reducing influence around the edges of the kingdoms/duchies/etc.?)

Could we use border_type=* to make these stylistic decisions? admin_level=* is just a number, so it doesn’t do a good job of encoding the variety of competing ways of classifying polities.

We’ve also got a change in the works to prioritize labels of larger territories over labels of smaller territories:

I think my first port of call would be to shrink the labels. If you compare OHM’s labels for both countries and states with OSM’s the ones on OHM are both larger and darker; OSM also doesn’t render the states in all-caps.


View Larger Map

The size of the labels at the moment is really just a bit too big for even medium-small countries like the Netherlands; really small countries like Liechtenstein or even worse the 19th-century Thuringian states just get lost under the text. It would be a shame to totally change it though as I do like the label style when applied to larger entities (e.g. France or the Austrian Empire).

It might also be a bit better if the borders themselves were a bit less “sharp”/“dense” – they go very quickly from dark to light and almost look like anti-aliasing is too low. I suspect this is a result of multiple pieces of the same geometry overlaid on top of each other – I don’t really know how the renderer handles it, but it does seem to make darker borders when two or more entities share the same boundary (or at least it used to). I think OSM gets around this by drawing the way itself and defining the boundary type on the way, but that’s probably not feasible for OHM (maybe with multiline relations), so some system which only draws one iteration of a boundary way would probably be useful (e.g. draws it only at the highest admin_level).

It might also be worth looking at whatever system is used to simplify the geometry at different zoom levels. Given the complexity of some of these boundaries (example embedded below), if the “simplifier” (or whatever you’d call it) can’t simplify that down adequately it’s no wonder the borders look messy. Other than that the only thing I can think of is somehow manually defining zoomed-out geometry or tagging using a role to tell the renderer to only use it when zoomed in (e.g. outer_complex).


View Larger Map

The way OHM handles land use may also be contributing to the apparent “messyness”. Currently there isn’t much in the way of land use mapped, but in Germany and Austria there are large areas of woodland/forest mapped. When zoomed out, this is rendered as grey or grey-green, on top of the grey topographic shading and with dark grey borders and text on top – visually not very appealing and quite “noisy”. OSM, in contrast, uses a muted purple for its boundaries and text and woodland remains green throughout. I wouldn’t say it’s pretty exactly but it is certainly visually clear and fairly functional in a way OHM is not.


Styling aside, we could maybe only render labels for large entities (relative to the zoom), possibly using the same (or similar) system that determines where to place labels automatically, or with a specific tag (not ideal but not really worse than using a label node).

There could also maybe be abbreviated forms for some names that display if the “full” label is too much bigger than the geometry (where appropriate). For example, at a far out zoom (e.g. 2) the UK could display, well, UK, at maybe 35 United Kingdom, and any closer United Kingdom of Great Britain and Northern Ireland. If I were making a static map I’d probably be tempted to use multiple text sizes for the latter, e.g. United Kingdom of Great Britain and Northern Ireland, but I don’t know how that could be tagged and would very much be “tagging for the renderer”.

While on the subject, having more than three types of label (~country, state, county) would be very useful. The needs a country like the US are vastly different than one like San Marino, so a one-size-fits-all “country” label doesn’t really make sense. At the same time it often seems to be the case that multiple levels of subdivision use the same label type so reading the map becomes quite difficult.

Another possibility for some cases might be to somehow group adjacent small states together (e.g. the Thuringian states, the Duchies of Anhalt) such that they either show up as a collective unit when zoomed out or have finer borders. Obviously this would not impact their larger neighbours. You’d have to be careful to make it clear that they weren’t actually in some kind of confederation or something though. This would also only work for cases where there is some logical/reasonable grouping.

Rather than Germany, I think a useful place to consider is Lunigiana in Italy. Until the 1840s was a mess of territories held by Modena & Reggio, Massa & Carrara (until its 1836 union with Modena & Reggio), Tuscany and Lucca, on the borders with Parma & Piacenza and Sardinia/Piedmont (and not far from the Papal States). These territories are small and many are (geometrically) quite complex so without colours and/or labels they become an unintelligible mess. Crucially though they are all (apart from Massa & Carrara) attached to moderately larger states, and whatever is done has to work on these exclaves as well as it does microstates.


View Larger Map

Coloured map:

That really depends how far back you go and what specifically you’re talking about. Borders in the 18th century were absolutely “crisp” (mostly); medieval ones not so much. Influence on the other hand is variable even today – many states “claim” territories they don’t control. One thing that does hobble us somewhat is the use of simple multipolygons since it means we cannot define specific types of border segment (this is also an issue for things like disputed territories). How one’d go about mapping e.g. the HRE’s mostly nominal claim to Italy I don’t know. Fundamentally these things are just too complex to be captured by outlined multipolygons.

It’s also worth noting that the time period you’ve linked there (1837) is not during the HRE, and the borders then were pretty much as well delineated as they are now (at least in Europe).

Here’s an embedded view of 1775:


View Larger Map

Since this is an embedded version it does not include “state” labels at that zoom (for whatever reason) but it too is quite messy on the site (zoom in a little and they start to show up). Without the labels though it just looks quite dense with divisions (which it is).

Another thing it does raise though is the question of how fiefs and imperial territory held by sovereign states should be handled. So far I (and others) have simply used overlapping relations at admin_level=2 (one for the HRE/overlord, one for the other state) but strictly speaking this isn’t accurate, as it implies that the fief-holder is sovereign; on the other hand, to not include the territory would probably be worse. In the embedded map the most obvious example is the Kingdom of Prussia, which holds many territories including Brandenburg, Pomerania, Magdeburg, East Frisia, Mark, Cleves etc, but Sweden also has some fiefs (western Pomerania, Wismar) and Savoy (held by Sardinia) is also imperial; the Habsburg monarchy is not yet mapped and the UK’s relationship with Hanover and Denmark’s with Holstein aren’t represented either. Several non-sovereign states hold territory in both the HRE and France (mostly in Alsace, e.g. Hesse-Darmstadt)

The thing is, the map probably should be messy to a degree as, to be frank, the whole area was a mess. We’re at a real disadvantage here compared to makers of static maps though as we can’t really use colour and any geometric simplification has to be done automatically.

Take this map of the German Confederation for example:

It obviously simplifies much of the geometry, does not include any topology or subdivisions, uses a different colour for each state and uses highly abbreviated labels for many of the smaller states (esp. in Thuringia). The text is also quite small and the borders quite fine (which it can get away with without subdivisions and by using colour). Even then it is quite busy in places.


P.S. Something else I’ve noticed: several of the labels in those embedded maps are different than when viewed on the website. They seem to be using English translations (presumably taken from name:en) rather than the standard native text in name, which for several of those states is abbreviated, e.g. “Principality of Waldeck” shows as “Fsm. Waldeck” (for “Fürstentum Waldeck”) on the website but not when embedded. If that is different I do wonder if anything else differs between the site and the embedded version.

We have the technical capability to vary the font size, font weight, or letter spacing by the country’s size. From what I’ve seen, print atlases often vary the text style like this, if a little less than they do it to city labels. But this would still depend on deleting the label nodes, since those nodes don’t have any information on them about how much area the country covers.

We were rendering redundant boundary lines until last week. Now we should be deduplicating coincident lines. Please double-check that this is working correctly. We might not be deduplicating boundary lines that are in different administrative levels, so this might affect regions that are comprehensively mapped at multiple levels.

Another change is that we now render boundary ways as lines, whereas before we’d only render boundary relations. This could be convenient for treaty lines between otherwise undefined territories. But it might also result in darkened lines if a boundary way is redundantly tagged with boundary=administrative.

So far, we’ve focused on simplifying the geometries only to an imperceptible extent. Vector maps do tend to simplify more aggressively for performance reasons, though the effect usually leaves borders looking jagged. The changes last week included switching to a different simplification algorithm that preserves more topology, so we might be able to simplify more aggressively. I’d recommend opening an issue with any examples you feel best illustrate the need for further simplification, so we don’t end up simplifying counterproductively.

This could be the distinction between name=*, short_name=*, and official_name=*. It would be straightforward to expose these keys in the tiles for styling purposes, at least for a very limited selection of languages. Unfortunately, MapLibre lacks a mechanism to try a variety of labels to see which one would fit. The only workaround I can think of requires duplicating layers, which has performance implications, but it might be a good tradeoff if we can get enough boundaries tagged with short names.

We see a much milder version of this problem in modern countries like the U.S. that have a mix of very large and very small clusters of subdivisions. A traditional print map would use indices to a legend, as in your example, or offset labels with leader lines. Unfortunately neither approach has crossed over into interactive digital cartography. It would be really cool if OHM would be the ones to make a substantial contribution towards a solution to this problem.

The embed site automatically switches to name:*=* based on your browser’s preferred language setting, falling back to name=*. We’re working on bringing that functionality to the main site too.

The other difference is that the embed site uses the 1-based zoom levels that are common in vector maps instead of the 0-based zoom levels common in raster maps. For backwards compatibility, the main site is using 0-based zoom levels. We might want to make sure the sharing option adjusts the zoom level accordingly when generating the URL.

Can these be changed within a label (like the United Kingdom of Great Britain and Northern Ireland example), or only on a label-by-label basis?

Letter spacing is an interesting one but I think it only really works where we can be sure all the text is inside the bounds of the object. (I’d say the same goes for rotated or arched text, which I assume are beyond the technical capacities of the software.) I think in practical terms a few “size classes” of country (e.g. very large for Russia, China etc down to micro for Liechtenstein, Andorra etc; not sure about city-states but they could just use city(-like) labels as long as they were clear) would probably be sufficient. For most of the world the current labels are more-or-less fine, its just the smaller states like in Europe that really cause the issues.

Deleting the label nodes has its own problems, not least of which is the practice of including the date range in the name tag for states which have changed over time. Honestly I feel like the relation’s name and “display name” are sort-of two different things with different considerations.

It also wouldn’t work for states/entities which haven’t been mapped yet and are represented only by a label node, or for entities which require/benefit from multiple labels (e.g. for major detached parts).

I don’t think short_name and official_name are really that useful for display purposes on OHM either. For some states it would make sense, but it cannot really be generalised. For one thing the short_name is usually retained for different iterations of a polity, e.g. Kingdom of France, French Republic and French Empire would all be “France”, so using that over “French Empire” (which isn’t that much longer) gains very little while reducing the historical information conveyed. It may also apply to/be used by multiple different polities over time, sometimes simultaneously, e.g. Old Saxony; the Stem Duchy of Saxony; the co-existent Electorate and Albertine Duchy of Saxony; the co-existent Kingdom, Grand Duchy and Prussian Province of Saxony; the Weimar-era Free State of Saxony (which also co-existed with the Prussian Province); the post-WWII State of Saxony; and modern the Free State of Saxony. official_name can also be very long and convoluted in some cases, or can represent a name not generally used outside of official documents then or now. You’d probably not want to, for example, put the official_name of Galicia and Lodomeria – Königreich Galizien und Lodomerien mit dem Großherzogthum Krakau und den Herzogthümern Auschwitz und Zator (‘Kingdom of Galicia and Lodomeria with the Grand Duchy of Kraków and the Duchies of Auschwitz and Zator’) – on a map (outside of a cartouche or in a stylised way like the UK example anyway). If either of these were used in labelling it would just lead to people avoiding adding that information so as to not have it show up on the map. (There are also other tags that may be used like full_name with similar issues.)

(See also: Country Naming Conventions)

Personally I’m not a fan of using names based on the browser language for several reasons, and feel it should at least be optional (and not require login) – something like a “use English names where available” tick-box on the time slider. There’s also the question of historiographical names vs. calques vs. common names etc (e.g. ‘Byzantine Empire’, ‘Eastern Roman Empire’, or even ‘Roman Empire’).

I can say that it is at least working for some simple cases. For example these districts I added recently in Tyrol


View Larger Map

I’m not certain about other cases. For example these Kreis and Bezirk boundaries in Galicia (for reference these are admin_level=5 and 6 respectively; I am naming them both in German as both translate to “district”). There is a visible difference between the Kreis and Bezirk boundaries when viewed together, but if you skip back 10 years (to before the Bezirke were introduced) the Kreis boundaries lighten, suggesting that it is doubling up the boundary. In this case this is a good thing as without the extra boundary the Kreise would not be visible at all (as it is there is barely a distinction, if there even is one), and they are really the primary administrative unit during this period (the Bezirke simply distribute the centralised Kreis administration). Maybe the Bezirke should be a lower admin_level, but I seem to remember there being too many other divisions for that to be practical (Austria-Hungary’s many successor states make this all quite complicated).


View Larger Map

If you’re looking for a test case by the way I’d steer clear of Czechia. It has been comprehensively mapped down to the cadastral (municipality) level (at least in Bohemia) but seems to have been done by import and each entity seems to have its own boundary ways, so it is very common for there to be several “copies” of each way, each with their own duplicated nodes. I have where practical consolidated some of them (mostly in Austrian Silesia) but there are many hundred of them so even loading them up in JOSM is a bit of a pain, and some kind of automated merging would be ideal.

Yeah, I noticed that (several borders just showed up in the middle of nowhere, mostly rivers which had been imported from OSM I think), so I’ve been steadily de-tagging them. I don’t think it will be having much of an impact in central Germany though.

Indeed it would. I don’t see any reason why (in theory – I don’t know if it would be possible in practice with the software that’s used) a list like that couldn’t be dynamically generated based on the current view and displayed in a box at the side. Maybe they could even be interactive with the label being displayed or the index highlighted on mouse-over. If it were possible though it could also be used to give states a Wikipedia-like infobox, maybe using its tags, Wikidata info etc, and maybe to link to chronology relations. Of course the label would have to know what relation it was attached to and being displayed at the time (since labels are often used by multiple iterations of the same state). If it did though it could maybe even highlight the state in question’s boundaries.

Edit: in fact, if mouse-over were possible that could also be used for alt-language stuff, official names etc too: you hover over “Empire Français” and it adds “(French Empire)” or something as a “subtitle”.

With enough effort, a stylesheet could do some rich text formatting like that, but it’s very involved. We’d need to think through the technical details. It’s a good idea design-wise. I’d suggest opening an issue about it so we can explore it further.

We probably will eventually have to grapple with the difference between a name and label. But in the shorter term, date ranges in name=* have been discouraged for a while and are now redundant to what most of our software can do automatically. We should start removing these date ranges from name=*.

When we implement localization for the main website, there will be an option under My Preferences. The embed site lets you override the language using &language= in the URL. Setting it to mul (the language code for multilingual content) reverts to name=*. We could look into something similar for the main site. Some of this functionality is coming from the openstreetmap-website project, where a similar feature is in the works.

Localized names can improve comprehension, especially when viewing places and time periods that use languages and writing systems very different than your own. Showing localized names will encourage mappers to add them and make it easier to maintain them. On the other hand, unlocalized names are also important for accurately and fairly portraying a place and time period, especially since some cultures have historically given some other cultures derogatory or offensive names.

Eventually, we plan to show both the name=* and localized name:*=* to provide the user with as much information as possible at a glance. One step at a time.

I think most these things are imminently feasible at this point, and the rest will be feasible once we get rid of Leaflet. We just need to hammer out the technical details and design and figure out priorities. (Localized labels are already several months behind schedule for our small development team.) Let’s continue these discussions on GitHub, since they aren’t specific to mapping the Holy Roman Empire. :slightly_smiling_face:

1 Like