CARTO for deck.gl: The Best Way to Develop Spatial Apps

Summary

CARTO is now available as part of the deck.gl framework & becomes our preferred & recommended library for building spatial applications

This post may describe functionality for an old version of CARTO. Find out about the latest and cloud-native version here.
CARTO for deck.gl: The Best Way to Develop Spatial Apps

Map visualization on the web has evolved a lot in recent years. We have seen a rapid shift to Vector Tiles and more visualizations powered by the Graphics Processing Unit (GPU). This development is important  because it enables the creation of next-gen spatial analysis applications.  

Vector tiles and modern GPU javascript libraries enable the handling of larger datasets in the browser  along with dynamic styling and filtering. These are core capabilities when developing spatial apps that guarantee a great user experience.


Now  even with all the power of GPUs and modern browsers  most applications will require the use of a spatial back-end to serve the data. If any dataset your app might be visualizing is bigger than  let's say 15MB  you are going to need a way to progressively load the data on the client. That is done using Map Tiles and this is what CARTO as a back-end platform  along with many other functionalities  gives you.

It is CARTO’s vision that you  as a developer  should be able to choose whichever mapping library you prefer for your applications. And for that reason we have been working over the last few months on adding support for one of the most popular libraries out there  deck.gl. We are so excited about its possibilities that we have decided to make it our preferred and recommended library for building spatial applications using CARTO. Read on to learn more.

What is deck.gl?

deck.gl is an open source project originally sponsored by Uber and now part of the Urban Computing Foundation  of which CARTO is a member. We were very happy to see Uber donating the library  which means that it is now an independent Open Source project with its own governance model.

The deck.gl framework is gaining a lot of traction with users and contributors. Many large companies such as Uber  Google and Microsoft have been contributing and providing support.

There is also a growing community of companies providing advanced development services  such as Unfolded.


Being an independent library means that it is not attached to any particular basemap provider. In fact  you can use deck.gl with pretty much any basemap you want  including Google Maps.

Another important factor to consider is deck.gl’s commitment to Open Source. With it’s Open Governance model  deck.gl champions transparency and developer collaboration. We are also happy to announce that Alberto Asuero  our CTO  has joined the Vis.gl Technical Steering Committee underlining our commitment to the project.

Introducing CARTO for deck.gl

Earlier in 2020  CARTO added support to deck.gl for vector tiles  opening the door to progressively visualizing any dataset  regardless of browser and bandwidth limitations. Since then  we have been working on making the experience of working with deck.gl and CARTO much smoother.

Today  we are very excited to announce that a complete CARTO module is now available as part of the deck.gl framework. This means developers can easily use CARTO APIs when building apps using the deck.gl framework.

Checkout this example application showcasing how deck.gl and CARTO can be used seamlessly together. Or open the app in a new tab.

What's possible with deck.gl and CARTO?

The new CARTO modules for deck.gl allow you to visualize regular Tables in CARTO and BigQuery Tilesets.

You can check out the documentation directly on the deck.gl website.

There are 2 main classes available:

CartoSQLLayer: For visualizing regular Table datasets in CARTO  either connected to external databases or coming from files. You can specify the dataset name or an SQL query and CARTO will automatically produce tiles for that query.

CartoBQTilerLayer: A Layer coming directly from BigQuery. If you are working with really large spatial datasets in BigQuery  CARTO lets you create and serve TileSets directly from BigQuery.

And this is just the start! We are working on adding more capabilities to our module  leveraging our smart back-end capabilities  dynamic queries and much more.

Our preferred way for app building

We have been collaborating with the deck.gl team for several months now and we are really excited to be part of this community. Investing in open source contributions is a fundamental element of our company strategy and we believe deck.gl has a bright future ahead with lots of companies and individuals collaborating openly.

We are bold on this commitment to deck.gl and we have officially started recommending the use of deck.gl as the general purpose library for building apps with CARTO. And we will be providing support for its usage.

If you are interested in learning deck.gl  check out our new documentation to get you started.

So what happens with CARTO VL?

CARTO VL has been our WebGL library for some time. Since we joined the Urban Computing Foundation  it became clear that CARTO VL and deck.gl are two very similar Open Source projects. We believe it is better to join forces than to compete. We will therefore be dedicating our resources to deck.gl and not to CARTO VL. We will continue to provide support to CARTO VL for the foreseeable future  so should you need any help during the transition  please reach out to us.

Our new Developer Center

Screenshot of the new Developer Center


We are taking this opportunity to relaunch our Developer Center  with revamped content and a simpler structure. Here are some of the key highlights:

We are actively working on developing examples and resources to help our users. Please let us know what you think and if there is anything you are missing.

Give me more…

deck.gl is winning the Open Source race for map visualization and current capabilities are impressive. As more developers contribute modules  functionalities will continue to grow. So  here is a noncomprehensive list of features that are available to CARTO users  thanks to our integration.

We cannot be more excited to be joining this community and we want to thank Uber for their contribution and also the developers and organizations that are actively pushing the deck.gl open source project forward.

Happy mapping!

Want to get started?

Sign up for a free account