Migrating from Earth to Cesium
This is a guest post by Greg Angevine, Founder of Cube Cities Inc.. His company has used the Google Earth plugin for years and has recently built impressive work with Cesium (like this). - Patrick
Web developers who are evaluating alternatives to the Google Earth API should look to Cesium for ease of use, impressive visualization capability and broad compatibility with WebGL. Former Google Earth developers will quickly be impressed with Cesium's power & stability, rich API reference and relative ease in migrating code. This article provides some background on what the Google Earth API contributed to 3D mapping and information for developers on what to expect when planning a migration to Cesium.
In the spring of 2008, Google released a version of Google Earth that ran in a web browser using a downloaded plug-in from Google. This new software was the first time that a virtual globe could be served over the web. Software developers could create web pages that controlled Google Earth in a new, programmatic manner. It became possible for search results to be visualized in 3D using the geospatial capabilities of Google Earth. A user community was created and Google nurtured this remarkable new technology of virtual globes in the web browser.
Over the next four years Google released updates to the Google Earth API, kept it current with the desktop version of Google Earth and listened to the user community as they added functionality and fixed issues. A long list of bugs and feature requests were collected and prioritized from an active user community. For several years it was very exciting to see new functionality added to the Google Earth API and watch the software mature.
Unfortunately, because the software required a browser plug-in, there were often minor problems associated with the installation and initialization of the plug-in. The problems varied by computer system, network speed and security environment. Additionally, as the plug-in used 3D graphics, a capable graphics card was necessary for a quality user experience.
More complexity was caused by how the Google Earth plug-in behaved differently depending on which web browser and operating system was used. This was a challenge for developers because of the significant time required to troubleshoot issues across browsers, each with its own idiosyncrasies implementing CSS in the Google Earth instance. The Earth plug-in would render differently in Chrome on Windows than Chrome running on Mac. It was clear that creating an application with the Google Earth plug-in took more patience and resources than working with the traditional 2D Google Maps.
Workarounds were found to the plug-in problems and it became possible to deliver commercial services with the Google Earth plug-in. Google improved the stability of the software considerably over the years and by its final release in January 2012 the plug-in was reliable and stable on most desktop platforms.
In December 2014, Google announced the deprecation of the Google Earth API at the end of 2015. This has signaled Google's departure from web-based virtual globes, at least for the short term.
Historically, there have not been many 3D mapping alternatives available to the open-source community, especially those that meaningfully support KML. The Google Earth plug-in was unique in this market sector until the introduction of Cesium.
Cesium | Google Earth API | |
---|---|---|
Delivery | ||
Platform | Any browser that supports WebGL | Windows, Mac OS |
Client Technology | WebGL | Downloaded Plug-in |
On Mobile (iOS, Android, Win) | Easy, no code changes required. | No |
Works Offline | Yes | No |
Commercial | ||
Free Commercial Usage | Yes | No |
Open Source | Yes, Apache 2.0. | |
Source code available. | No | |
Growing User Community | Yes | No |
Experience | ||
SketchUp / Collada Models | Yes, when converted to glTF | Yes |
KML Support | Yes! Beta functionality now | Yes |
Familiar Navigation Controls | No | Yes |
# of API References | 336 (Cesium 1.5) | 82 |
Streaming 3D Buildings | Coming soon | Yes |
Change Base Maps on the fly | Yes | No |
Change terrain on the fly | Yes | No |
Possible to explore the subterranean | Yes | No |
Update Frequency | Monthly | Last update Jan 2012 (deprecated) |
Only until Cesium emerged was there an alternative to the novel functionality introduced with the Google Earth API. The Cesium engine can visualize and manipulate the same geospatial data formats used by Google Earth. This makes the time investment into learning Cesium rewarding and success comes fast. It doesn't take long to figure out how to render the same scenes, polygons, labels and SketchUp models in Cesium that one had working in Google Earth. Additionally, because Cesium uses the HTML5 standard WebGL, the software runs on iOS as easily as it runs on a Windows desktop. This is perhaps the most compelling reason to choose Cesium, it's the obvious choice for developers working with 3D maps on the mobile web.
Currently missing from Cesium is a 3D building server (similar to Google Earth's 3D Building Layer) that can efficiently stream 3D cities to the client. Cesium can load high texture Collada models (converted to glTF) individually, but to communicate realistic cityscapes, mass modeling of photo-textured buildings is very important. This capability is coming soon to Cesium.
Another inconsistency between Cesium and Google Earth is found when trying to navigate the view in Cesium with the familiar mouse and keyboard combinations as Google Earth. Google's familiar navigation widgets are of course absent from Cesium and new users have to "feel around" with the controls before they are adept at navigating.
Notwithstanding missing navigation widgets, there is a long list of new and exciting functionality ready to explore in the Cesium API. The ability to excavate terrain, change the base maps and terrain data without restarting, even creating circles!
Migrating to Cesium from Google Earth also makes commercial sense. Use of the Cesium code is governed by the Apache 2.0 license, making the software fit for some business models where Google licensing might prove too onerous. Further, having source-code access to the core Cesium files makes it reassuring that there will be no surprise interruptions from a service provider. This is very helpful for reducing investment risk and maintaining consistent user experiences.
As the user community extends Cesium's functionality, many of the characteristics of Google Earth will likely be replicated. Of great importance at the moment is that an enthusiastic user community is quickly growing around Cesium. This will ensure that users of free 3D mapping will continue to develop more ideas and further experiment with the state of the art.
Greg Angevine
Founder, Cube Cities Inc.