Basics

GEOlayers is your new best friend when you want to design and animate maps. It hooks you up with up-to-date geospatial data and satellite imagery. It lets you design complex map styles with a few clicks and animate them in 3D space.

Watch this tutorial to get started. Learn how to create Mapcomps, change styles, animate, and finalize them.

Mapcomps

Mapcomps are Compositions filled with map imagery and/or geographical labels.

They are the basic building block of each GEOlayers project.

To start a project you need to create a Mapcomp. Do this by creating a new project from the projects window or click the little arrow top left in the main window and hit + Add Mapcomp.

There are two steps to add a new Mapcomp:

1. Composition options and location
Choose a name, pixel size, duration, and framerate. These values are set from the currently selected composition. Don't forget to navigate the preview map to the location you're interested in. You can also use the search bar to jump to a place. Once you did this hit Next
2. Map Style
Now select a basic style for your map. You can select imagery presets from the section below the preview map, choose color presets, or change individual colors. The Mapcomp can be styled more detailed once it is created, so hit Create for now!

Now you can see the actual Mapcomp has beed created in the currently selected composition. Above it you can see the Mapcomps anchor layer. This is a helper layer that matches the Mapcomp's view animation and can be used to parent layers.

If you don't want to start from scratch you can also choose a sample project to start from. Find the projects panel in the context- or flyout menu of the GEOlayers panel.

Whenever you open a project that already contains Mapcomps you can see and select them clicking top left in the main window. This will open the Mapcomp list.

As you hover over a Mapcomp the following buttons appear:

Mapcomp Settings
Click to open the Mapcomp settings panel. There you can style the map's imagery and labels, change its name, link its view to other mapcomps, and more.
Duplicate
Clicking will lead you to the following options:
  • Duplicate the containing Comp with all Mapcomps inside
  • Duplicate only the selected Mapcomp inside the containing Comp
  • Split the Mapcomp's Imagery and Labels to separate Mapcomps
Remove
Click here to get rid of your Mapcomp and all related project items like imagery tiles and labels.
Finalize
Click to finalize only a single Mapcomp. The finalize Button in the main panel will finalize all related Mapcomps.
  • Hold ALT/OPT to finalize in preview quality.
  • Hold CTRL/CMD to finalize in only the current frame.
  • Hold SHIFT to finalize all Mapcomps in the project.
Preferred Mapcomp for Template Labels
If you have a group of linked Mapcomps you can define a preferred one to put template labels on. This one will then be used to label features instead of the currently selected Mapcomp. This is useful for more complex projects like 3D landscapes.
Preferred Mapcomp for Drawing Features
If you have a group of linked Mapcomps you can set a preferred one to draw on. This one will then be used to draw features on instead of the currently selected Mapcomp. This is useful for more complex projects like 3D landscapes.
Lock Mapcomp Settings
You can lock Mapcomps so you don't accidently hit any of the additional buttons selecting your Mapcomps. This will not prevent the map to be animated or finalized.

Below the list on the left side you can toggle display modes.

  • Sort by linked Views to see exactly which mapcomps are linked
  • Sort by Mapcomp name to order all Mapcomps by their Names
  • Sort by Layer Order in containing Comp to show Mapcomps grouped by their containing comp in the layer order
Navigate your Mapcomp

A Mapcomps view consists of latitude, longitude, zoom, bearing, and pitch.

To navigate the Mapcomp you can use the preview map in the GEOlayers panel. Drag around to change the active position in your composition. Use and to zoom in and out. You can also use the slider in between for finer control. Additionally, you can right-click and drag to change the map's bearing and pitch. You can reset the bearing by clicking

If your Mapcomp is linked to the preview map the view will be synced each time you change it. If you unlink it you can apply the view by hitting .

With the button in the top right you can display your selected Mapcomps view in the preview map.

It is not recommended to set the composition viewers resolution to Auto because GEOlayers can't lower the resolution as it is working. This results in slow performance.

Animate your Mapcomp

You can animate your Mapcomps with the effect controls of your Mapcomp Layer in the timeline. The easiest way is to click bottom left of the preview map in the main panel. This will create keyframes on all properties at the current time. If you move the current time indicator to a different position and change a Mapcomp's view GEOlayers will automatically add keyframes to the properties that have changed. For example, only the zoom or bearing.

Finalize your Mapcomp

Once your animation is done you need to finalize your Mapcomp.

Finalizing a Mapcomp means:

1. Analyzing
The animation is analyzed and GEOlayers pulls the necessary tiles (imagery and data) from the basemap.
2. Rendering Imagery
The required geospatial data or imagery is downloaded, rendered, imported to your project, and blended according to your animation's zoom level transitions. If needed, a provider attribution is created.
3. Adding Labels
Labels are added and blended according to their importance.

Click the button in the top right of the main panel to finalize the selected Mapcomp and related ones. Mapcomps are related if their views are linked. Hold SHIFT to finalize all.

Additionally you can hold ALT/OPT to finalize in preview quality or CTRL/CMD to finalize only the current frame.

Mapcomp Settings

All settings of your Mapcomp are here. You can open the Mapcomp Settings by clicking in the Mapcomp list.

General
Name
You should change your Mapcomps name only here since related expressions will automatically be updated.
Linked Mapcomp
Select another Mapcomp here to link their views. Note that this option is only visible if you have more than one Mapcomp in your project.
Language
You can select a language for your Mapcomp here. This affects naming of features in the browser and search as well as the mapcomp labels. Note that not every location is named in every language. In this case, the international names are being used.
Max Zoom
This value describes how far the Mapcomp can be zoomed in. Note that this depends on the imagery you use. Imagery can be overzoomed but the quality will suffer in this case.
Attribution
Select a place that suits best for your data attribution. Note that all map providers require this unless otherwise agreed with them. You can find some info on how certain data should be attributed clicking .
Imagery

You can generally enable and disable imagery rendering for Mapcomps. This can also be done in the Mapcomp list. If it is enabled you have the following options:

Imagery Presets
Click one of the thumbnails to apply an imagery preset to your Mapcomp. Each preset has different options. You can set them up by clicking in the top right.
Quality
The quality describes the resolution related to the zoom in which the imagery is being rendered. Normally 80% is a good setting for most cases.
Blend Duration
Depending on the zoom level, imagery from map providers will have different detail levels being rendered. After finalization, those zoom level transitions are blended with the duration that is set up here. Note that the duration can be shortened if there is not enough time.
Imagery Motion Blur
Enable Motion Blur for the Mapcomp Imagery.
Mapcomp Labels

The labels are After Effects text layers which you can style however you want. Those layers are called Mapcomp Label Templates and can be found inside the Mapcomp.

You can enable and disable automatic labels for Mapcomps. This can also be done in the Mapcomp list. If it is enabled you have the following options:

Label Presets
Depending on the colors of your imagery, GEOlayers suggests label styles. You can click one of the presets to apply the labels to your Mapcomp. Note that the existing Mapcomp label template layers are being removed. Click in the top right to reveal the layers in your Mapcomp. This also helps you to apply colors to all layers with one click, select the contents and block certain labels.
Density
The label density describes the amount of labels per view. Note that a higher density results in a slower finalization and longer render times.
Size
Set up a global label size here. Relative sizes can be set on the individual label template layers. Reveal them by clicking in the top right.
Blend Duration
After finalization, Mapcomp labels are blended in and out depending on zoom levels and other more important labels that intersect. The blend duration can be set up here.
Label Motion Blur
Enable Motion Blur for the Mapcomp Labels.

On the bottom of the Mapcomp settings panel you can find two more buttons:

If expressions break due to changing names of related layers or comps you can repair them from here.
If there are image render errors in your project, hit this button to force GEOlayers to re-render.

Toolbar

The toolbar is below the Mapcomp bar.

Pin Layer to Map
Select one or more layers in your selected Mapcomp's containing composition and click this button to snap them to your map. After doing so, the layer will stay at the exact same geographical position as you animate your map. If the selected layer is allready pinned to a map it will be unpinned.
Pinned Layers
A pinned layer is a layer in your Mapcomp's containing composition that is fixed to a certain geographical position.

Have a look at the pinned layers effect controls and find the following options:

Latitude, Longitude and Height
These three controls represent the geographical position of the layer. The Height is the z-offset in pixels at the zoom the layer has been pinned.
Pixel Offset
3D point control is very handy to adjust the layer's geographical position with normalized values. Even if you're zoomed in very close and incremental latitude changes would lead to a different position of the label. This property allows for quick adjustments. Note that the z-offset here is independent from the zoom.
Scale with Map
Check this option to scale the pinned layer according to your Mapcomp's zoom.
Rotate with Map
Check this option to rotate the pinned layer according to your Mapcomp's bearing and pitch. Note that you must enable the label layer as 3D in After Effects for this to work.
Rotate along path
If the geoposition of the layer is animated it can be rotated along its movement path with this option.
Bearing offset
If the layer is rotated with the map you can set an offset for the bearing.
Position Progress
If the Latitude, Longitude or Height properties are keyframed you can animate the layer's position with this progress slider between a value of 0 and 100. Note that you need to enable the effect therefore. It makes things easier if you want to ease complex route animations.

If you want to overlay a layer to your map, you can also parent it to the Mapcomp anchor layer.

Create Controller Mapcomp
Click this button to create a Mapcomp that displays neither imagery or labels. It can be used to link other Mapcomps to it or to draw geo-referenced shape layers on it.

Create Water Mask Mapcomp
Click this button to create a linked luma water mask mapcomp next to the selected Mapcomp.
Draw 3D Buildings
Click this button to draw 3D buildings as shape layers in the Mapcomp's containing composition. Note that this requires the Ray Traced or CINEMA 4D renderer. Note that this will considerably slow down After Effects.
Create 3D Landscape
You can create a 3D Landscape using other extensions such as Mettle FreeFormPro, Rowbyte Plexus 3, or Trapcode Mir 3.

Draw Diagram
Click this button to create a line or area chart from a .csv or .tsv file. Each column of the spread sheet represents a property that you can draw. Each line of one column represents a value in the sequence. Note that value sequences for the X-Axis need to be strictly ascending or descending.
Run Script file
Click this button to directly run script files. Note that button is not shown unless you have set up script file folders in the preferences.

Add Template label
This button will add a label based on the selected label template to your Mapcomp. GEOlayers will ask for the data fields specified in the label template. In your Mapcomp's containing comp you'll find a 'Location Picker' layer temporarily to adjust the position of the Label.
Label Template Selector

A label template is a composition with graphical elements and text or footage templates that will be set from feature properties when a feature is labeled.

In comparison to the mapcomp labels which are created automatically, these labels are more powerful and can be used to highlight certain places, add symbols, or even show whole datasets like weather information.

In the dropdown you can select the label template if you label a feature from the toolbar, the search, or the browser. You can hold ALT/OPT and click to reveal the label template Composition in your After Effects project. It is also possible to hold SHIFT to reveal the ColorComp of the label template if it has one. This is a composition where you can globally define colors for your label set.

You can easily filter the labels by name typing anything into the filterbar. If you're building template projects it might come also handy that you can right click the filterbar to set up filtering by Mapcomp. You can define label templates that are only visible if you have a certain Mapcomp selected.

Underneath the label template List you can find more options:

Swap Label Template
Once you have created a label you can swap its template by selecting a different label template, selecting the label layer in your timeline, and clicking this button.
Add Template
Click this button to create a new label template composition in your project.
Import Templates
Click this button to import label templates from an After Effects project. You can find several label template projects in the GEOlayers projects panel.
Download Templates
Click this button to open the projects panel showing all label template projects for you to download.
Label on preferred Mapcomp
If you have a group of linked Mapcomps you can set a preferred one to put template labels on in the Mapcomp list. This one will be used to label features instead of the currently selected Mapcomp. This is useful for more complex projects like 3D landscapes.
Draw Arrow
Click this button to set up an arrow shape layer. Once that is done you can draw the arrow with the pen tool. Check out the arrow layers Effect Controls to style and animate it. Note that the initial style and color depends on the selected Shape Layer Style. You can use the styles to create arrow presets.
Add Shape Layer
This button will create and pin a shape layer to your Mapcomp on which you can draw manually.
Shape Layer Style Selector

A shape layer style is a preset in which shape layers can be drawn. They are saved with the After Effects project.

They can be very powerful as their options can be data-driven by properties of the feature that is drawn.

In the dropdown, you can select a shape layer style that is used if you draw a feature even from the search or the browser.

You can easily filter the shape layer styles by name typing anything into the filterbar. If you're building template projects it might come also handy that you can right click the filterbar to set up filtering by Mapcomp. You can define shape layer styles that are only visible if you have a certain Mapcomp selected.

Underneath the shape layer styles you can find more options:

Swap Layers Style
You can apply a shape layer style to already drawn layers with this button. Select a layer and click it.
Edit Styles
Click this button to edit the shape layer styles of the project.

Additionally, there are some global settings for drawing shape layers:

Simplify Geometry
If enabled, GEOlayers will reduce geometry details that are visually unimportant. For maximum performance, keep this setting enabled. There is two modes, simply click the checkbox to toggle through the options:
  • by Current Zoom: The geometry of the feature will be simplified according to the current view of your Mapcomp.
  • by Max Zoom: The geometry will be simplified according to the largest zoom in your animation.

Auto Stroke Width
If checked, stroke widths will be animated according to the Mapcomp's zoom level so they appear to have the same width at each zoom.
Individual Layers
If you draw more than one Feature, you can select whether they should be drawn on a single or individual layers. Note that if feature styles have different extrusions, features will split to layers with the same extrusions.
Inside Mapcomp
For quick animations, you might want to draw features inside the Mapcomp so they appear below the Mapcomp Labels and don't add complexity to your containing composition.
Draw on preferred Mapcomp
If you have a group of linked Mapcomps, you can define a preferred one to draw on in the Mapcomp list. This one will then be used to draw Features on instead of the currently selected Mapcomp. This is useful for more complex projects like 3D landscapes.

Feature Browser

Browse and manage your geographical features here. Drag them around or ALT/OPT + DRAG to copy features. You can jump to them on your Mapcomp, label and draw them, or have a look at their properties. The ones you add to your favorites will be saved for use in other GEOlayers projects.

Features are geospatial geometries. They can be one of three types: points, lines, or polygons. In some instances, features can be a combination (known as a collection). They can have additional data stored as properties (For example: population sizes, total area, or names of locations).

Add Features

Click the button on the left side above the browser to add features to the browser. A few options will appear.

Download Features
Click here to download features in global datasets or for the Current View. World view datasets are provided by Natural Earth. Local datasets for the current view are downloaded from OpenStreetMap.

This service is provided by Natural Earth.

No attribution is needed, but if you want to give credit to Natural Earth, use this text: Made with Natural Earth.

Thisservice is provided by OpenStreetMap.

If you show data aquired with this service it must be attributed as follows: ©OpenStreetMap contributors.

Import File
If you want to import custom geospatial data from other databases or from your own research, GEOlayers can import and ingest these file types:
  • .geojson
  • .shp
  • .gpx
  • .kml
  • .kmz
  • .csv/tsv (needs latitude and longitude fields)
  • .zip (with .shp and .dbf inside)
Current Mapcomp View
Save the current latitude, longitude, zoom, bearing, and pitch of the selected Mapcomp in a point feature. You can apply the exact same view to Mapcomps clicking Fit view to Feature with view feature selected.
Feature from Layer
You can create and import features from almost every layer in a composition that has a Mapcomp inside. Select a Template Label layer, Nulls to get point features or draw lines and polygons on a shape layer to import complex geometries. Open paths will result in line features, whereas closed paths will be interpreted as polygons. Note that self intersecting rings in a polygon are not allowed and can lead to errors. Bezier curves will get rendered in the quality necessary for your current view.
Feature Collection
Creates an empty Feature Collection in which you can drag Features in to keep things sorted.
Filter Features

You can filter your list of saved features in the browser. Just type in a search term.

Anything
Any word will check all feature properties for a match.
Certain Properties
You can also filter by certian properties. Do this by typing in the property name, an operator, and a value. For example, kind=country or population<100000.

Additionally you can filter by geometry type (points, lines, polygons).

Point geometry
A geometry consisting of one or more points.
Line geometry
A geometry consisting of one or more lines.
Polygon geometry
A geometry consisting of one or more polygons.
Geometry collection
A geometry consisting of multiple point, line, and/or polygon geometries.

Current View Filter
If the current view filter is enabled, only features that intersect the preview map view are displayed.
Show selection in preview map
Enable this button to check out the features in your preview map. If you're working with large features, it's a good idea to turn this off.
Feature Actions

Storing features in the browser is a powerful tool in GEOlayers. Select one or more features and the following buttons appear below the browser:

Fit View
You have four options to fit your Mapcomp's view to the selected feature.
Fit View to Feature
This will fit your Mapcomp's view to the bounds of the selected feature. It changes latitude, longitude, and zoom, but will not affect bearing or pitch.
Animate View to Feature
You can animate the selected Mapcomp's view from anywhere to the selected feature. The duration of this animation can be set in the preferences.
Animate View along Feature
This will animate your Mapcomp's view along the geometry of the selected feature. You can follow a route or .gpx track on a map. It animates latitude and longitude, but will not affect bearing, pitch, and zoom. The motion path of your view gets smoothened according to the zoom level. If you zoom in further, the view will be more detailed along the feature's path. The duration of this animation can be set in the preferences.
Animate View between Features
If you have two or more features selected you can animate the selected Mapcomp's view from one to another. The duration of this animation can be set in the preferences.
Pin Layers
You have two options to pin layers to your Mapcomp.
Pin Layers to Feature
This will snap selected layers in your Mapcomp's containing composition to the geographical position of the selected feature.
Animate Layers along Feature
Click to animate selected layers in your Mapcomp's containing composition along the geometry of the selected feature. The duration of this animation can be set in the preferences.
Add Label
You have two options to add feature labels to your Mapcomp.
Add Label
This will add a feature label created with the selected label template to your Mapcomp's containing composition.
Animate Label along Feature
This will add a feature label created with the selected label template to your Mapcomp's containing composition and animate it along the geometry of the selected feature. The duration of this animation can be set in the preferences.
Add Labels with Time Offset
This adds labels for each selected feature with an offset in time. The overall offset depends on the default animation duration which can be set in the preferences. The offset can also be data-driven. Set up a timing property for a whole Feature Collection by opening its Feature Properties.
Draw Features
You have two options to draw features to your Mapcomp.
Draw Features
This draws the selected features with the selected shape layer style to your Mapcomp. If a feature has a shape layer style applied this one will be used instead.
Animate Feature Path
This draws the selected features with the selected shape layer style to your Mapcomp and animate its trim path property. If a feature has a shape layer style applied this one will be used instead. The duration of this animation can be set in the preferences.
Draw with Time Offset
This draws each feature with an offset in time. The overall offset depends on the default animation duration which can be set in the preferences. The offset can also be data-driven. Set up a timing property for a whole Feature Collection by opening its Feature Properties.
Add Feature Collection
This adds a feature collection around the selected features. You can think of it like a directory for files. Use it to structure your features in the browser.
Feature Properties
Click to open the feature properties panel. You can see a list of all properties the feature has. You can rename it, apply a shape layer style to it, adjust the position of Labels and even create data-driven shape layer styles matching feature properties with just a few clicks.
Also if you want to edit feature properties or import data from a spreadsheet to an actual polygon feature collection you can use the import/export properties to .csv buttons. Note that you'll need to select a Feature Collection therefore. You'll find the buttons under all the Collective Feature Properties.
GEOlayers supports data that changes over time. In this case the property needs to be an array of values. If you have a file sequence that holds the same geometries but with different property values like increasing or decreasing population you can also import this sequence and its properties will be merged to arrays.
Connect Features
If you have at least two features selected you can create line features connecting them. You have the following options:
Straight Line Mesh
This will create a feature collection with lines connecting each feature with each other. If you select one single feature and a collection, lines from all features in the collection to the single one will be created. Lines appear to be straight in projection your Mapcomp has.
Plane Route Mesh
This will create a feature collection with lines connecting each feature with each other. If you select one single feature and a collection, lines from all features in the collection to the single one will be created. Lines appear to be curved since they show the shortest connection on the globe.
Straight Line
This will create a line connecting all selected Features.
Plane Route
This will create a line connecting all selected Features. The line appears to be curved since they show the shortest connection on the globe.
Pedestrian
With this option you can connect five features max. It will calculate a route based on OpenStreetMap.
Bicycle
With this option you can connect five features max. It will calculate a route based on OpenStreetMap.
Car
With this option you can connect five features max. It will calculate a route based on OpenStreetMap.
Lines from Polygons
This function will create a line feature from selected polygons. Use it for example to create clean boundaries from selected country polygons.
Merge Features
This merges the geometry of two or more Features. Note that complex geometries can result in very long calculation times.
Subtract lower Feature
This will subtract the geometry of the selected Feature that is lower in the browser from the one above. Note that complex geometries can result in very long calculation times.
Split Feature
This splits a feature into individual geometries. For example, a country feature that contains islands will be split into multiple layers.
Points inside Polygons
You a few options what to do with Points and Polygons.
Points inside Polygons
Select Points as well as at least one Polygon Feature and get back Collections of Points that are within the certain Polygons.
Inject Point Properties to Polygons
Imagine you have spreadsheet data for a bunge of countries. This data will be imported as Point Features. If you load Country Polygons into your Browser select both the Points and Polygons and click this option, the data from your spreadsheet will be injected into the Country Polygon Features.
Convert Polygons to Points
Convert Polygon or Line Geometries to simple Points.
Draw Property Charts
This tool helps you creating line or area charts from Feature data. For example an elevation chart of a gpx track. Note that your selected Feature(s) need to have Array properties to be able to visualize it in a chart.
Export Features
Click and choose a directory to export the selected features to a .geojson file. You can hold SHIFT to export all Features in the browser to features.geojson beneath your current project file.
Remove Features
Click to remove the selected features from your Browser. You can hold SHIFT to clear the browser exept your favorite features.

Label Templates

GEOlayers allows you to use custom compositions to label features. You can label features from the feature browser or directly from the search bar. In the toolbar you select the label template to use.

Label templates are stored in your After Effects project under GEOlayers 3 Items/Label Templates. You can add and remove compositons to this folder and use them as your custom labels. On an empty project a default set of label templates will be loaded.

Default Labels

The default label templates are set up for two color schemes and can be customized. To do that open the following composition: GEOlayers 3 Items/Items/LabelColors. There you can adjust the fill colors of the containing shape layers or simply hide them if you don't want straps for example.

Once a feature is labeled you can change the label layer's anchor point property to offset the text strap while the pointer still sits at the correct geoposition.

Create Custom Labels

Each composition that is inside GEOlayers 3 Items/Label Templates in your After Effects project is noticed by GEOlayers as a label template. Note that the labels anchor point is at the center of the template composition by default. If you want it to be somewhere else add a layer called Label Anchor Point to your template composition. This layer should have a z-positon of 0 and be not parented to another one. The anchor point of each label created with this template will then be adjusted to this layer's position in the template comp. An expression will link its position to the label's anchor point. This allows dynamic labels.

If you want a Label Template to be a 3D layer as you add it to a map switch on the 3D layer flag of the Label Anchor Point layer. Same goes for collape transformation.

Additionally you can control a labels default behaviour by adding the following effect controls to the Label Anchor Point layer:

  • Checkbox control: Scale with Map
  • Checkbox control: Rotate with Map
  • Checkbox control: Rotate along path
  • Angle control: Bearing Offset

Text layers that are not locked are used as template fields. The text layer's name or content defines the text that is inserted to it as you create a label.

  • Any name will tell GEOlayers to insert just the feature name.
  • A feature property in curly brackets in the name or text layers' content will lead to replacing the source text with a certain property's value. Multiple properties are supported. So a text layer's name or content could be {population} or Latitude: {lat}, Longitude: {lon} for example. If the Features' property is an Array the text will be animated. Change the duration of this animation with the Default Animation Duration in the preferences.

Footage layers that are not locked and are named like a property in curly brackets are used as footage template fields. The layers' source will be replaced when the Feature provides a suitable property for this. Properties can hold the following data:

  • An absolute local path to a file with or without the file extension D:\my_folder\my_file(.jpg)
  • A local path or file name with or without file extension that is relative to the template footage my_file(.jpg)
  • A http or https URI http://www.myserv.er/my_image.jpg

Inspect a feature's properties by clicking the feature properties button in the feature browser.

Shape Layer Styles

Edit your shape layer styles by clicking Edit Styles on the Shape Layer Style Selector.

A shape layer style is a definition of how features will be drawn to shape layers. It defines colors, opacities, strokes, extrusion etc.

At the top of the dialog you can reset, import, and export shape layer styles. Styles are saved inside your After Effects project.

Remove Styles
Click this button to remove all styles but one.
Reset Styles
Click this button to reset the shape layer styles to the defaults.
Create Styles based on Mapcomp
Click this button get a set of shape layer styles based on the selected Mapcomp's imagery.
Import Styles
Click this button to import shape layer styles from a file.
Export Styles
Click this button to export the shape layer styles to a file.
Edit Styles

Select a style from the grid to edit its properties. You can also drag them around, create new ones, duplicate, or remove them.

Add Style
Click the plus on the last position in the grid to add a shape layer style.
Swap Layer Style
Click to apply the style to an existing shape layer.
Duplicate Style
Click to duplicate the selected shape layer style.
Pick Style from Layer
You can pick Styles from Shape Layers or certain Content Groups on Shape Layers directly. Simply select one or multiple Layers or Groups and click this button to add Styles to your palette. Note that not all Shape Layer Properties are supported. For example Gradient Fill or Strokes are not possible.
Remove Style
Remove unneeded Styles with this button.

The selected style can be edited below. You can select whether a fill and a stroke property should be drawn. Unlike polygons, line and point geometries will be drawn with a stroke also if it is not checked. For each of the both you can define a color and a opacity. The stroke has some additional options. The Width, which is relative to your selected Mapcomps current view, and a dash slider. Use it to draw your Stroke dashed or dotted. Note that this increases the time for the drawing process.

A style can also contain an extrusion. As a result, the containing composition's renderer will be set to CINEMA 4D. Features with different extrusions will be drawn on separate layers due to limitations with After Effects. Same goes for different Layer Blending Modes and the Preserve Transparency toggle.

Data-driven Styling

Each setting of a shape layer style can be data-driven. Click the button to automatically adapt the setting to a certain feature property.

Type in the property's name and a value range. You can then, for example, colorize a stroke according to the drawn feature's population property. If you define numbers in the value range, colors in between will be styled across a range. String data (words) will change the setting on an exact match. Numbers can be treated as a string if you use quotation marks.

For Stroke Width and Outline Width you can choose Circle Area as an interpolation setting next to the Property name. Use it if you want to draw Point Features whose surface area should represent the property value. This makes visually more sense than the diameter which represents the stroke width. Note that in this case you should have only 2 items in the value range.

If the data-driving property of the Feature is an Array GEOlayers will animate the corresponding shape layer settings. In the browser you will see a little icon if the Features' property is suitable for an animation. The duration of this animation can be adjusted changing the Default Animation Duration in the preferences

By checking the rnd setting, it will be randomized in the given value range.

The little icon in the style thumbnail indicates that the style has at least one data-driven setting. Thumbnails in the feature browser also preview data-driven settings. If the icon is not spinning the Feature has no property to data-drive the Shape Layer Style.

Projects

Find the projects panel in the flyout menu of the extension.

Create a new Project

Click this button to create a new GEOlayers project and Mapcomp.

Import a Project

If you want to integrate a GEOlayers 3 project in the one that is already open. GEOlayers will take care of unique comp names, update expressions, merge shape layer styles of both projects, and sort your items into the required folder structure.

Open a Project

Click this button to open any After Effects project.

Recent Projects

In this section you can find and open your recent GEOlayers projects.

Sample Projects

You can directly download sample projects to get you started. The projects can contain shape layers styles and label templates. Features can be delivered with the project. In this case, they will be added to your browser when the project is loaded.

The icon top right lets you download the project with your browser.

If there is a top right you can also watch a related video to learn more.

Label template projects can be directly imported to your GEOlayers project if one is currently open.

Preferences

Find the preferences in the context or flyout menu of your GEOlayers panel.

General
Default Composition Settings
Choose some defaults for creating Mapcomps. Note that you can also select a Composition before you create a Mapcomp to apply its composition settings and place the Mapcomp inside.
Default language
Choose a language which Mapcomps will use by default.
Smoothen view animations
If this setting is checked all view animations will be eased automatically. Smoothing will also be applied if you animate a Mapcomp's view along a feature.
Easing
If you have smoothen view animations enabled you can choose the velocity influence for the keyframes.
Default animation duration
This duration is used for animating views, markers, labels, or draw shape layers along a feature. If the feature has timed information like GPX tracks and the Mapcomp's duration is long enough the original time will be used to animate. If the composition is not long enough the speed is scaled up relatively to match the default animation duration.
To adapt the animation length once it is drawn, select all the keyframes and drag the last keyframe around holding ALT/OPT.
Show Tooltips
You can disable tooltips here.
Show Hints
You can disable the Hints that pop up after certain actions.
Use System Color Picker
Select whether you want to use the GEOlayers color picker or the system default.
Finalize only containing comps work area
Instead of the whole duration only the work area of the composition your Mapcomp is placed inside is finalized. This can be handy for long, complex animations.
Show Bounding Box of previewed Features
Show a Bounding Box around Features in the preview map.
Feature Search
Services
You can set up multiple services for your searchbar and the search by coordinate function. Note that MapTiler is only available if you have have connected your MapTiler Cloud account.
Mapcomp Imagery
Render Directory
Into this directory all the Imagery will be rendered.
Render to project directory
Enable this setting and GEOlayers will try to render the imagery to the directory your After Effects project file is stored. It is more efficient to use a global render directory and collect files as the project is finished since GEOlayers will be faster using already rendered imagery on different projects.
Labels
Custom Label Template Project
Apart from the Default Label Templates you can define a custom .aep that will be loaded when you create a new GEOlayers 3 project.
Ask for missing data before adding Template Label
If you want to add a label for a feature and the Label Template requires data that can't be provided by the feature GEOlayers will show a dialog that lets you enter the missing data.
Renaming
You can set up a renaming table for the automatic Mapcomp labels. Type in the location name you don't want to see and a name with which it should be replaced.
Shape Layer drawing
Change renderer for extruded layers
The After Effects Classic 3D renderer can't display extrusions. GEOlayers can change the renderer to Ray-Traced or the CINEMA 4D renderer once a shape layer is drawn with extrusion. The Mapcomp itself can't be rendered with a different renderer such as Classic 3D due to the layer blending during zoom level transitions. This is why extruded shapes can't be drawn inside Mapcomps. They will be offset in z-space.
Cast shadows
You can set up newly drawn shape layers to cast shadows by default.
Accept shadows
You can set up freshly drawn shape layers to not accept shadows by default.
Duplicate Features across Date Line
Draw features multiple times if they cross the date line or your view is zoomed out that far that it shows the whole world multiple times.
Dash Zoom Threshold
As you zoom a map that has a shapelayer with a dashed stroke attached and it was drawn with the Auto Stroke Width setting GEOlayers needs to adjust the dash length according to the stroke width to keep it visually balanced. This slider lets you adjust how much streching of the dash length is allowed. 0 means no stretching at all. A value of 1 ends up in one step each zoomlevel.
Accurate Topology Simplification
Polygons with shared borders are simplified more accurate to avoid glitches. This method is slower.
Simplification Detail (Zoom Offset)
Features are simplified according to a certain zoom of your map. Increasing this value will lead to more detail in the geometry allowing you to add a little zoom to your animation afterwards without the need to draw the feature again.

Finalization
Max tiles for finalized Mapcomp
The maximum number of imagery layers GEOlayers will allow during finalization. Keep in mind that your machine might get pretty busy if you allow a really high amount of layers.
Base Sample Rate
Define the frames to be left out during analyzation before finalizing. GEOlayers will automatically sample more details depending on the map movement it detects. Nevertheless, if you have problems with missing tiles on the mapcomp edges, you can lower this value and finalize again.
Mapcomp Label Engine

There is a complex algorithm setting up the Mapcomp labels. Changing these values might end up in unwanted results.

Title Safe Area
The minimum distance from the border of the frame, relative to the Mapcomp size, in which Mapcomp labels can be drawn
Label Buffer
The buffer around each label, relative to the Mapcomp size, which prevent labels from displaying if they collide.
Min Appearance Time
If a label doesn't reach this time to be displayed it won't be added to the Mapcomp since you wouldn't be able to read it.
Collision Sample Rate
The rate in which GEOlayers looks for label collisions and sets up blending during finalization.
Max labels to sample per view
The maximum amount of labels that can influence each other.
Lock Mapcomp Labels
Lock created Mapocmp labels after finalization.
Pinned Layers
Rotate along path smoothing
This setting describes the smoothing applied to the rotation, if you animate a pinned layer or label along a feature and enable its rotate along path effect.
Scripts
Script folders
Add directorys that store .jsx or .jsxbin files to run them from the GEOlayers toolbar.
Detect script files in project directory
Show .jsx or .jsxbin files in the toolbar script runner that are in the same directory as your current After Effects project file.
Render Queue

Once your Finalization is done GEOlayers displays the option to add a compostion to the After Effects or Media Encoder Render Queue.

Render Directory
You can either keep the default behaviour of After Effects setting your output folder or specify an absolute or relative path.
Create Directory if not existing
You can allow GEOlayers to create the render directory if it doesn't exist.

Scripting API

There is an extend script API that you can use to automate tasks with GEOlayers. Feel free to get in touch and tell us what you need to create automated workflows. In general, the GEOlayers panel needs to be open when you want to call any function of the API.

Find an overview of the functions the API exposes:


geolayers3.importProject(file[, isLabelTemplateProject])
Import a project to your current one. GEOlayers will sort everything into its project structure, take care of unique comp names and update expressions accordingly.
Arguments:
  • file: A File object referencing an .aep or .aet file.
  • isLabelTemplateProject: Boolean, set to true if the project to import only contains Label Templates.

geolayers3.finalize(comps, callback[, options])
Use it to finalize Mapcomps.
Arguments:
  • comps: Either one or an array of Mapcomp names, Mapcomps or comps that contain Mapcomps, or undefined to finalize all Mapcomps in the project.
  • callback: A function (error, mapcomps) that is called async when all finalizations are done.
  • options: An options object with the following possible boolean properties: "onlyCurrentFrame", "previewQuality", "onlyWorkArea" and "purgeImageryCache".
Note that this is an async function. This means any scripting that has to be done after the finalization needs to be placed inside the callback function. It takes an error as the first and the finalized compositions as the second argument and is called after all finalizations are done.

geolayers3.duplicate(comp[, options])
Use it to duplicate Mapcomps or comps that contain Mapcomps. This method also updates all related expressions.
Arguments:
  • comp: A Mapcomp name, Mapcomp or comp that contains a Mapcomp
  • options: An options object. Use it for naming the duplicates. If you're duplicating a Mapcomp use the property "newName". If you duplicate a containing comp use "newContainingCompName"
This function returns the duplicate comp or undefined if anything goes wrong.

geolayers3.setViewAtTime(comp, view[, forceKeyframe[, time]])
Use it to set or animate views of Mapcomps.
Arguments:
  • comp: A Mapcomp name, Mapcomp or comp that contains a Mapcomp
  • view: An object with the following float properties: "latitude", "longitude", "zoom", "bearing" and "pitch".
  • forceKeyframe: Set this to true to set a keyframe even if the property is not keyframed yet.
  • time: The time in the containing comp to set the value. If it is undefined it takes the current time.
This function returns the applied view object or undefined if anything goes wrong.

geolayers3.fitViewAtTime(comp, bbox[, forceKeyframe[, time]])
Use it to set or animate views of Mapcomps by a bounding box.
Arguments:
  • comp: A Mapcomp name, Mapcomp or comp that contains a Mapcomp
  • bbox: A geojson bounding box Array [LongitudeMin, LatitudeMin, LongitudeMax, LatitudeMax] (WGS 84)
  • forceKeyframe: Set this to true to set a keyframe even if the property is not keyframed yet.
  • time: The time in the containing comp to set the value. If it is undefined it takes the current time.
This function returns the applied view object or undefined if anything goes wrong.

geolayers3.removeMapcompControlKeys(comp)
Removes all keyframes from the Latitude, Longitude, Zoom, Bearing and Pitch controls of the specified Mapcomp.
Arguments:
  • comp: A Mapcomp name, Mapcomp or comp that contains a Mapcomp

geolayers3.getMapcomps()
Returns all mapcomps of the project.

geolayers3.getMapcompAnchor(mapcomp)
Returns the mapcomp's anchor layer in their containing comp.
Arguments:
  • mapcomp: A Mapcomp name, Mapcomp or comp that contains a Mapcomp

geolayers3.getLabelTemplateComps()
Returns the projects Label Template Compostioions or an empty Array.

geolayers3.addLabel(comp, labelTemplateComp, labelData)
Use it to add Labels to Mapcomps.
Arguments:
  • comp: A Mapcomp name, Mapcomp or comp that contains a Mapcomp
  • labelTemplateComp: A composition, label template name or an integer representing the number of the label template in the project.
  • labelData: An object with the following required float properties: "latitude" or "lat" and "longitude" or "lon" plus the string properties the label template requires like "name" ect.
This function returns the label layer or undefined if anything goes wrong.

geolayers3.updateLabelData(labelLayer, newLabelData)
Use it to update data in already created Template Labels.
Arguments:
  • labelLayer: A Label Layer
  • newLabelData: An object with the string properties the label template requires like "name" ect.
This function returns the label layer or undefined if anything goes wrong.

geolayers3.getLayersGeoPosition(layer)
Use it to get longitude and latitude of a layer in relation to a Mapcomp.
Arguments:
  • layer: A layer in a mapcomps containing comp
This function returns an array [longitude, latitude] or undefined if anything goes wrong.

geolayers3.fetchText(url, callback[, initObject])
Hit an url and get back the response as text.
Arguments:
  • url: The url you want to fetch.
  • callback: A function(error, data) that is called async when the response has been processed.
  • initObject: Please search the fetch API docs for the init object.
Note that this is an async function. Means that any scripting that has to be done after the request needs to be placed inside the callback function. It takes an error as the first and the responded data as the second argument and is called after the response has been processed.

geolayers3.fetchJson(url, callback[, initObject])
A quick way to hit json apis.
Arguments:
  • url: The url you want to fetch.
  • callback: A function(error, data) that is called async when the response has been processed.
  • initObject: Please search the fetch API docs for the init object.
Note that this is an async function. Means that any scripting that has to be done after the request needs to be placed inside the callback function. It takes an error as the first and the responded data as the second argument and is called after the response has been processed.

geolayers3.geocode(searchString, callback[, options])
A quick way to geocode a string. Pretty much the same as if you would type it into the searchbar.
Arguments:
  • searchString: The search term or address you want to geocode.
  • callback: A function(error, features) that is called async when the response has been processed.
  • options: An options object with the following possible ISO639 string property: "language". By default the selected Mapcomp's setting will be used.
Note that this is an async function. Means that any scripting that has to be done after the request needs to be placed inside the callback function. It takes an error as the first and an array of geojson features as the second argument and is called after the response has been processed. This function uses OpenStreetMap Nominatim search engine. You shouldn't bulk geocode placenames. The geolayers scripting api will queue multiple requests at the same time according to the Nominatim usage policy.

geolayers3.watch(fileOrFolder, callback[, options])
Watches a file or folder for changes. If a file or folder is allready being watched it will be canceled.
Arguments:
  • fileOrFolder: A File or Folder object to watch.
  • callback: A function(file) or function(changedFilesInFolder, allFilesInFolder) that is called each time the file or a file in the folder changes. If the scripting api is busy finalizing(or any other async method) the function will be called after the next interval.
  • options: An options object with the following possible integer property: "interval" which is the intervall between the checks in ms defaults to 10000.

geolayers3.watchCsv(csvFile, callback[, options])
Watches a file or folder for changes. If a file or folder is allready being watched it will be canceled.
Arguments:
  • csvFile: A File object referencing a .csv, .tsv or .txt file to watch.
  • callback: A function(changedRows, allRows) that is called each time the csv file changes. If the scripting api is busy finalizing(or any other async method) the function will be called after the next interval.
  • options: An options object with the following possible properties: "interval" integer which is the intervall between the checks in ms, defaults to 10000. "delimiter" string used to split values of the file, defaults to ",".

geolayers3.unwatch()
Stops the current watch task.

geolayers3.addToBrowser(addObj, [callback[, options]])
Adds fretures to the browser even from a file, a geocoding request, an overpass api query or a geojson object.
Arguments:
  • addObj: Can be one of the following objects:
    • ExtendScript File object referencing a geospatial file
    • Url to a geospatial file. The url should contain the file extension.
    • geojson object
    • {
      type: "geocode",
      query: "Term to geocode"
      }
    • {
      type: "overpass",
      query: "Overpass query"
      }
    • {
      type: "osm",
      id: "OpenStreetMap Id (something like node1234 or way4321 or rel1243)"
      }
    • {
      type: "geojsonurl",
      url: "Url to geojson"
      }
  • callback: A function(error, data) that is called after the data has been imported to the browser.
  • options: An options object with the following possible properties:
    • returnData boolean: Set to true to return the data in the callback, defaults to false since this can be very slow for larger features.
    • pointGeometries boolean: Return the Feature as a Point representation, which is way faster for complex Geometries.
    • normalizeToFeatureArray boolean: Return an Array of Features instead of possible nested Feature Collections.
    • name string: A name for the root feature or feature collection that is imported.
    • namingProp string: The property that should be used to name all imported features.

geolayers3.clearBrowser([callback])
Removes all features but the favorites from the browser.
Arguments:
  • callback: A function(error, data) that is called after the browser has been cleared.

geolayers3.removeBrowserSelection([callback])
Removes selected features from the browser.
Arguments:
  • callback: A function(error, data) that is called after features have been removed.

geolayers3.getBrowserSelection([callback[, options]])
Get features that are selected in the browser.
Arguments:
  • callback: A function(error, data) with an Array of selected features as data.
  • options: An options object with the following possible properties:
    • fullGeometry boolean: Set to true to return the features full geometry instead of just a point. This can be very slow for large geometries.

geolayers3.drawBrowserSelection(comp, [callback[, options]])
Draws features which are selected in the browser of the GEOlayers 3 panel to a Mapcomp.
Arguments:
  • comp: A Mapcomp name, Mapcomp or comp that contains a Mapcomp
  • callback: A function(error, data) that is called after the data has been drawn.
  • options: An options object with the following possible properties:
    • shapeLayerStyle: an index number, name or shape layer style object
    • drawInsideMapcomp: defaults to false
    • autoStrokeWidth: defaults to false
    • simplify: defaults to true
    • simplyfyByZoomRange: defaults to false
    • simplificationZoomOffset: defaults to 0
    • useTopoSimplificationIfPossible: defaults to false
    • individualLayers: defaults to false
    • autoChangeRenderer: defaults to false
    • addTrimPaths: defaults to false
    • duration: defaults to 10
    • dateBorderCopy: defaults to false
    • dashThreshold: defaults to 1
    • absoluteZScale: defaults to false
    • castsShadows: defaults to false
    • acceptsShadows: defaults to false
    • lockLayerTransforms: defaults to false

geolayers3.draw(comp, addObj, [callback[, options]])
Draws features to a Mapcomp. Features are specified with an addObj like in the .addToBrowser() method.
Arguments:
  • comp: A Mapcomp name, Mapcomp or comp that contains a Mapcomp
  • addObj: Can be one of the following objects:
    • ExtendScript File object referencing a geospatial file
    • Url to a geospatial file. The url should contain the file extension.
    • geojson object
    • {
      type: "geocode",
      query: "Term to geocode"
      }
    • {
      type: "overpass",
      query: "Overpass query"
      }
    • {
      type: "osm",
      id: "OpenStreetMap Id (something like node1234 or way4321 or rel1243)"
      }
    • {
      type: "geojsonurl",
      url: "Url to geojson"
      }
  • callback: A function(error, data) that is called after the data has been drawn.
  • options: An options object with the following possible properties:
    • shapeLayerStyle: an index number, name or shape layer style object
    • drawInsideMapcomp: defaults to false
    • autoStrokeWidth: defaults to false
    • simplify: defaults to true
    • simplyfyByZoomRange: defaults to false
    • simplificationZoomOffset: defaults to 0
    • useTopoSimplificationIfPossible: defaults to false
    • individualLayers: defaults to false
    • autoChangeRenderer: defaults to false
    • addTrimPaths: defaults to false
    • duration: defaults to 10
    • dateBorderCopy: defaults to false
    • dashThreshold: defaults to 1
    • absoluteZScale: defaults to false
    • castsShadows: defaults to false
    • acceptsShadows: defaults to false
    • lockLayerTransforms: defaults to false

geolayers3.filesInDir(folder[, filterRegEx[, includeSubDirectories]])
Returns File objects of all Files in the given folder matching the filter regular expression. It can also include sub directories.
Arguments:
  • folder: Extend Script Folder Object.
  • filterRegEx: Regular expression to test on the file name.
  • includeSubDirectories: Boolean, set to true to include files from sub directories.
Returns a string.

geolayers3.readFile(file[, encoding])
Reads the contents of a file.
Arguments:
  • file: Extend Script File Object or filename string.
  • encoding: String, defaults to UTF8. For details check out the Extend Script Tools Guide
Returns a string.

geolayers3.readFileCsv(file[, encoding])
Reads the contents of a .csv or .tsv file.
Arguments:
  • file: Extend Script File Object or filename string.
  • encoding: String, defaults to UTF8. For details check out the Extend Script Tools Guide
Returns an Array of rows where each row is an Array of columns.

geolayers3.readFileJson(file[, encoding])
Reads the contents .json file.
Arguments:
  • file: Extend Script File Object or filename string.
  • encoding: String, defaults to UTF8. For details check out the Extend Script Tools Guide
Returns a JavaScript Object.

geolayers3.writeFile(file, content[, encoding])
Writes a file to disk.
Arguments:
  • file: Extend Script File Object or filename string.
  • content: String to write to the file.
  • encoding: String, defaults to UTF8. For details check out the Extend Script Tools Guide

geolayers3.userFolder()
Returns a Folder Object referencing the GEOlayers User Folder.

geolayers3.userFile(fileName)
Returns a File Object referencing a File with the fileName inside the GEOlyers User Folder.
Arguments:
  • fileName: File 'basename.extension' string.

geolayers3.modalEditObject(obj, callback[, options])
Use the GEOlayers 3 UI to edit properties of a simple flat javascript object. It can handle strings, numbers and booleans.
Arguments:
  • obj: A simple flat object to edit like: {name: "New York", id: 12, selected: true}
  • callback: A function(error, editedObj) that is called after the user applied his edits or canceled.
  • options: An options object with the following possible string properties: "title", "message" Both to be displayed in the UI.

geolayers3.modalActions(actions, callback[, options])
Use the GEOlayers 3 UI to let the user choose one of a certain number of actions.
Arguments:
  • actions: An array of strings to be displayed as buttons
  • callback: A function(error, actionsIndex) that is called after the user clicked one of your action buttons or canceled. The index of the action in the actions array or undefined in case he canceled will be returned as actionsIndex.
  • options: An options object with the following possible string properties: "title", "message" Both to be displayed in the UI.

geolayers3.githubBrowser([options])
Show a panel in which you can browse GitHub Repos and perform actions like importing files from it.
Arguments:
  • options: An object that can have the following properties and methods:
    • title (String) panel title
    • defaultUser (String) initial GitHub username
    • defaultRepo (String) initial GitHub repository name
    • fixedRepo (Boolean) allow the user to change github user and repo or not
    • flatten (Boolean) initial Flatten folders value
    • filterText (String) initial text for the browsers filter bar
    • actionBtnText (String) text to display the button that triggers the action callback, defaults to "Import to GEOlayers"
    • actionFilter (Function) filter function(item) that should return true if the item is suitable for the action callback, defaults to accepting geojson files
    • action (Function) function(item, url) to be performed as the user clicks the action button, defaults to importing it the Feature Browser

MapTiler Data

Some functions of GEOlayers are only possible because we partnered with MapTiler as a data provider.

This partnership allows us to provide these features:

  • Stylized Mapcomp Imagery (The imagery styles with the MapTiler icon)
  • Find Features by clicking the preview map
  • Mapcomp labels in different languages
  • Watermask Mapcomps from the toolbar
  • Feature import for the current view to the browser
  • Drawing 3D buildings from the toolbar

After the free trial to check it out you'll need a Flex plan on MapTiler Cloud to enable these features.

You can of course use GEOlayers without it.

Disclaimer

The terms of use of the map service providers apply. Content must be attributed unless otherwise agreed with the map service provider.

GEOlayers cannot ensure that every tileserver, geocoding-service, or other external geodata source work properly all the time. Certain functions will not work if remote servers are down, which are out of our control.

The creators of GEOlayers are not responsible for the topicality, correctness, completeness, or quality of the information provided or acquired with this software from the aforementioned exernal map service providers. GEOlayers cannot be held liable for damages caused by the use of any information provided, including any kind of information which is incomplete or incorrect. All offers are unbinding and without obligation.

The creators of GEOlayers do not claim any ownership or license for the images and data you acquire with this software from any map service provider.