Atlascine Tutorial

How to map your own narratives using AtlasCine

This tutorial is a step-by-step guide to help you map your own narrative using our AtlasCine application and share it with friends, family and colleagues (see examples here: A more detailed description of this application is also available in the following paper “How can we map stories? A cybercartographic application for narrative cartography” (2014) by S. Caquard and J.P Fiset.

This application has been developed using a range of software (Open Source and Proprietary), including Google Drive. If you don’t already have a Google account, you will need to create one in order to use this application.

General Description of AtlasCine
Step 1 – Create your own Spreadsheet
Step 2 – Enter the locations of your story
Step 3 – Enter the places mentioned in your story (optional)

Step 4 – Geolocate your places
Step 5 – Mapping multiple stories
Step 6 – Check your map
Step 7 – Modifying your map
Step 8 – Creating a collection of maps (optional)
Example: Mapping “Around the World in 80 days”


AtlasCine allows the story map-maker to visualize the locations in a story on a base map while representing time associated to each location. The point associated to the coordinates of a location becomes larger when there is more time associated to that coordinate; this can be visualized using the play-back function that allows the points to grow over time. There can be different colors associated to these locations, or even the same location at different times(appearing like rings growing from the outside). Connections between locations also grow when they are repeated.

If there are locations that are simply mentioned in the story, there is the option to link to these other places using dotted lines, in order to differentiate between where the story is taking place and these other locations (for example, someone mentions another location in conversation, or thinks about another place during a daydream). The map also provides the option to illustrate journeys or passages in space in the story. And lastly, there is the option to map several stories at once.


Adam’s Wall (director Michael MacKenzie, 2008)


The first step is to duplicate the database template in order to develop your own database:

              OPEN TEMPLATE HERE

From the File menu, select “Make a copy” and name it (e.g. “mystorymap”). This new spreadsheet is now saved in your Google Drive.



There are several sheets in this spreadsheet – see the tabs at the bottom of the screen. The  “data_location” and “data_mention” sheets include all the places in your story, and each place will be materialized by a point on the map.

The “data_location” sheet is the list of locations where the story or action unfolds. Start by entering the place names of your locations in the “action” column – e.g. a city name, an address, country name (be sure to replace the sample data in the spreadsheet with your own data). To make sure the application picks the right coordinates for each place name, include information like the city and country, separated by commas, such as “London, Canada,” instead of simply “London,” as this can also be in England of course. Also, be consistent with how you spell the name of a location – e.g. both USA or the United States could work, but pick one, as this will keep the map labels more concise.

There are two types of actions that can be entered in this column:

  • Static: this segment of the story unfolds in one defined location, where the longer the action unfolds at this location, the bigger the point representing this segment becomes.
  • Moving: Materialize the movement between two locations with a line that is drawn over time (e.g. the character walks from the “Park Mont-Royal, Montreal, Canada” to his house in “Outremont / Mile End, Montreal, Canada”, see below). To do this, enter the tag _journey in the column “action” in a row between the starting point of the journey (in our example “Park Mont-Royal”) and the ending point of your journey (e.g. “Outremont / Mile end”). You can also add multiple points along the journey by including the _journey tag between multiple places. 


The size of each point will be defined by the column “time.” It is important to respect the format used for the time columns: HH:MM:SS. Although this column has been originally designed to enter film time, it can be used to enter story time (e.g. day 1 could be entered as 1:00:00; day 2 as 2:00:00, etc. or the page number of a book). The point will grow for the duration between the time listed for that place name, until the time listed for the next place name. For example, if Montreal, Canada is listed at 0:00:00, and then Quebec City is listed at time 0:10:00, the circle around the coordinate point for Montreal will grow for the equivalent of 10 minutes (however the map is set to a default of 60x). This is the same for journeys: the journey line will animate for the duration between the time listed for the _journey tag and the destination place name.

The last column, “type”, defines the style of the points representing the location on the map. In the template we predefined 6 styles that you can use. If you want to change the color, opacity, name, and number of types, please refer to Step 6 – Modifying your Map.

If there is a section of your story that does not include a location or for which the location is unknown, you can include an _end entry for that moment in the story. The line that links the locations will discontinue.



With this application you can differentiate places where the action unfolds from places that are simply mentioned. For instance, in story a character could mention a place where she would love to go. While mentioned places can be related to the location of the action, it can also refer to any kinds of places. For instance, in the template example, “Darfur” and “Afghanistan” are mentioned during a demonstration that takes place in Montreal.

The sheet “data_mention” allows the mapping of such places.

In this sheet, the column “time” specifies the exact moment (e.g. time in the movie, page in a novel) when the place was mentioned. 

The column “mentioned” is where to list the place name

The column “type” is used to define the type of connection between the place where the action unfolds and the place mentioned. In our example we have predefined two types to differentiate places mentioned: the ones that are very general such as the name of a country or of a province (e.g. Canada, Quebec), and the ones that are more specific, such as a city, a landmark, or an address. Note: You can add more types if you wish.

This sheet is then used by the application to draw a dotted line between the place where the action unfolds at time t in sheet “data_location” and the place mentioned at the exact same time (sheet “data_mentioned”). In the example below, “Montreal” is mentioned while the action is unfolding in “Park Mont-Royal” (min 2:40). Note: the style of this line can be changed easily, as seen in Step 6.



When the spatial structure of a story is laid out from the two data sheets, we need to tell the application the geographic coordinates of all the locations. This is done from the cities” sheet.  By default, the column “city” should already be populated with the list of all unique locations that were typed in (ie the list will not allow duplicate entries), from the “data_location” and “data_mention” sheets. If by mistake the formula has been erased or modified, you should copy the formula below in the cell A2 of the sheet “cities”, which essentially tells the sheet to list the information from both your “data_location” and “data_mention” sheets:

  1. GeocodeAnim

This sheet will be used by the application to place the locations on the map. Note: “_journey” and “_end” are not locations, but they appear in the list of cities. DO NOT REMOVE THEM. 

Next, start by using the geocode function in Google Sheets. in the In the cell B2, type the following formula: 


Then, from the small selection square at the bottom right of the cell, drag the selection down to apply the formula to all of the rows listing locations.


This uses Google’s geocoder tool. When the name of your location is not unique in the world, the geocoder can select the wrong coordinates, so a reminder that it is important to get precise locations, as well as to validate them on the map.

It is possible though that the geocoder either lists the wrong coordinates or does not find them and returns an error message. This means you will have to find the coordinates from another source and enter them manually. You can do this in multiple ways:

1. Check the location on Google Maps – the Google Sheet’s geocoder doesn’t have as many coordinates as Google Maps does, especially for more precise or more obscure place names. To get the coordinates right click on the pin on the map and click on “What’s here?”

2. Use an online geocoding tool, such as , and Search each location individually and paste the coordinates in the appropriate columns.

3. is useful for historical place names which may no longer appear in Google Maps.

*** Note that the application only recognizes the dot, and not the comma, as the decimals separator, so in the event that this parameter is modified, don’t forget to convert commas to dots.


In order to map a second story, simply start a new list of locations that begin back at 0:00:00, after the _end entry of the first story. This can be done for many stories, although the upper limit has not been tested. Let us know if you find it! 

If you have multiple trajectories at the same time, it recommended not to use the mentioned locations feature. This is because the data_mention tab relies on the data_location tab to know where to point from, and if there are multiple trajectories going on at the same time it might end up pointing from the wrong story line. 

Similarly, within the same story, you can have more than one point growing at once using this same principle. Place an _end entry at the timing that you want to first location’s circle to stop growing, and then list the second location as starting at the same time as the first. See the example below, where both New Hampshire and the Bronx grow simultaneously from 1:11:50 – 1:30:00, and the story then continues onto the Catskill Mountains:

time action
1:11:50 New Hampshire, USA
1:13:00 _end
1:11:50 Bronx, New York City, USA
1:13:00 Catskill Mountains, USA

Points that grow simultaneously could be used for different kinds of narrative structures, such as if your story consists of two things happening simultaneously, or if the narrative consists of a comparison or relationship between two places (such as a storyteller talking about what two places have in common for them).


The spreadsheet needs to be be correctly formatted in order to be read by the application. To be able to see your map, the spreadsheet first has to be public, which means that it can be accessed by third parties if they have the document’s identification key.

From the file menu, select “Publish to the web…”

Make sure “Entire Document” is selected and click on “Publish”.


The document’s identification key can be found in your document’s URL, after the /d/ parameter and before the /edit parameter. For example, see the highlighted section below:

Copy this section of your URL. Then Open the MAP APPLICATION ( Your browser may prompt a few error windows. Press OK to close them. In the address bar, immediately after the equal symbol (=), paste the document’s identification key and hit Enter. 

If the map is not formatted correctly, it will not load. Here are some common mistakes, the associated error message you receive, and how to fix it:

Error message or kind of error How to fix it
“Error occurred while loading data: Entries must be presented in chronological time: 00:01” (time indicated may vary) there is a typo somewhere in the order of the chronology for locations or mentions; there isn’t an “_end” between two points that are supposed to grow simultaneously
“Missing information about city: [ ]” Check the formula in the cities tab – both data and location tabs need to start at B2, sometimes this changes for some reason.
no error message, but no map appears Make sure all your types listed are spelled exactly as they are in the types list, including upper / lower case and spaces.

At the bottom-left, you’ll find a “Play” button that you can press to animate the map, based on the time structure entered at step 2 (Note: in the example we have provided, the action starts in Palestine so it takes a few seconds for the symbols to appear on the background map of Montreal).

Save the URL with the identification key for later use or to share it with friends and colleagues. No one has access to this key, except yourself and the people you share it with.

If you want your map to be public, you just need to click on Login (upper right corner). If you are not registered you can register (it takes a few seconds) and then you just need to click on Other Stories and then on Create a New Map (using your document’s identification key – see above). Once you have added your map, you can modify it, delete it, etc.


You can modify the map and change some design parameters using the two last sheets: “options” and “types”.

Sheet “Options”


  • Title: adds a title to your map, which will be displayed on the top-left of the map.
  • Initial bbox: defines the initial map extent. The first pair of coordinates is the top-left corner (latitude, longitude), while the second set is the bottom-right corner. The coordinates are separated by a comma.
  • City_Size_offset: defines the starting size of the symbols representing locations.
  • City_size_multiplier: defines the amount the symbols increase with time. The range is from 0 – 1.
  • Backgrounds: defines the different available backgrounds, from the map application.img1B

Sheet “Types”

tutorial image
Several options can be edited from this sheet, but only the most important ones will be discussed here.

  • Type: Refers to the type of location or mention used in the “data_location” and “data_mention” sheets. Note that if you want to add more styles than is listed, you need to create new rows between the already formatted cells of the template version, both for the types of the data_location sheet (listed in the template as Styles 1-6), as well as the mentioned line styles (listed in the template as Style data mentioned 1 and 2). Otherwise they will not be recognized as types in the data_location nor data_mention sheets.
  • Label: Refers to what will show up in the legend for each type. Number the items to list them in the desired order. You can use the label for “link” to write a few words about the map.
  • Color: In hexadecimal codes, this defines the color of the lines and markers. You can select other colors using an application such as this one from W3schools.
  • Opacity: Choose the level of transparency to the symbols (0 = transparent; 1 = opaque).
  • Point_stroke_thickness: Defines the size of a location’s marker.
  • Line_thickness_offset: Defines the starting thickness of a line between two locations.
  • Line_thickness_mult_count: Defines how much the lines thicken when a link is repeated.
  • Line_dash_style: Specifies if a line is solid or dotted.

Every time you make changes in your spreadsheet you can check the results immediately on your map by refreshing it (click on the “reload” button of your browser).

We hope that this application will allow you to map your own stories in a meaningful way.

If you have any questions or comments, or want to share your stories with us, please feel free to email us!


You can even create your own collection of maps. For instance, you are making maps based on several books from the same author. You can create one map for each book and organize all these maps into a Table of Contents (TOC), like we did for our project on films in Montreal:

To do this you need to create a Google spreadsheet that will include your TOC (see example below), and more specifically the name of each map, its key and one map with a default value “1” (to define the map that will appear by default)


Once you have designed this TOC, you just need to publish it and add its key to the following address:

After adding the TOC key, you should now see your own collection of maps. You can also share this link.

Example: Mapping “Around the world in 80 days”

To give you a better sense of how you can map your own story, here is an example from the novel “Around the World in Eighty Days” (Le tour du monde en quatre-vingts jours) by Jules Verne (1873). This famous novel tells the story of Phileas Fogg and his valet Passepartout who travel around the world in 80 days (for more details on the plot chick here.)

In this example, we are going to map the first places visited in the story, as synthesized in this table:


Since the time is in days, we will have to make it fit the structure of the time data required for the application (hh:mm:ss). One way to do this is to enter one day as one minute (and consequently half a day as 30 seconds).

The data in your sheet “data_location” should look something like this:


Note: the type “Boat” and “Train” have been added in the sheet “Type” to be available in this sheet.
This table tells the following story: The action starts in London; after 2 days there is a journey by boat from London to Suez, and this journey lasts 7 days (2+7=9). The action then stops for half a day in Suez (09:30) and then a new journey starts by boat again and goes to Mumbai, etc..

The data in your sheet “data_mention” should look something like this:


Those are two places mentioned in the novel (while the characters were in Suez, as you can tell from the timing).

The data in your sheet “Type” could look like the following, if you want to differentiate “Boat” from “Train” as types of transportation:


The data in your sheet “cities” should look like the following:


Note: if the last cells don’t have coordinates, make sure you expand the geocode formula to the last cell, as seen by the blue selection field above.

Also note: this function has a maximum amount of characters that it can compute. If your list of place names is longer you will need to re-code for the cells that exceed the maximum.
In other words: the formula is  =UNIQUE(TRANSPOSE(SPLIT(JOIN(“;”,data_location!B2:B,data_mention!B2:B),“;”))) – “B2:B” means that all entries in the b columns of both the location and mention tabs, ie the place name columns, will be included. Add a maximum row number and repeat the formula right below the last place name cell with the following cell number.
See example below:
At the bottom of the place name list, add:

Finally, the sheet “options” should look something like this:


If everything has been done properly, you could go back to your map, reload the page and you should obtain something like this:


This first result is correct, but some of the routes are not very accurate (e.g. a boat going through the Arabic peninsula is a bit unlikely…). You can improve the route by adding some intermediary places. For instance we are going to add “Marseille” between London and Suez, and “Berbera” between “Suez” and “Mumbai.”

The data in your sheet “data_location” should now look something like this:


The data in your sheet “cities” should now look something like this:


Your final map should now look more like this:


By further developing your map in ways such as improving symbols, adding new places, and clarifying the timeline, we hope we have provided you with tools to create more sophisticated and complex narrative maps to better tell your stories.