# Data sources

Last updated:

<!-- -->

October 13, 2026

<!-- -->

\| 10 minutes read

<br />

<br />

A data source is your own set of points, lines or areas, uploaded from a file or drawn on the map. Studio saves it to your account, the server cuts it into tiles, and a layer in your style draws it.

## Step by step[​](#step-by-step "Direct link to Step by step")

### Upload a file and use it on the map[​](#upload-a-file-and-use-it-on-the-map "Direct link to Upload a file and use it on the map")

1. On the Layers screen, open **Available Layers › Data Sources Layers** and click **+ Add** on the CUSTOM row. A new data source opens in the Properties column.
2. Type a name for it in the name field.
3. Click **Upload a data file**, then drop your file on the dropzone or click it to browse. When the panel says the file was parsed, click **Append**.
4. Click **Save**. The status line shows "◌ Tiling…", then "✔ Tiled — drag it into Selected Layers to use it."
5. Drag the source's row from CUSTOM into Selected Layers. A layer named after the source is added and selected, and the map moves to your data.
6. Style the new layer in the Properties column like any other layer.

### Add a property and use it as a label[​](#add-a-property-and-use-it-as-a-label "Direct link to Add a property and use it as a label")

1. Select the data source and click a feature in the FEATURES list.
2. On the feature's card, click **Add new property**, type a name such as `name` and a value, and click **Confirm**.
3. Click **Save** and wait for "✔ Tiled".
4. Select the layer that draws the source. On a symbol layer, the Text Field editor now offers `name` under "Fields on this layer's data"; the Data Filter tab offers it too.

### Delete a data source[​](#delete-a-data-source "Direct link to Delete a data source")

1. Right-click its row in CUSTOM and choose **Delete…**.
2. If layers in the style draw from it, leave **Also delete the layer…** ticked to remove them too.
3. Click **Delete**. The data source cannot be restored; `Ctrl+Z` (`⌘Z` on Mac) brings back only the layers.

## What a data source is[​](#what-a-data-source-is "Direct link to What a data source is")

Most of what a style draws is the base map served by Magic Lane; a data source is the part that is yours. It lives in your account, not in the style. Editing it does not mark the style unsaved, does not enter the style's history, and `Ctrl+Z` does not undo it.

A data source holds one kind of feature: points, lines or areas. Until you save it, it exists only in this browser tab. Saving sends it to the server, which cuts it into tiles; only then can a layer draw it.

## The CUSTOM list[​](#the-custom-list "Direct link to The CUSTOM list")

Your data sources are listed under **Available Layers › Data Sources Layers › CUSTOM**. It starts collapsed.

![A saved and tiled data source. The tick means tiling has finished.](/docs/assets/images/available-layers-custom-ff453275c0fc7d685a4a7311435ec648.png)

**A saved and tiled data source. The tick means tiling has finished.**

Each row shows a lock (open for public, closed for private), the name, "IN USE" when the selected layer draws from it, and a status mark: ✔ when tiled, ◌ while tiling, nothing if it was never saved. Click a row to open it in the Properties column.

## The data source panel[​](#the-data-source-panel "Direct link to The data source panel")

**+ Add** creates a draft named after the moment it was made, such as "Data Source 01-10-2026 16:01:54", and opens it.

![A fresh draft. Nothing to save yet, so Save is disabled.](/docs/assets/images/datasource-new-draft-cd34107609ca406eacac344bc388abe6.png)

**A fresh draft. Nothing to save yet, so Save is disabled.**

* **Name**: type to rename. A saved source is renamed on the server by itself, half a second after you stop typing; a draft's name goes with the next Save. An empty name becomes "Untitled".
* **Draft on / Published on**: when the source was last changed, and when tiling last finished.
* **Save**: sends the features to the server and starts tiling.
* **Discard**: goes back to the last saved version. On a source that was never saved it reads **Delete draft**, and a second click on "Delete N features" removes the draft and everything in it, with no undo.
* **Public / Private**: which apps can draw the source; see [Public and private](#public-and-private). New sources start as Public. Under the switch, "Used by 3 layers in this style." counts the layers of this style that draw the source.
* **Status line**: tiling progress, then "✔ Tiled" once the source can be dragged in.

An empty source offers two buttons: **Create on map** opens the drawing tools (see [Drawing on the map](/docs/guides/map-studio/data/drawing-on-the-map.md)), and **Upload a data file** opens the upload panel. "← Back" returns to this choice.

### Public and private[​](#public-and-private "Direct link to Public and private")

The switch decides which apps can draw the source's layers:

* **Public**: the layers draw in any app that shows the style.
* **Private**: the source is served only to API keys from your account. In your own apps its layers draw as usual; in an app that uses someone else's API key they are empty, and nothing reports an error.

While a source used by this style is private, the line under the switch adds "They only draw in apps that use an API key from your account." Before you give the style to a customer or a partner, make the sources it uses public. The Download dialog warns when the style uses a private source; see [Private data sources](/docs/guides/map-studio/getting-started/download-and-use.md#private-data-sources).

## Uploading a file[​](#uploading-a-file "Direct link to Uploading a file")

Drop one file on the dropzone, or click it to browse. Studio reads the format from the file's extension:

* GeoJSON: `.geojson`, `.json` (a FeatureCollection, a single Feature or a bare geometry)
* Line-delimited GeoJSON: `.ndjson`, `.geojsonl`, `.jsonl`
* CSV and TSV: `.csv`, `.tsv`
* KML: `.kml` (Placemarks with points, lines and polygons; name, description and ExtendedData become properties)
* GPX: `.gpx` (waypoints become points; tracks and routes become lines)

**CSV and TSV.** The first row is the header, and every row becomes a point. The separator can be a comma, semicolon, pipe or tab. Studio looks for the coordinates in a column named `latitude`, `lat` or `y` and one named `longitude`, `lon`, `long` or `x`, written all in lower case or all in upper case (`lat` or `LAT`; `Lat` is not recognised). Write coordinates with a decimal point. A file without such columns fails with "Missing coordinates or coordinates format is invalid."

**Size.** We recommend files under 5 MB. Larger files work, but take longer to read and draw: Studio warns "File is very large. This will take some time to render." and waits for you to click **Continue** or **Abort**.

A file that fails the checks shows "This file could not be imported as-is." with the problems numbered, and nothing is imported.

### Append, Replace or Cancel[​](#append-replace-or-cancel "Direct link to Append, Replace or Cancel")

![A parsed file waits for your decision.](/docs/assets/images/upload-parsed-append-replace-e03f6abf06cba27cd6fe5b783a4ef8a1.png)

**A parsed file waits for your decision.**

* **Append** adds the file's features to what the source already holds.
* **Replace** uses the file instead of what the source holds. If the source has features, a second click on "Replace N features" is needed.
* **Cancel** forgets the file.

If the file's features are a different kind from the source's (lines into a source of points, say), only Replace is offered.

After Append or Replace the features are drawn on the map in blue, the map moves to fit them, and Save is enabled.

### A file with several kinds of shape[​](#a-file-with-several-kinds-of-shape "Direct link to A file with several kinds of shape")

A file that mixes points, lines and areas, such as a GPX with a track and waypoints, becomes one data source per kind. A dialog lists the parts before anything is created, with their names, the layer type that will draw each one and their counts; click **Create two data sources** (or three) to go ahead, or Cancel.

The parts are named after the file, for example "Utrecht Mixed Geometry · Areas", "· Lines" and "· Points". In CUSTOM they share one row with a badge and a caret. Collapsed, the row is dragged, renamed and deleted as one; expanded, each part can be used on its own. Renaming a part away from the "name · Areas" pattern makes it a separate row.

## Saving and tiling[​](#saving-and-tiling "Direct link to Saving and tiling")

Click **Save**. A notice says tiling has started, and the status line and the row show ◌. When the server finishes, the status becomes "✔ Tiled" and a notice says the source is ready. If tiling has not finished after ten minutes, Studio stops waiting and suggests reloading the page to check again.

![A tiled source, ready to be dragged in.](/docs/assets/images/datasource-tiled-400e9b32fca58902adef10d36367414f.png)

**A tiled source, ready to be dragged in.**

Saving an edited source keeps its tileset, and layers that draw it reload with the new data.

## Adding it to the style[​](#adding-it-to-the-style "Direct link to Adding it to the style")

Drag the tiled row from CUSTOM into Selected Layers, as with any layer (see [The layer list](/docs/guides/map-studio/editing/layer-tree.md)). A row that is not tiled yet cannot be dragged in; a notice says to save it or wait for tiling.

![The new layer is selected and named after the source, and the source row is marked IN USE.](/docs/assets/images/datasource-layer-added--data-sources-3e301b32f5cceb231010453ffe77ef2b.png)

**The new layer is selected and named after the source, and the source row is marked IN USE.**

The layer's type follows the shapes: points become **Symbol**, lines **Line** and areas **Area**. To draw the data another way, change **Render Type** in the Properties column (see [Render Type](/docs/guides/map-studio/editing/property-panel.md#render-type)). A file split into parts adds one layer per part, in a group named after the source. Right-click the layer later and choose **Zoom to data** to return to the data.

## Features and their properties[​](#features-and-their-properties "Direct link to Features and their properties")

Under the drawing tools, the FEATURES list groups the source's features into Points, Lines and Areas, with counts. Each row shows the feature's `name` property, or "Feature 1", "Feature 2" and so on, and how many properties it has. A long group shows eight rows at a time, with "show 32 more" below. Sources with more than eight features get a **Filter features by name…** box.

![A feature picked from the list. The map centres on it and its card opens below.](/docs/assets/images/datasource-feature-selected-c0eecb5aa854d7879bb1f8cccfc3d863.png)

**A feature picked from the list. The map centres on it and its card opens below.**

Click a row, or click the feature on the map with no drawing tool in hand, to open its card. The card's bin deletes the feature immediately, with no undo. The card has two tabs:

* **Property**: one row per property, with an editable value and a bin. To rename a property, delete it and add it again. **Add new property** asks for a name and a value; a name the feature already has is refused with "Field already exists." Values are stored as text.
* **GeoJSON**: the feature as GeoJSON, read-only.

![Adding a property.](/docs/assets/images/feature-add-property-603f44ddd45efd2c44e37151798e0e91.png)

**Adding a property.**

Every change makes the source unsaved, and properties reach the style only after the next Save and tiling (see [Add a property and use it as a label](#add-a-property-and-use-it-as-a-label)). The map's click popup also lists them, with the `name`, `title` or `label` property as its heading.

## Unsaved changes and deleting[​](#unsaved-changes-and-deleting "Direct link to Unsaved changes and deleting")

**Leaving with unsaved changes.** If you select something else while a source has unsaved changes, Studio asks whether to save them: **Save**, **Discard** (back to the last saved version) or **Cancel** (stay as you are). For a source that was never saved, the middle button reads **Discard & delete**.

**Deleting.** The steps are under [Delete a data source](#delete-a-data-source).

![Keep is focused first, so Enter cannot delete by accident.](/docs/assets/images/datasource-delete-confirm-fb6d6fba865c7fc7872677da90121544.png)

**Keep is focused first, so Enter cannot delete by accident.**

If you untick **Also delete the layer in this style that draws it**, the layers stay, marked "Source deleted", and may stop drawing at any time; delete them or point them at another source. A style must keep at least one layer, so the box is disabled when these are its only layers. On a split file's collapsed row, every part is deleted.

See also: [Drawing on the map](/docs/guides/map-studio/data/drawing-on-the-map.md) · [The layer list](/docs/guides/map-studio/editing/layer-tree.md) · [Put your own data on the map](/docs/guides/map-studio/tutorials/your-own-data.md)
