Certain functions which makes marble to meet the desired goals of Panorama support. While Participating in this program i felt that the requistes can be fulfilled using following algo.
Firstly, the Locations has to be feed in an KML file. For this the KML file should somewhat look like this:
<?xml version=”1.0″ encoding =”UTF-8″?>
<name> name _place</name>
<description> desired description </description>
though this file has to be generated dynamically, whenever the user clicks on a particular placemark but in concrete the kml file should look like this. However, the elements inside the placemark element could be increased according to the requirements. Further, system tray menu can be added specifically for panorama view giving certain kinds of options like: quit, save etc.
Downloading in a background doesnot needs any front end coding, though user can be provided with a pop window asking for the location for saving the file just like a normal download in firefox. There is no need to mention that marble will have those views pre-compiled and pre installed. When the user will go for downloading a view, a signal will be emitted which will ultimately get the job done for user.
The navigation within the view can be descibed as handling the mouse events which must be programmed in the way which shows different perspectives of the placemark to the level of end user expectation.As mentioned earlier, the user can use the system tray menu as well as the menu provided in marble widget to adjust the visual properties of the view.
Last but not the least, seprate widget for the view. The major reason for having a seprate dialog is that it allows the user to have a look on the panorama view complimented with the dynamic inputs from the user. At the same time, the user can refer marble widget to which he/she referred to.