Received: by 10.224.2.79 with SMTP id 15mr1170501qai.2.1296990455397;
        Sun, 06 Feb 2011 03:07:35 -0800 (PST)
X-BeenThere: qgroundcontrol@googlegroups.com
Received: by 10.224.184.8 with SMTP id ci8ls612271qab.7.p; Sun, 06 Feb 2011
 03:07:34 -0800 (PST)
MIME-Version: 1.0
Received: by 10.224.10.198 with SMTP id q6mr224812qaq.44.1296990454820; Sun,
 06 Feb 2011 03:07:34 -0800 (PST)
Received: by y3g2000vbh.googlegroups.com with HTTP; Sun, 6 Feb 2011 03:07:34
 -0800 (PST)
Date: Sun, 6 Feb 2011 03:07:34 -0800 (PST)
X-IP: 84.73.40.20
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_8; de-de)
 AppleWebKit/533.19.4 (KHTML, like Gecko) Version/5.0.3 Safari/533.19.4,gzip(gfe)
Message-ID: <8aa98fce-aa19-4b27-a621-486097a6cc29@y3g2000vbh.googlegroups.com>
Subject: Google Earth Developer/Contributions wanted
From: qgroundcontrol <pix...@student.ethz.ch>
To: QGroundControl <qground...@googlegroups.com>
Content-Type: text/plain; charset=ISO-8859-1

Hi all,

In an effort to broaden the contributor base, we will soon hand out
laser-engraved community contribution awards. We're therefore now
highlighting some non-core aspects of the application that could need
some polishing. Contributions in these areas are particularly easy and
won't require in-depth understanding of the whole QGC codebase.

Although QGC has Google Earth support, it's not yet as extensive as
the 2D map, especially when it comes to mission planning. There could
be done much more with some more eyecandy. The core development team
is however currently focusing on the core aspects: Stability, safety
and the core mission planning, not so much the graphic representation.

We would like to invite the community to step forward and contribute -
this is a self-contained aspect of the application which can be
perfectly handled by an individual developer. With ArduPilotMega now
working with QGC there is also a large enough user base for it.

Interfacing Google Earth is pretty simple: There is a C++ class which
calls some JavaScript functions, which in turn manipulate Google
Earth. The whole framework is in place, so extending this is
straightforward. It also does not require an in-depth knowledge of QGC
to get started.

The interface class is here:
https://github.com/pixhawk/qgroundcontrol/blob/master/src/ui/map3D/QGCGoogleEarthView.cc

The interface JavaScript code is here:
https://github.com/pixhawk/qgroundcontrol/blob/master/images/earth.html

And this is the Google Earth API documentation:
http://code.google.com/apis/earth/documentation/


One of the next steps would be to get waypoint manipulation going. How
this can be implemented can be seen in the 2D map:
https://github.com/pixhawk/qgroundcontrol/blob/master/src/ui/MapWidget.cc

The critical functions for drawing waypoints are updateWaypoint(),
which adds a new or updates an existing waypoint, and
updateWaypointList(), which updates the whole list, if e.g. the
waypoint order has changed. Implementing similar functions in the
Google Earth View would be sufficient to get waypoints going in the 3D
view.

2D Map Widget: https://github.com/pixhawk/qgroundcontrol/blob/master/src/ui/MapWidget.cc
Around Line 453: updateWaypoint()

Around Line 677: updateWaypointList

We're looking forward to contributions.
QGC Core Dev Team

Copyright 2011 https://groups.google.com/forum/#!forum/qgroundcontrol