One of the core elements of any map is a map scale. Map scale is the ratio of a distance on the map to the corresponding distance on the ground. In terms of fantasy maps scale shows how big the world is and allows to calculate a distance between two points. A plausible world cannot be built without a scale nominated. Different maps have different scale, so it will be useful to a have a Scale Editor to let users to configure units and scalable parameters.
The first thing we need is to select a unit for a distance measurement and decide how many units are there in one map pixel. I used to kilometers, but we can choose miles, leagues, stadions and so on. A unit can be fictional or real, it doesn’t really matter. As most generator users are from the United States, I would set a mile as a default distance unit. It is also good that mile is an ancient unit and hence it has some fantasy vibes I like.
Usually I want maps to represent a continent, not just an island. By default map is getting fitted to a user’s screen, so actual map size will vary depending on a screen size. For example on iPhone 8 the screen width is 1334 pixels, while on 4K monitor it’s about 4K pixels. Considering that on a random map only ~30-40% of a surface is land, we can set a default map scale to 3 miles (~5 kilometers) in one pixel. In this case on a default scale there will be a in horizontal (latitudinal) difference between ~4k miles on iPhone 8 vs ~12k miles on 4k monitor. For the most common 1366 x 768 resolution an actual land size will be about 1400 x 800 miles (2200 x 1300 km). Quite a small continent, something like a western part of Europe, but I find it acceptable.
Using the nominated scale we can measure a map distances and areas. To give users control over it I have added a Scale Editor and 3 built-in measurers: linear (ruler), curve (opisometer) and areal (planimeter). You may add any number of the measures to the map, drag them and so on. Distance is also getting auto-calculated on any road selection.
Too measure areas we need to define an areal unit. By default it’s a square, e.g. square mile or square kilometer. Sounds too modern for a fantasy map, but it’s the only obvious area unit we have. It works good for both small and big areas and has it’s own small and universally recognizable symbol, a superscript two (²).
A map scale is a system parameter. To make it visible we need to draw a scale bar. The only problem with it is that we always have to fit the bar to represent a round number and that we need to redraw the bar each time map is zoomed.
As you can see from the image above the Scale Editor also allows to edit a population rate. Using the population rate we can configure how many people represent one population point. Points are calculated based on various geographical and economical factors. The calculation system is not yet finished, I would like to extend it with biomes and trade, but at least it shows some valid population data.
Urbanization rate is used as a simple multiplier for a urban (burg) population. As random maps represent a pseudomedieval world, I would like to keep urbanization on pretty low values, just about 5% of total population. The same principle applies to a total population, it should not exceed 20 people per square mile. Of course both parameters will stay configurable.
That’s all. I was going to add a Country Editor description to this post, but let’s keep it short and devoted to scales only.