Start here
When you ask someone to draw a map of a place they know, what they produce is not a bad map — it is evidence. A sketch map externalizes a cognitive map: what the person encoded, what they kept, and how they organized it. The problem has always been turning that evidence into numbers you can analyse.
Traditionally this meant hand-coding: two raters, a scoring sheet, an inter-rater reliability check, and weeks of work per study. The Sketch Map Analyser replaces that with a set of automatic, reproducible measurements. You give it a reference map of the real environment and a participant's sketch map, tell it which drawn features correspond to which real ones, and it returns a row of numbers per participant.
The three questions
Everything the tool measures is an answer to one of three questions about a participant's drawing.
What did they remember?
Of everything that exists in the real environment, how much appears in the drawing at all? This is a recall measure — it says nothing about whether things were placed correctly.
CompletenessHow much did they simplify?
People collapse a row of shops into one block, or straighten a curved street. The tool identifies these simplifications so they are not mistaken for memory errors.
GeneralizationDid they get the layout right?
Given what they drew, is it arranged correctly? Measured two ways: whether relationships hold (is the park still north of the station?) and whether distances and angles are accurate.
Accuracy measuresKeeping these separate is the central design decision. A participant who draws only three landmarks but places them perfectly is not the same as one who draws twenty landmarks in a jumble — yet a single "accuracy" score would rate them similarly. Here, the first has low completeness and high configural accuracy; the second the reverse. Both patterns are theoretically meaningful, and you can analyse them independently.
Key concepts and vocabulary
A few terms recur throughout the software and this page. They come from geoinformatics rather than psychology, so they are worth defining once.
The ground truth — an accurate map of the real environment your participants are drawing from memory. Usually derived from OpenStreetMap.
The participant's drawing, traced into the software so that each drawn object becomes a separate, countable feature.
A single object on either map: one building, one street segment, one park. The unit everything is counted in.
A point or area feature — a building, monument, square. Distinguished from streets, which are line features and are counted separately.
Your judgement about which sketch feature corresponds to which real feature. You make these matches by hand; every measurement depends on them.
A simplification the participant made — merging several buildings into one, collapsing a roundabout to a crossing, drawing an area as a line.
The reference map rebuilt at the participant's level of detail. This — not the original — is what accuracy measures compare against.
A point where two or more streets meet. Junctions can be analysed instead of buildings, which is useful for route-based or street-dominated sketches.
Why the "generalized" base map matters
This is the single most important idea in the tool, and the one most easily missed.
But that is not a memory failure — it is categorical abstraction, and arguably a sign of well-organized spatial knowledge. So before any accuracy measure runs, the software merges those three shops on the reference map into one, matching what the participant did. The comparison is then like-for-like.
The consequence for interpretation: accuracy scores tell you how well someone laid out the world as they conceived it, not how well they reproduced a cartographer's map. If you want the latter, completeness is where the omissions show up.
Designing a study
What you need before you start
| You need | Notes |
|---|---|
| A defined study area | Bounded and consistent across participants. Everyone should be drawing the same environment. |
| A reference map of that area | Loaded into the software from OpenStreetMap data. |
| Participants' sketch maps | Drawn on paper and traced in, or drawn directly in the editor. |
| Time for alignment | The manual step. Budget realistically — see below. |
Practical guidance
Standardize the drawing task. Sketch maps are highly sensitive to instructions. "Draw the campus" and "draw your route from the station to the library" elicit different representations (survey versus route knowledge). Whatever you choose, keep it identical across participants and report it.
Keep paper size and orientation constant. The tool normalizes for overall scale and rotation, but a participant who runs out of paper compresses one side of their map — which becomes a real distortion in the data rather than an artefact you can remove.
Expect alignment to dominate your time. Analysis itself takes seconds; deciding that "this blob is the library" takes judgement. For ambiguous drawings, consider having two researchers align independently and reporting agreement — the automated measures are perfectly reliable, but the alignment they rest on is a human coding decision like any other.
Decide in advance whether you are analysing buildings or junctions. Landmark-based measures need enough matched buildings to be stable; junction-based measures suit street-heavy or route sketches. You can run both, but choose your primary measure before looking at the data.
Running an analysis
- Load your project — the reference map and one or more sketch maps.
- Tidy the geometry (optional). Hand-drawn streets often don't quite meet, or one street gets drawn as several strokes. The software can propose fixes — joining near-miss endpoints, merging broken segments — and you approve each one. Nothing is changed without your say-so. Worth doing if you plan to use junction-based measures, since those depend on streets actually connecting.
- Align the features — click a sketch feature, then the real feature it corresponds to.
- Press Analyse. Choose which measures to run:
- Completeness — always included
- Accuracy — the relational measures
- Buildings GMDA — configural accuracy from landmarks
- Junctions GMDA — configural accuracy from street junctions
- Read the results table — one row per sketch map, grouped by measure family.
- Download Results — a zip of spreadsheets ready for your statistics software.
Reading your results
Each measure below lists its range, which direction is "better," what it is actually sensitive to, and what to watch out for. Use the tabs to move between measure families.
How much of the environment made it into the drawing. A pure recall measure.
Landmark completeness
0–100% · higher = more recalledThe percentage of reference landmarks that appear in the sketch.
Street completeness
0–100% · higher = more recalledThe same calculation for street segments rather than landmarks.
Overall completeness
0–100% · higher = more recalledThe mean of the two measures above.
Whether the relationships between features are preserved, independent of metric precision. A sketch can be geometrically hopeless yet relationally perfect: the church still inside the square, the shop still on the left of the road, the streets still crossing in the same order.
The software extracts every such relationship from both maps and compares them one by one, across six families: containment and overlap, street–area topology, left/right of a road, relative direction between streets, street connectivity, and order along a route. Each family gets its own score; two summary measures aggregate across all of them.
Precision
0–1 · higher = betterOf all the relationships the participant expressed in their drawing, the proportion that match reality.
Recall
0–1 · higher = betterOf all the relationships present in the real environment, the proportion the participant captured correctly.
Per-family correctness
0–100% · higher = betterThe same match rate calculated separately for each relationship family.
The metric measures, from the Gardony Map Drawing Analyzer — an established, published method for quantifying sketch map accuracy. It works by taking every pair of features and asking how the drawn relationship between them differs from the true one, then aggregating those pairwise errors.
CanOrg — canonical organization
0–1 · higher = betterWhether features are in the correct broad direction from each other (north/south, east/west), calculated across all pairs in the real environment.
CanAcc — canonical accuracy
0–1 · higher = betterThe same directional check, but calculated only over the features the participant actually drew.
DistAcc — distance accuracy
≤1 · higher = betterHow well relative distances between features are preserved, after equalizing for the overall size difference between drawing and reality.
ScaBias — scaling bias
signed · 0 = unbiasedThe same distance comparison, but keeping the sign.
AngAcc — angular accuracy
0–1 · higher = betterHow well the angles between pairs of features are preserved.
RotBias — rotational bias
−180° to +180° · 0 = alignedWhether the whole drawing is systematically rotated relative to reality. Positive is clockwise, negative counterclockwise.
Bi-dimensional regression is a long-established method for comparing two spatial configurations. Conceptually it is ordinary regression generalized to two dimensions: it finds the single best transformation — one uniform stretch, one rotation, one shift — that maps the real configuration onto the drawn one, then asks how much of the drawing that transformation explains.
r — bidimensional correlation
0–1 · higher = betterHow well the configurations correspond once the best transformation is applied.
DI — distortion index
0 upwards · lower = betterThe residual distortion, computed directly from r.
phi — scale factor
around 1 = same scaleHow much larger or smaller the drawing is than reality, overall.
theta — rotation
degreesThe overall rotation of the drawing relative to the reference.
alpha1, alpha2 — translation
horizontal and vertical shiftHow far the fitted configuration is displaced.
A worked example
Suppose one participant's row comes back like this:
| Measure | Value |
|---|---|
| Landmark completeness | 35.7% |
| Street completeness | 40.9% |
| CanOrg | 0.10 |
| CanAcc | 0.89 |
| DistAcc | 0.94 |
| ScaBias | −0.0001 |
| AngAcc | 0.79 |
| RotBias | −30.2° |
How to read it.
They drew roughly a third of the environment. That is unremarkable — most people do.
The gap between CanOrg (0.10) and CanAcc (0.89) is the story. CanOrg is low almost entirely because two-thirds of the environment is missing from the denominator, not because the layout is poor. CanAcc, restricted to what they actually drew, is high: what they remembered, they organized correctly. This is a selective but well-structured representation, and it would be a serious misreading to describe this participant as spatially inaccurate on the strength of CanOrg alone.
Distances are well preserved (0.94), and scaling bias is essentially zero — no systematic expansion or compression.
The interesting result is RotBias at −30°. Angular accuracy is noticeably lower than distance accuracy (0.79 against 0.94), and this rotation is why: the whole configuration is turned roughly 30° counterclockwise. That is not random error. It suggests the participant encoded the environment relative to some frame other than north — a main street's orientation, or the direction they habitually approach from. Worth checking whether it replicates across participants; a consistent rotation across a sample is a finding, not noise.
Getting your data into statistics software
Download Results gives you a zip of CSV files. CSV opens directly in Excel, SPSS, R, JASP and jamovi.
| File | What it contains | Use it for |
|---|---|---|
ResultSummary.csv | One row per sketch map, every measure as a column | Your main analysis file |
CompletenessDetailedOutput.csv | The underlying feature counts | Checking what drove a completeness score |
GMDADetailedOutput.csv | Configural measures plus how many features were matched | Screening for sparse, unstable cases |
BDRDetailedOutput.csv | Regression parameters per map | Distortion analyses |
QADetailedOutput.csv | Relationship counts per family | Family-specific hypotheses |
GeneralizationDetailedOutput.csv | Which features each participant merged or simplified | Studying abstraction itself |
QualitativeRelations/ | The full relationship list for each map | Custom or exploratory relational coding |
ResultSummary.csv is already in the shape most analyses want: participants in rows, measures in
columns. Add your condition and demographic variables as extra columns and you are ready to analyse.
Limitations and things to be careful about
The measures are computed reliably; that does not make every interpretation of them safe.
Everything downstream rests on your decisions about which drawn feature is which. Reliable in clear cases, genuinely ambiguous in others. Treat it as coding, with the same safeguards.
Configural measures use feature pairs. Few matched features means few pairs, and single errors dominate. Consider a minimum-features criterion, set in advance.
The tool measures the drawing, not the mental representation directly. Motor skill, confidence and willingness to commit to detail all contribute.
There is no established norm for a "good" CanOrg. These measures are for comparing conditions, groups or time points — not for classifying an individual.
Ordinary means and standard deviations mislead on RotBias and theta. Signed biases can cancel across participants, hiding real distortion.
Overall completeness averages landmarks and streets equally regardless of how many of each exist. Check components before interpreting composites.
Applying participants' simplifications to the reference map is defensible and deliberate — but it does mean your accuracy scores are not directly comparable to methods that skip this step.
A dense city centre and a sparse suburb yield different baseline values for the same participant ability. Do not pool across environments without care.
Research background
The tool was developed at the Spatial Intelligence Lab, Institute for Geoinformatics, University of Münster, building on a line of work concerned with making sketch map analysis systematic rather than manual.
Qualitative foundations
Establishing that sketch and metric maps can be aligned through qualitative spatial relations rather than coordinates — the basis of the relational measures (Schwering et al., 2014).
Classifying sketch maps
A feature-based scheme for distinguishing types of sketch map, informing how drawings are characterized before analysis (Krukar et al., 2018).
Understanding generalization
A systematic classification of how people simplify space when drawing (Manivannan et al., 2022), followed by a method for detecting those simplifications automatically (Manivannan et al., 2024).
Quantitative accuracy measures
Integration of the Gardony Map Drawing Analyzer and bi-dimensional regression, giving metric configural accuracy alongside the relational measures.
Key references
- Gardony, A. L., Taylor, H. A., & Brunyé, T. T. (2016). Gardony Map Drawing Analyzer: Software for quantitative analysis of sketch maps. Behavior Research Methods, 48, 151–177. doi:10.3758/s13428-014-0556-x
- Manivannan, C., Krukar, J., & Schwering, A. (2024). An algorithmic approach to detect generalization in sketch maps from sketch map alignment. PLOS ONE. doi:10.1371/journal.pone.0304696
- Manivannan, C., Krukar, J., & Schwering, A. (2022). Spatial generalization in sketch maps: A systematic classification. Journal of Environmental Psychology. doi:10.1016/j.jenvp.2022.101851
- Krukar, J., Münzer, S., Lörch, L., Anacta, V. J., Fuest, S., & Schwering, A. (2018). Distinguishing Sketch Map Types: A Flexible Feature-Based Classification. Springer. doi:10.1007/978-3-319-96385-3_19
- Schwering, A., Wang, J., Chipofya, M., Jan, S., Li, R., & Broelemann, K. (2014). SketchMapia: Qualitative Representations for the Alignment of Sketch and Metric Maps. Spatial Cognition & Computation. Link
- Bi-dimensional regression as introduced for cognitive-map comparison by Tobler, and formalized by Friedman & Kohler (2003).
Technical reference
You do not need any of this to use the tool. It is here for research software engineers, for anyone installing it locally, and for readers who want to verify exactly how a measure is computed.
How the software is put together
⌄Each analysis method runs as an independent service with its own address, coordinated by the main web application. This means a method can be updated or added without disturbing the others.
| Component | Address | Role |
|---|---|---|
| sketchmap_analyser | :8000 | Editor, alignment, results table, export |
| generalizations | :8001 | Builds the generalized reference map |
| completeness | :8002 | Recall measures |
| qualitativerelations | :8003 | Relational measures |
| validation | :8004 | Geometry cleanup (researcher-approved) |
| gmda | :8005 | Configural accuracy |
| bdr | :8006 | Bi-dimensional regression |
Installing and running it yourself
⌄git clone https://github.com/ifgi-sil/SketchMapia-Microservices.git
cd SketchMapia-Microservices
docker-compose up --build
Then open http://localhost:8000/generalizingmaps/.
Production deployment uses prebuilt container images published automatically on each release, updated on the server by Watchtower and served behind an Apache reverse proxy that handles HTTPS.
Programmatic access (API)
⌄Each service accepts map data as GeoJSON via HTTP POST and returns measures as JSON. Useful for batch processing outside the interface.
| Endpoint | Returns |
|---|---|
/generalizations/requestFME/ | The generalized reference map |
/completeness/analyzeCompleteness/ | Completeness measures |
/accuracy/analyzeQualitative/ | Relational measures and full relation lists |
/validation/validate/ | Proposed or applied geometry corrections |
/gmda/calculateGMDA/ | Configural measures (landmarks) |
/gmda/calculateJunctionGMDA/ | Configural measures (junctions) |
/bdr/calculateLandmarksBDR/ | Regression parameters (landmarks) |
/bdr/calculateJunctionsBDR/ | Regression parameters (junctions) |
{
"CanOrg": 0.0962,
"CanAcc": 0.8917,
"ScaBias": -0.0001,
"DistAcc": 0.9358,
"RotBias": -30.2334,
"AngAcc": 0.7942,
"nTL": 14,
"nDL": 5
}
Exactly how each measure is computed
⌄Full formulas, derivations and implementation notes live with the source code:
| Measure family | Documentation |
|---|---|
| Completeness | completeness |
| Relational accuracy | accuracy |
| Generalization | generalizations |
| Configural accuracy | gmda |
| Bi-dimensional regression | bdr |
| Geometry cleanup | validation |
| Interface and export | sketchmap_analyser |
Source code: github.com/ifgi-sil/SketchMapia-Microservices