How CARTO works
What is CARTO?
CARTO is the platform for building powerful Location Intelligence applications using the best data streams available. What does that mean? It means CARTO is here to help you to build an app that allows users to visualize, analyze, and gain insights using your own data, as well as to enrich your understanding with our available data streams.
Why do you need this?
This article is for you if:
✅ You’re a new CARTO user
✅ You’re an experienced user but you want an overview of CARTO’s offering
✅ You’re not sure if CARTO is the right option for you
How Data works with CARTO
CARTO stores your data as a dataset, which is a PostgreSQL database table. CARTO datasets occupy storage space in your account, meaning that the number of datasets that you can have in your account depends on the amount of data occupied by the different datasets.
A dataset is created when you import a file into your CARTO account using Builder UI or the CARTO Import API or when you create a table using a SQL query. Datasets are also created when you import a database table into CARTO using the CARTO database connectors.
The CARTO datasets have 3 main fields that are added automatically when a file is uploaded into CARTO:
cartodb_id
: primary key of the dataset, it has unique values and it can’t be null.the_geom
: field where the geometries (points, lines, or polygons) are stored in the CARTO dataset. The geometries must be in the projection EPSG:4326.the_geom_webmercator
: this field is hidden in the dataset, and it stores the geometries in the projection EPSG:3857, this field is used to render the geometries on the map.
If you’re curious about the projection used in CARTO, take a look at this guide! :)
The CARTO datasets can be used to:
- Explore or modify the data using SQL queries
- Build maps in Builder
- Build apps using CARTO.js or CARTO VL
- Further analyze your data using the CARTOframes library
Designing Maps
Maps in CARTO can be built with a varied look and feel, using different libraries (CARTO.js, CARTO VL) or tools (Builder). with different audiences in mind. Two main elements, however, are required to build a map in CARTO: style properties
and data
.
When a CARTO map is opened, CARTO accesses the data from the dataset or datasets that you select behind the scenes, then style is defined to visualize the data on the map. This mixture of data and styling creates the layer of the map that’s rendered when the map is loaded.
For example, in Builder you can create a map from one or more datasets, where the map will have one or more layers (where each layer will share the name of the corresponding dataset), and using CARTO.js or CARTO VL, the layers (data and styling) are defined programmatically. In all cases the map
needs one layer
at minimum to render the data, and each layer needs the data
and the style properties
to work correctly.
Datasets and maps are different but related elements. If you remove a map, the layers of the map will be removed, but the dataset will be kept in your account. However, if you delete a dataset, the map that was created from that dataset will be removed as well.
In order to learn more about building maps in CARTO, take a look at the Building Maps section of our Help Center.
Using your Data
You can explore or modify the data in your datasets using SQL queries.
Besides the data that you’ve uploaded into your CARTO account, you can also enrich your datasets with data that comes from our Data Observatory, Data Library or using our data services (geocoding, isolines, or routing).
In order to geocode or create isolines, you can use Builder or the CARTO Data Services API. In order to use the routing offering in CARTO, you would need to use the CARTO Data Services API.
You can find further information about how to geocode or create isolines in Builder in the tutorials section of the Help Center.
Besides the Data Observatory and Data Library, we offer premium data via third-party data streams in order to further enrich your applications. These data offerings are detailed here.
Developing Apps
CARTO provides different tools and libraries to help you build your own Location Intelligence applications. At this moment the different options to develop apps are:
- CARTO.js: a JavaScript library that interacts with different CARTO APIs to build custom apps with raster rendering.
- CARTO VL: a JavaScript library that interacts with different CARTO APIs to build custom apps leveraging vector rendering.
- Airship: a set of tools designed to facilitate the development of Location Intelligence apps by offering layouts, basic patterns, templates, CSS classes, components, widgets, and much more.
- CARTOFrames: a Python package for integrating CARTO maps, analysis, and data services into data science workflows.
- Python SDK: a wrapper of the CARTO API’s designed to prepare, upload, analyze, and enrich your data.
- Mobile SDK: to build mobile apps.
- CARTO APIs: the gateway to all the services CARTO provides.
- Data Observatory: provides access to a catalogue of curated datasets, and enables you to apply that data to your own datasets.
If you want to learn more about the options that CARTO offers to develop your application, we would recommend exploring our Developer Center, where you can find detailed information about the different tools and libraries that CARTO offers.
What’s next
That’s all for this little overview around what CARTO can offer. In order to keep learning about CARTO, we recommend reading through additional sections of the Help Center.