Imagine you were a bureaucrat in the Ottoman government and your posting as assistant governor of the province of Sivas had ended and you were about to take up a position on a commission in the city of Selânik (Thessaloniki).1
How would you have made that journey? How long would it have taken?
As a graduate student, I had come across raw data on travel times in some Ottoman primary sources, and this raw data can be fed into a routing engine to calculate the optimal journey for our imaginary Ottoman. This is how I found the data and built the engine.
The Data#
Sâlnâmes#
The first sources are the provincial sâlnâmes, annals or almanacs published by the governments of each vilâyet (province) from the mid-1860s onwards. The sâlnâmes contain a wealth of information of interest to a researcher, including administrative, demographic and economic data; in addition, many sâlnâmes also include lists or tables giving travel times between important settlements inside the province or between the province and other important Ottoman cities.
Sâlnâme-i Vilâyet-i Van#
As an example, the yearbook for Van from 1315 [1897/1898] has a list of travel times for the provincial capital and district centres.

| Bargiri kazâsı [Bargiri district] | |
|---|---|
| mesâfesi [distance] | sâat [hours] |
| merkez-i vilâyete olan mesâfesi [distance to the provincial centre] | 14 |
| Erciş'e olan mesâfesi [distance to Erciş] | 6 |
| Erciş kazâsı [Erciş district] | |
| merkez-i vilâyete olan mesâfesi [distance to the provincial centre] | 18 |
| Bargiri'ye olan mesâfesi [distance to Bargiri] | 6 |
| Âdilcevâz'a olan mesâfesi [distance to Âdilcevâz] | 12 |
Sâlnâme-i Vilâyet-i Adana#
The Adana yearbook from 1318 [1900/1901] presents similar information but in table format.

Maps#
In aggregate, the provincial sâlnâmes have a tremendous amount of data in them, and it would be possible to reconstruct a graph of travel times for the entire Ottoman Empire. This was briefly my initial approach but I found that this work had already done by contemporary cartographers and that several maps could be leveraged to ease the process.
Ottoman map from 1855/1856#
The oldest map that I have found dates back to 1272 [1855/1856], although the border with the Kingdom of Greece does not appear to match the actual border in 1855 (or any other year). The map is entirely in Ottoman Turkish.

- Every point-to-point connection has a travel time indicated.
- Approximate vilâyet borders are shown.
- There are tables showing travel times from Istanbul, Samsun, Trabzon, Varna, İzmir and Selânik.
- Maritime connections are not shown.
- Bosnia and everything north of the Danube are omitted.
- Most of Iraq and everything south of Damascus are omitted.


Ottoman map from 1891/1892#
The second map dates from 1309 [1891/1892] and is also in Ottoman Turkish. It provides significantly more detail than the previous map, including in areas which were never or no longer part of the Ottoman Empire.2

- Most point-to-point connections have travel times. The missing times are typically for regions outside the Ottoman Empire, but there are exceptions.
- The symbology of settlements differs depending on their administrative function (e.g. the administrative centre of a vilâyet is different from that of a kazâ).
- Four different types of connections are shown: railroads, chaussées, main roads and roads.
- Maritime connections are not shown.
- Travel times between major ports are shown as a table.

French map from 1899#
The final map is the work of one R. Huber and is based off of the 1317 [1899] sâlnâme. Unlike the previous two maps, it is not in Ottoman Turkish, but French, and it has less detail.
- Most point-to-point connections have travel times. Rail connections are measured in kilometres.
- Vilâyet and sancak borders are shown.
- Population figures and other figures are given for administrative subdivisions.
- The symbology of settlements differs depending on their administrative function (e.g. the administrative centre of a vilâyet is different from that of a kazâ).
- Four different types of connections are shown: railroads, projected railroads, chaussées, roads and maritime routes.

The Engine#
As a proof-of-concept, I digitised a significant part of the 1899 map, encoding the settlements as points and the connections between them as lines in a PostgreSQL database with PostGIS support.

Network analysis for point-to-point travel is a well-understood problem, and pgRouting implements Dijkstra’s algorithm to find the lowest-cost path between two nodes, using the hours listed on the map as the cost of each edge.
Using Dijkstra’s algorithm and the data from the 1899 map, I calculated the optimal route between Sivas and Selânik would have taken almost five days:
- Sivas to Tokat via Kargın (road, 16h)
- Tokat to Ünye via Gümenek, Niksar, Karakuş (chaussee, 1 day, 5 hours)
- Ünye to Selânik via Samsun, İstanbul, Gelibolu, Çanakkale (ship, 3 days)
An Application#
I published a simple web application as “Ottoman Route Finder” at https://www.jaxartes.net/ottoman-route-finder/ so anyone can calculate that it takes about six days and ten hours to travel from Devebağırtan Kapısı to İd.

In addition to PostgreSQL, PostGIS and pgRouting, I am using OpenLayers as a web-mapping library.
Limitations#
- The application is only as good as the input data so I rely on the mapmakers’ and sâlnâme authors’ accuracy.
- In some cases, maps show connections but there is no travel time given; in those cases, I estimated the travel time based on the connection type and the typical time needed to travel that distance based on other connections in the map. This assumption may be wrong.
- In most cases, rail and tram travel times are also estimates. Only in some cases is accurate data available (for example Mudanya to Bursa).
- In all cases, the stated times are just the travel times and do not include any time spent waiting for onward transportation or time spent at intermediary points.
Changelog#
2024-12-22: add icons and collapsable details2024-12-24: add options menu2024-12-26: add a right click dialog menu to select the route origin or destination2024-12-29: switch to a materialized view in PostgreSQL to reduce the query overhead2024-12-29: replace GeoServer with a light-weight server
This is loosely based on the actual case of Cercîs Efendi, a Syriac Christian who held these positions in the late nineteenth and early twentieth centuries. He later lived in Samsun on the Black Sea coast. ↩︎
I believe this map came to me from Nick Danforth of http://www.midafternoonmap.com/ fame. ↩︎
