---
title: "Datasets and layers in MangoMap"
description: "A dataset is your data; a layer is that data on one map. One upload can feed many maps, and a dataset that a map uses cannot be deleted."
sidebar:
  label: "Datasets and layers"
---

In MangoMap, your data and its map appearance are separate: a **dataset** is the data itself, and a **layer** is that data drawn on a particular map. This split explains why one upload can appear on many maps, why restyling one map leaves another unchanged, and why some datasets cannot be deleted.

## A dataset is your data; a layer is that data on a map

A **dataset** is one copy of your data in the account library, in the `Data portal`. It holds the raw content — the rows and their attributes, and the geometry — and it belongs to the account, not to any one map. You create a dataset by [importing a file](/docs/importing-data/concepts-importing-data); from then on it's available to every map in the account.

A **layer** is a dataset placed on one specific map. The layer doesn't hold a second copy of the data — it points back at the dataset and adds a set of *presentation* choices that apply only to that map: how the features are styled, what their popups show, how attributes are formatted and labelled, whether the layer is visible by default, where it sits in the draw order, which zoom levels it appears at, and whether it shows in the legend.

In short: the dataset is *what*; the layer is *how it looks here*.

## One dataset, many layers

One dataset can be drawn on as many maps as you like, and each map's layer styles it independently. The relationship runs one way: a layer always points at exactly one dataset, but a dataset can sit behind any number of layers across any number of maps — or none at all, while it waits unused in your library.

A dataset's page in the `Data portal` lists the maps that draw it under `Used in maps`:

<img src="/_assets/importing-data/concepts-datasets-and-layers--used-in-maps.png" alt="World Countries dataset page with Type POLYGON, Records 177, and Used in maps (2) listing World Atlas and World Classification Lab, beside a map preview of the data" width="1600" height="960" />

You can even put the same dataset on the *same* map twice. The `Duplicate Layer` action in the layer panel creates a second layer over the same dataset, copying the first layer's settings so you can then style or filter it differently — handy when you want to show, say, the same parcels coloured by zoning in one layer and by value in another. See [Layer panel controls](/docs/managing-layers/layer-panel-reference).

## What belongs to the dataset, and what belongs to the layer

Because one dataset can feed many layers, MangoMap keeps each property in the right place. Before you change something, check whether it lives on the dataset, which every map shares, or on one map's layer:

<!-- diagram:datasets-and-layers-model -->
<svg class="dark:hidden" style="width: 100%; height: auto" viewBox="0 0 640 392" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="datasets-and-layers-model-inline-title datasets-and-layers-model-inline-desc">
  <title id="datasets-and-layers-model-inline-title">One dataset, many layers</title>
  <desc id="datasets-and-layers-model-inline-desc">Data model: one dataset holds the rows and attributes, the geometry and its type, and file updates and sync, and it feeds one layer on each of several maps; each layer keeps its own style, popup, attribute formatting, visibility, order, folder and zoom range, so editing features or updating the file reaches every map, while restyling or changing a popup changes one layer only.</desc>
  <defs>
    <marker id="datasets-and-layers-model-inline-arrow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#525252"/></marker>
    <marker id="datasets-and-layers-model-inline-arrow-accent" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#c4360c"/></marker>
  </defs>
  <rect width="100%" height="100%" fill="#f5f5f5"/>
  <rect x="16" y="172" width="192" height="204" rx="8" fill="rgba(23,23,23,0.04)" stroke="rgba(23,23,23,0.12)" stroke-width="1"/><rect x="28" y="164" width="44" height="16" rx="2" fill="#f5f5f5"/><text x="50" y="176" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">MAP 1</text>
  <rect x="224" y="172" width="192" height="204" rx="8" fill="rgba(23,23,23,0.04)" stroke="rgba(23,23,23,0.12)" stroke-width="1"/><rect x="236" y="164" width="44" height="16" rx="2" fill="#f5f5f5"/><text x="258" y="176" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">MAP 2</text>
  <rect x="432" y="172" width="192" height="204" rx="8" fill="rgba(23,23,23,0.04)" stroke="rgba(23,23,23,0.12)" stroke-width="1"/><rect x="444" y="164" width="44" height="16" rx="2" fill="#f5f5f5"/><text x="466" y="176" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">MAP 3</text>
  <path d="M168 76 L214 76" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#datasets-and-layers-model-inline-arrow)"/>
  <path d="M268 136 L268 148 Q268 156 260 156 L120 156 Q112 156 112 164 L112 198" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#datasets-and-layers-model-inline-arrow)"/>
  <path d="M320 136 L320 198" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#datasets-and-layers-model-inline-arrow)"/>
  <path d="M372 136 L372 148 Q372 156 380 156 L520 156 Q528 156 528 164 L528 198" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#datasets-and-layers-model-inline-arrow)"/>
  <path d="M584 102 L584 198" fill="none" stroke="#525252" stroke-width="1.2" marker-end="url(#datasets-and-layers-model-inline-arrow)"/>
  <rect x="472" y="112" width="104" height="16" rx="2" fill="#f5f5f5"/><text x="524" y="124" fill="#525252" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">ONE LAYER ONLY</text>
  <rect x="16" y="50" width="152" height="52" rx="20" fill="rgba(23,23,23,0.04)" stroke="rgba(23,23,23,0.32)" stroke-width="1"/><text x="92" y="73" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Edit features</text><text x="92" y="91" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">or update the file</text>
  <rect x="472" y="50" width="152" height="52" rx="20" fill="rgba(23,23,23,0.04)" stroke="rgba(23,23,23,0.32)" stroke-width="1"/><text x="548" y="73" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Restyle a layer</text><text x="548" y="91" fill="#525252" font-size="12" font-family="inherit" text-anchor="middle">or change its popup</text>
  <rect x="216" y="16" width="208" height="120" rx="6" fill="#f5f5f5"/><rect x="216" y="16" width="208" height="120" rx="6" fill="rgba(196,54,12,0.08)" stroke="#c4360c" stroke-width="1.4"/><line x1="216" y1="64" x2="424" y2="64" stroke="rgba(23,23,23,0.12)" stroke-width="1"/><text x="232" y="38" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Dataset</text><text x="232" y="55" fill="#525252" font-size="12" font-family="inherit" text-anchor="start">shared by every layer</text><text x="232" y="84" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Rows and attributes</text><text x="232" y="104" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Geometry and its type</text><text x="232" y="124" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">File updates and sync</text>
  <rect x="28" y="200" width="168" height="160" rx="6" fill="#f5f5f5"/><rect x="28" y="200" width="168" height="160" rx="6" fill="#ffffff" stroke="#171717" stroke-width="1"/><line x1="28" y1="248" x2="196" y2="248" stroke="rgba(23,23,23,0.12)" stroke-width="1"/><text x="44" y="222" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Layer</text><text x="44" y="239" fill="#525252" font-size="12" font-family="inherit" text-anchor="start">points at the dataset</text><text x="44" y="268" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Style and labels</text><text x="44" y="288" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Popup</text><text x="44" y="308" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Attribute formatting</text><text x="44" y="328" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Visibility and order</text><text x="44" y="348" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Folder and zoom range</text>
  <rect x="236" y="200" width="168" height="160" rx="6" fill="#f5f5f5"/><rect x="236" y="200" width="168" height="160" rx="6" fill="#ffffff" stroke="#171717" stroke-width="1"/><line x1="236" y1="248" x2="404" y2="248" stroke="rgba(23,23,23,0.12)" stroke-width="1"/><text x="252" y="222" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Layer</text><text x="252" y="239" fill="#525252" font-size="12" font-family="inherit" text-anchor="start">points at the dataset</text><text x="252" y="268" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Style and labels</text><text x="252" y="288" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Popup</text><text x="252" y="308" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Attribute formatting</text><text x="252" y="328" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Visibility and order</text><text x="252" y="348" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Folder and zoom range</text>
  <rect x="444" y="200" width="168" height="160" rx="6" fill="#f5f5f5"/><rect x="444" y="200" width="168" height="160" rx="6" fill="#ffffff" stroke="#171717" stroke-width="1"/><line x1="444" y1="248" x2="612" y2="248" stroke="rgba(23,23,23,0.12)" stroke-width="1"/><text x="460" y="222" fill="#171717" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Layer</text><text x="460" y="239" fill="#525252" font-size="12" font-family="inherit" text-anchor="start">points at the dataset</text><text x="460" y="268" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Style and labels</text><text x="460" y="288" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Popup</text><text x="460" y="308" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Attribute formatting</text><text x="460" y="328" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Visibility and order</text><text x="460" y="348" fill="#171717" font-size="12" font-family="inherit" text-anchor="start">Folder and zoom range</text>
</svg>
<svg class="hidden dark:block" style="width: 100%; height: auto" viewBox="0 0 640 392" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="datasets-and-layers-model-inline-dark-title datasets-and-layers-model-inline-dark-desc">
  <title id="datasets-and-layers-model-inline-dark-title">One dataset, many layers</title>
  <desc id="datasets-and-layers-model-inline-dark-desc">Data model: one dataset holds the rows and attributes, the geometry and its type, and file updates and sync, and it feeds one layer on each of several maps; each layer keeps its own style, popup, attribute formatting, visibility, order, folder and zoom range, so editing features or updating the file reaches every map, while restyling or changing a popup changes one layer only.</desc>
  <defs>
    <marker id="datasets-and-layers-model-inline-dark-arrow" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#a3a3a3"/></marker>
    <marker id="datasets-and-layers-model-inline-dark-arrow-accent" markerWidth="8" markerHeight="6" refX="7" refY="3" orient="auto"><polygon points="0 0, 8 3, 0 6" fill="#ff7a4d"/></marker>
  </defs>
  <rect width="100%" height="100%" fill="#141414"/>
  <rect x="16" y="172" width="192" height="204" rx="8" fill="rgba(242,242,242,0.05)" stroke="rgba(242,242,242,0.14)" stroke-width="1"/><rect x="28" y="164" width="44" height="16" rx="2" fill="#141414"/><text x="50" y="176" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">MAP 1</text>
  <rect x="224" y="172" width="192" height="204" rx="8" fill="rgba(242,242,242,0.05)" stroke="rgba(242,242,242,0.14)" stroke-width="1"/><rect x="236" y="164" width="44" height="16" rx="2" fill="#141414"/><text x="258" y="176" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">MAP 2</text>
  <rect x="432" y="172" width="192" height="204" rx="8" fill="rgba(242,242,242,0.05)" stroke="rgba(242,242,242,0.14)" stroke-width="1"/><rect x="444" y="164" width="44" height="16" rx="2" fill="#141414"/><text x="466" y="176" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">MAP 3</text>
  <path d="M168 76 L214 76" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#datasets-and-layers-model-inline-dark-arrow)"/>
  <path d="M268 136 L268 148 Q268 156 260 156 L120 156 Q112 156 112 164 L112 198" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#datasets-and-layers-model-inline-dark-arrow)"/>
  <path d="M320 136 L320 198" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#datasets-and-layers-model-inline-dark-arrow)"/>
  <path d="M372 136 L372 148 Q372 156 380 156 L520 156 Q528 156 528 164 L528 198" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#datasets-and-layers-model-inline-dark-arrow)"/>
  <path d="M584 102 L584 198" fill="none" stroke="#a3a3a3" stroke-width="1.2" marker-end="url(#datasets-and-layers-model-inline-dark-arrow)"/>
  <rect x="472" y="112" width="104" height="16" rx="2" fill="#141414"/><text x="524" y="124" fill="#a3a3a3" font-size="10" font-weight="600" letter-spacing="0.1em" font-family="inherit" text-anchor="middle">ONE LAYER ONLY</text>
  <rect x="16" y="50" width="152" height="52" rx="20" fill="rgba(242,242,242,0.05)" stroke="rgba(242,242,242,0.34)" stroke-width="1"/><text x="92" y="73" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Edit features</text><text x="92" y="91" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">or update the file</text>
  <rect x="472" y="50" width="152" height="52" rx="20" fill="rgba(242,242,242,0.05)" stroke="rgba(242,242,242,0.34)" stroke-width="1"/><text x="548" y="73" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="middle">Restyle a layer</text><text x="548" y="91" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="middle">or change its popup</text>
  <rect x="216" y="16" width="208" height="120" rx="6" fill="#141414"/><rect x="216" y="16" width="208" height="120" rx="6" fill="rgba(255,122,77,0.10)" stroke="#ff7a4d" stroke-width="1.4"/><line x1="216" y1="64" x2="424" y2="64" stroke="rgba(242,242,242,0.14)" stroke-width="1"/><text x="232" y="38" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Dataset</text><text x="232" y="55" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="start">shared by every layer</text><text x="232" y="84" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Rows and attributes</text><text x="232" y="104" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Geometry and its type</text><text x="232" y="124" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">File updates and sync</text>
  <rect x="28" y="200" width="168" height="160" rx="6" fill="#141414"/><rect x="28" y="200" width="168" height="160" rx="6" fill="#1c1c1c" stroke="#f2f2f2" stroke-width="1"/><line x1="28" y1="248" x2="196" y2="248" stroke="rgba(242,242,242,0.14)" stroke-width="1"/><text x="44" y="222" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Layer</text><text x="44" y="239" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="start">points at the dataset</text><text x="44" y="268" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Style and labels</text><text x="44" y="288" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Popup</text><text x="44" y="308" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Attribute formatting</text><text x="44" y="328" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Visibility and order</text><text x="44" y="348" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Folder and zoom range</text>
  <rect x="236" y="200" width="168" height="160" rx="6" fill="#141414"/><rect x="236" y="200" width="168" height="160" rx="6" fill="#1c1c1c" stroke="#f2f2f2" stroke-width="1"/><line x1="236" y1="248" x2="404" y2="248" stroke="rgba(242,242,242,0.14)" stroke-width="1"/><text x="252" y="222" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Layer</text><text x="252" y="239" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="start">points at the dataset</text><text x="252" y="268" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Style and labels</text><text x="252" y="288" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Popup</text><text x="252" y="308" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Attribute formatting</text><text x="252" y="328" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Visibility and order</text><text x="252" y="348" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Folder and zoom range</text>
  <rect x="444" y="200" width="168" height="160" rx="6" fill="#141414"/><rect x="444" y="200" width="168" height="160" rx="6" fill="#1c1c1c" stroke="#f2f2f2" stroke-width="1"/><line x1="444" y1="248" x2="612" y2="248" stroke="rgba(242,242,242,0.14)" stroke-width="1"/><text x="460" y="222" fill="#f2f2f2" font-size="14" font-weight="600" font-family="inherit" text-anchor="start">Layer</text><text x="460" y="239" fill="#a3a3a3" font-size="12" font-family="inherit" text-anchor="start">points at the dataset</text><text x="460" y="268" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Style and labels</text><text x="460" y="288" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Popup</text><text x="460" y="308" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Attribute formatting</text><text x="460" y="328" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Visibility and order</text><text x="460" y="348" fill="#f2f2f2" font-size="12" font-family="inherit" text-anchor="start">Folder and zoom range</text>
</svg>
<!-- /diagram:datasets-and-layers-model -->

The **dataset** owns everything about the data itself: the attribute columns and their values, the geometry, and the connection used to keep it current (file updates and sync). These are shared by every layer drawn from it.

The **layer** owns everything about presentation on its map: the [style](/docs/styling-layers/concepts-layer-styling), the [popup](/docs/configuring-popups/concepts-popups), [attribute formatting](/docs/formatting-attributes/concepts-attribute-formatting), visibility, draw order, folder membership, zoom range, legend behaviour, and any filter applied to it. None of these are shared — they're per-map.

## Why the split matters

This split explains these results:

- **Editing data changes it everywhere.** Editing a feature's attributes or geometry writes to the *dataset*, so every layer on every map that uses it shows the change the next time the map loads. See [How feature editing works](/docs/editing-features/concepts-feature-editing).
- **Updating the file flows through to every layer.** When you replace a dataset with a new file or sync it, the data changes for all its layers at once; their styling and popups stay exactly as you set them. See [How data updates work](/docs/data-updates/concepts-data-updates).
- **Restyling is local.** Changing a layer's colours, popup, or visibility affects that layer only. The same dataset on another map is untouched — that's the whole point of keeping presentation on the layer.
- **Removing a layer keeps the data.** Deleting a layer takes it off that one map; the dataset stays in your library and any other maps using it are unaffected. See [How to remove a layer from a map](/docs/managing-layers/remove-a-layer).
- **You can't delete a dataset that's still in use.** Because layers depend on it, MangoMap won't delete a dataset while any layer references it — it tells you how many layers and maps still use the dataset and asks you to remove those layers first. This protects every map that draws on the data.

To change the geometry type, import the data again. See [How importing data works](/docs/importing-data/concepts-importing-data).

## Common confusions

**"I restyled my data on one map — did it change my other maps?"** No. Style lives on the layer, so it's per-map. Other maps using the same dataset keep their own styling.

**"I deleted the layer but the dataset is still there."** That's expected — they're independent. To remove the data itself, delete the dataset from the `Data portal`.

**"Why won't it let me delete my dataset?"** A layer somewhere still uses it. Remove the layer (or layers) from the maps it names, then delete the dataset.

## Related

- [How importing data works in MangoMap](/docs/importing-data/concepts-importing-data)
- [How the layer panel works in MangoMap](/docs/managing-layers/concepts-layer-panel)
- [How to remove a layer from a map](/docs/managing-layers/remove-a-layer)
- [Glossary](/docs/getting-started/glossary)
