Modernizing spatial apps in the cloud with CARTO
As the shift to cloud technology continues to gain momentum, many organizations are in the process of migrating their geospatial web applications to a more modern data stack to benefit from unrivaled scalability, flexibility and cost-efficiency gains.
Developers leading such efforts often encounter major challenges when working with spatial data, including the complexity of coding, time-consuming maintenance, and technical barriers to visualizing large datasets. Homegrown projects based on open source tools often lack longer-term viability and require constant, resource-heavy maintenance.
Moreover, these applications also face important performance and scalability issues, unable to cope with the ever growing volumes of data required to surface valuable spatial insights that drive enterprise decision-making.
Our mission at CARTO is to accelerate the development cycle for these cloud-native applications, and to provide developers with the technical resources necessary to guarantee performance and scalability when it comes to integrating, visualizing and interacting with very large spatial datasets hosted in cloud data warehouses. With CARTO, developers can significantly reduce the development and maintenance effort, so they can focus on the core aspects of their business operations.
In this blogpost we will outline how CARTO can provide you with valuable tools to underpin your spatial app development initiatives, and offer practical tips to get you started with spatial application development using our technology. So let’s dive in!
Access the ultimate guide to navigating the new geospatial landscape. Download the free report: Modernizing the Geospatial Analysis Stack today.
Developing geospatial apps can be difficult. Ensuring highly performant visualizations of large amounts of spatial data, keeping data always updated, and even performing spatial analysis on the fly, often requires advanced back-end expertise and specialist geospatial skills… more so when assembling different open-source technologies. Many organizations also face performance challenges when handling and visualizing Big Data, not to mention the high costs involved when using legacy systems.
CARTO provides a complete set of tools for developers creating interactive visualizations and applications using spatial data. These resources drastically reduce development and maintenance timeframes for spatial applications and make the effortless visualization of very large datasets much more cost effective. You will save time and money as you don't need to develop complex backend APIs or ETLs, and you don’t need to worry about transferring and hosting data in an intermediate mapping infrastructure. Your geospatial app will run natively on top of your existing cloud-native stack.
Let’s take a closer look at the development stack, summarized in the architecture diagram above.
- Next Gen Cloud Data Warehouses: Your data stays - and is processed - entirely in your data warehouse. No need to move, copy or replicate the data using complex ETLs, or incur additional cost. Enterprises looking for additional security and governance controls, can also deploy CARTO self-hosted in their own cloud infrastructures.
- CARTO Platform APIs: Our APIs overcome several challenges related to spatial app development. For example, the ability to visualize large amounts of data is overcome with our Maps API and its seamless integration with Deck.gl. Our SQL API opens up advanced analysis to extract powerful insights directly from your hosted data. Lastly, CARTO authentication methods let you distribute your application publicly, or securely using enterprise-grade controls. With our suite of APIs there is no need to develop a specific backend to support the geospatial components of your application.
- Application Layer: This is where the spatial application is built.
There are two core principles that we follow at CARTO:
- CARTO is framework-agnostic: you can build your application using vanilla Javascript, Typescript or your framework of choice (Vue, React, Angular…).
- Use of deck.gl for visualization: deck.gl is a modern open-source geospatial visualization library that leverages web-GL technologies and GPU rendering for unparalleled accuracy and performance. With more than 120k downloads per week, deck.gl is becoming one of the most powerful libraries for spatial visualization, given its flexibility and customization options. CARTO is a leading contributor to deck.gl, we maintain the CARTO module and the CartoLayer, ensuring smoother integrations for deck.gl users.
CARTO’s cloud native platform has been built from the ground up to support the visualization of very large datasets directly from a cloud data warehouse. To achieve this, we implemented both our Dynamic Tiling technology and a set of cloud native tilers so users can produce what are called “pre-generated tilesets”. You can find more about how to create pre-generated tilesets with CARTO in the documentation for our Analytics Toolbox for BigQuery, Snowflake, Redshift, and PostgreSQL.
Additionally, other components of our platform such as CARTO Workflows and the Data Observatory can provide you with tons of value when developing applications. With Workflows your team will be able to create data preparation, transformation or analysis pipelines without the need for specialized coding knowledge, and you can integrate the execution of such workflows in your application with simple calls to our SQL API. Through the Data Observatory you can access more than 12,000 geospatial datasets from the leading curated sources to enhance your own data and provide much richer insights to your audience and stakeholders.
To help developers kick off the build of modern spatial apps with CARTO, we’ve compiled a set of steps you can easily follow. We have also developed a fully functioning custom app with open access to the code, so you can review and replicate, as required. Scroll to the Spatial App Development in Action, for more details.
- If you don’t have CARTO, sign up for a free 14-day trial.
- Configure your CARTO organization and (optional) create a connection to your data warehouse, full details are provided in our documentation.
- Create an API Access Token and make your first API call
- Use this API Access Token (or create a new one) to follow this step-by-step guide and make your first visualization using deck.gl and the CartoLayer. Don’t be put off by the size of your data, CARTO and deck.gl are able to handle millions of rows, with dynamic tiling and tilesets technology.
- Now that you’ve learned the basics, you can follow more advanced guides such as “Creating a public application” or “Integrating CARTO in your existing app” where you can familiarize yourself with the concepts of basemaps and user authentication for your application.
To showcase the potential of spatial app development using CARTO, we have created a sample custom application that brings together several components of the platform in a single, interactive dashboard.
- This custom application uses CARTO + Deck.gl in a simple Typescript structure, with no other dependencies. All the data you’re viewing is retrieved through a cloud native data warehouse connection, without any ETL or replication.
- To start with, Dynamic Tiling functionalities let the user visualize and seamlessly interact with 1.4 million Points of Interest in the US. We’re using Deck.gl styling properties to dynamically highlight POI categories such as transport hubs, tourism, financial and healthcare locations.
- A second visualization uses our SQL Parameters feature to query data directly from the application. In our example, with an interactive widget, users can aggregate and render data on the map dynamically. Our example uses public railroad accident data, which can be aggregated by the selected year. Each time the widget is selected, a parameterized SQL query is pushed to the cloud data warehouse and data is rendered on the fly.
- Finally, we showcase the potential to visualize truly massive datasets that include complex geometries. In our example, we have used CARTO to pre-generate a tileset that displays 481 million building footprint polygons across the globe. Using Deck.gl camera movements, we’ve added presets so users can easily navigate to key cities including New York, Tokyo and Barcelona.
You can access this custom app here, and the code has been made available on GitHub.
Looking into modernizing your geospatial applications? Do you need a toolkit that can help you save time and cost when developing geospatial solutions? Have a look at how CARTO brings unique value to your development stack, and why not sign up for our free 14 day trial or book a demo with one of our specialists.