Controlling Google Earth via the Liquid Galaxy protocol

Given that the Google Earth API is coming to an end we are looking at alternative solutions. Yesterday we had a look at Google Earth’s internal browser and what its capabilities are. Today we are looking at a way of controlling Google Earth from another application.

Liquid Galaxy is the name given to a Google Earth demonstration using multiple displays to give an immersive experience. To see it in action, see the photos and videos on of various installations here. Liquid Galaxy works by allowing Google Earth on one computer to communicate with instances of Google Earth on other computers and synchronize their views so as to give the impression that there is a single instance of Google Earth running across multiple screens. To achieve this, Google Earth has a special Liquid Galaxy protocol that can be used to instruct Google Earth to show a particular location from a particular angle. It is possible to use this protocol for uses other than Liquid Galaxy installations.

Paul van Dinther of PlanetInAction has kindly released a small program that demonstrates this functionality. It is a Windows only program called GExplorer and it replicates the functionality of a JavaScript by the same name he created that works with the Google Earth plugin.

See this YouTube video to get an idea of what it does:

To try it for yourself first download the program here (Windows only).

Next, you need to configure Google Earth to accept Liquid Galaxy protocol instructions. To do this you need to edit the drivers.ini file found in the Google Earth program folder. The file is typically found in the folder
C:\Program Files (x86)\Google\Google Earth\client (for Google Earth)
or
C:\Program Files (x86)\Google\Google Earth Pro\client (for Google Earth Pro)

We found Windows Notepad does not display the file properly so you will need a more advanced editor. We used SciTE which can be obtained from here. Edit the drivers.ini file and insert the following lines at the start of the SETTINGS section.

ViewSync/send = false
ViewSync/receive = true
ViewSync/port = 21567
ViewSync/yawOffset = 0
ViewSync/pitchOffset = 0.0
ViewSync/rollOffset = 0.0
ViewSync/horizFov = 60

It should look like this:

Windows will not let you save it directly to the Google Earth program folder so save it on your desktop and then copy it to the Google Earth program folder.

Start Google Earth and GExplorer and make sure the GExplorer window is on the same monitor as Google Earth.

Initially nothing will happen because GExplorer is broadcasting to the wrong IP address. Click on the “Get my broadcast IP” button to adjust the IP address or type it in if you have different network requirements (Such as an actual Liquid Galaxy setup with multiple computers). If all is well it should say “UDP Connected” in red.

Next click “Start”.

The Google Earth view should now leap to the start latitude and longitude location. You will also notice that the view moves around as you move your mouse. You can now control Google Earth with a combination of the WASD keys and the mouse. SHIFT and CTRL can also be used to control height. Amplify any control input by holding down the spacebar with any combination of the above keys.

The view animates smoothly based on control inputs. The responsiveness can be modified with the “Inertia” dropdown. Low numbers means more responsive.

“Tilt limit” specifies the maximum angle you can look up or down. Try changing it to 90.

As you turn left or right the camera automatically rolls like an aircraft. If you don’t want this behaviour you can turn it off by ticking the “No roll” checkbox.

You can also switch between “Earth”, “Moon” or “Mars” by changing a dropdown.

Paul also suggests the great idea of creating a mobile app with the same functionality which would allow you to control Google Earth from your mobile phone. If any of our readers creates such an app please let us know about it in the comments.

About Timothy Whitehead

Timothy has been using Google Earth since 2004 when it was still called Keyhole before it was renamed Google Earth in 2005 and has been a huge fan ever since. He is a programmer working for Red Wing Aerobatx and lives in Cape Town, South Africa.






PLEASE NOTE: Google Earth Blog is no longer writing regular posts. As a result, we are not accepting new comments or questions about Google Earth. If you have a question, use the official Google Earth and Maps Forums or the Google Earth Community Forums.

Comments

  1. I’d just like to thank you for your interesting GE Blog, I enjoy to follow your experiments and hints.

    And…I pray for an API that allows us to access GE-Plugin-like functionality in Maps, for my part I really really need access to historic imagery layers through a JS-API, or at least a GUI widget to let the user slide through historic imagery… 🙁

  2. Andrew (Alf) Leahy says:

    Hi Tim, in 2011 Reese Butler a Google Summer of Code student worked on a rudimentary Earth controller for Android. See https://code.google.com/p/liquid-galaxy/wiki/GSoC2011_Android

    Reese’s project was to work up some concepts around handheld controllers that we could possibly use in Liquid Galaxy installations.

    Cheers, Andrew | Liquid Galaxy GSoC Mentor

  3. Engelbert Heim says:

    Hi everybody, thanks for the profound stories around Google Earth!

    i’m a hobby-developer for paragliding flight simulator and did this with the GE – API.
    so of course i am very interested in alternatives to the API. A look inside the source of GExplorer made two things clear for me:

    a) The interface includes all functions i will need for my device.
    b) The application is working with an Library called PIA_Globals, which ist not included.

    Do you think it is possible to get access to this code also?



PLEASE NOTE: Google Earth Blog is no longer writing regular posts. As a result, we are not accepting new comments or questions about Google Earth. If you have a question, use the official Google Earth and Maps Forums or the Google Earth Community Forums.