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
We are taking this opportunity to relaunch our Developer Center with revamped content and a simpler structure. Here are some of the key highlights:
- A new "Getting Started" page providing a simple introduction to the platform.
- Examples for developing with CARTO in deck.gl Google Maps and Mapbox GL
- Access to our fully documented library of SDKs and APIs.
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.
- 3D Globe support and 3D Tiles from Cesium
- Smooth animations for trips
- H3 geographic support
- Additional projects like PyDeck
- Support for Google Earth Engine
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?