Skip to main content

Earth Atlas: Creating a KML tree with Ext JS

A new version of Earth Atlas is now available (earthatlas.info). Earth Atlas demonstrates how a Google Earth-like user interface can be created in the web browser. This is achieved by combining the Google Earth API and the Ext JS library. Earth Atlas has no server-side dependencies, - the data layers are provided by loading various KML files. 
 The main changes since the initial release:
  • The layers available in the Google Earth Plug-in (borders, roads, buildings and terrain) can be switched on and off. 

  • Various options can be set (status bar, grid, overview map, scale legend, atmosphere and mouse navigation)

  • The KML structure (list view) is displayed in the left panel when external files are referenced (see example).    

Comments

Anonymous said…
Hi.

Will source code of this "Earth Atlas" be opened?

I'd like to try to add more functions into this.

Regards.
Bjørn Sandvik said…
Hi,

You can download the Ext.ux.GEarthPanel extension on Google Code.

License: GNU General Public License v3

Bjorn
Anonymous said…
Thank you very much, Bjorn.

Have you any idea to make this script internationalisation?
Bjørn Sandvik said…
It's not my top priority, but please tell me if you want to contribute.
Anonymous said…
Hi,

Nice job! Thanks for posting the source for 'Ext.ux.GEarthPanel.js' to Google. I am trying to extend the application by adding a panel for finding a location using the Google Geocoder. I am having a what I think is a scoping issue because 'button.earthPanel.location' is undefined (can't reference the value of the 'location' textfield. What am I doing wrong?

Thanks

Greg

getFindForm: function(){
var form = new Ext.FormPanel({
frame: true,
labelWidth: 30,
border: true,
defaultType: 'textfield',

items: [{

fieldLabel: 'Loc',
width: 195,
name: 'location'

}],

buttons: [{
text: 'Find Location',
earthPanel: this, // Accessible in handler
handler: function(button, pressed){
//It's all about scope...

alert("Value of location is " + button.earthPanel.location.getValue());

//google.earth.fetchKml(button.earthPanel.earth, button.earthPanel.kmlUrlField.getValue(), button.earthPanel.addKml.createDelegate(button.earthPanel));
//button.earthPanel.kmlUrlField.reset();
}
}]
});
return form;
},
Bjørn Sandvik said…
Greg, thanks for your code. A panel for finding a location will be included in the next release. (For your code to work, you need to define the location text field in the initComponent function).
Unknown said…
Hi.

This EarthAtlas looks like "3D" OpenLayers(http://openlayers.org) for which I have taken a hands-on tutorial taught by developer himself(Schmidt) recently in Tokyo.

Do you have any plan to integrate yours with this?


Regards.
Anonymous said…
Hello Bjorn,

I just tried your 3D globe view and got a blank page with a ATL 10.00 message on it. Is your example still working properly or is it a GE issue?

Thanks to let me know.

Sylvain

Popular posts from this blog

Creating a WebGL Earth with three.js

This blog post will show you how to create a WebGL Earth with three.js , a great JavaScript library which helps you to go 3D in the browser. I was surprised how easy it seemed when reading a blog post  by Jerome Etienne . So I decided to give it a try using earth textures  from one of my favourite cartographers, Tom Patterson . WebGL is a JavaScript API for rendering interactive 3D graphics in modern web browsers without the use of plug-ins. Three.js is built on top of WebGL, and allows you to create complex 3D scenes with a few lines of JavaScript. If your browser supports WebGL you should see a rotating Earth below: [ Fullscreen ] To be able to display something with three.js, you need three things: a scene, a camera and a renderer. var width  = window.innerWidth,     height = window.innerHeight; var scene = new THREE.Scene(); var camera = new THREE.PerspectiveCamera(45, width / height, 0.01, 1000); camera.position.z = 1.5; var rende...

Thematic Mapping Engine

It's time to introduce the Thematic Mapping Engine (TME). In my previous blog posts, I've shown various techniques of how geobrowsers can be used for thematic mapping. The goal has been to explore the possibilites and to make these techniques available to a wider audience. The Tematic Mapping Engine provides an easy-to-use web interface where you can create visually appealing maps on-the-fly. So far only prism maps are supported, but other thematic mapping techniques will be added in the upcoming weeks. The engine returns a KMZ file that you can open in Google Earth or download to your computer. My primary data source is UNdata . The above visualisation is generated by TME ( download KMZ ) and shows child mortaility in the world ( UNdata ). The Thematic Mapping Engine is also an example of what you can achieve with open source tools and datasets in the public domain: A world border dataset is loaded into a MySQL database . The same database contains tables with statistics ...

Creating 3D terrains with Cesium

Previously, I’ve used three.js to create 3D terrain maps in the browser ( 1 , 2 , 3 , 4 , 5 , 6 ). It worked great for smaller areas, but three.js doesn’t have built-in support for tiling and advanced LOD algorithms needed to render large terrains. So I decided to take Cesium for a spin. Cesium is a JavaScript library for creating 3D globes and 2D maps in the browser without a plugin. Like three.js, it uses WebGL for hardware-accelerated graphics. Cesium allows you to add your own terrain data, and this blog post will show you how. Impressed by the terrain rendering in @CesiumJS - with a 10m elevation model for Norway! Farewell Google Earth. pic.twitter.com/RQKvfu2hBb — Bjørn Sandvik (@thematicmapping) October 4, 2014 Compared to  the dying Google Earth plugin , it's quite complicated to get started with Cesium. The source code is well documented and the live coding Sandcastle is great, but there is a lack of tutorials  and my development slows down when ...