
TODO
- set the initial parameters of the html maps directly
- synchronize zoom between the backends above Google Maps level 20
- check proper handling of marker movement on drop, not on subsequent mouse movement
- check for memory leaks when handling menus and actions
- use appropriate levels in the marker model when scanning for visible markers
- panning in Google Maps is quite slow with many clusters, find out whether the bottleneck is adding the clusters to the html-part or finding the positions of the markers (probably both :-( ) -> monitor 'idle' event for now
- clean up ways to re-create the clusters (generateClusters, updateClusters, clustersNeedUpdating...)
- make UI not block while images are being loaded
- verify that the pixmaps/icons on the map have the correct offset
- use labeledmarker: http://gmaps-utility-library.googlecode.com/svn/trunk/labeledmarker/release/src/labeledmarker.js
- Marble: find a way to handle selection-clicks for clusters in browse mode and still allow panning with the mouse at the same time
- Drag and Drop: make it possible to drag items onto the map which have not been in the model yet
- Drag and Drop: remove dragged marker from the clusters while dragging is active

LATER
- re-implement clustering for the markers
- don't crash on JavaScript errors ...
- find out how to trigger signals from inside JavaScript ...
- move from WMW2_ASSERT to some kde-thing
- make sure altitude values are properly handled
- find out what causes the Marble dbus errors
- finish OSM backend, delayed because there are problems with OSM in KHTML
- find out what causes problems with determining the maximum zoom in the Google Maps backend

DONE
- create directory structure
- create stub widget
- create demo application to load the widget
- create a basic Marble backend
- create a basic Google Maps backend
- define the basic backend interface
- center of the map is synchronised between the two backends
- provide basic control features in the demo: location, zoom, pan
- save widget state to configuration file
- add basic markers
- access to Marble projections
- access to Marble float items
- access to Google Maps float items
- synchronize zoom between the backends up to Google Maps level 19
- calls to wmwLatLngToPixel are not correct when panning in Google Maps until a zoom is performed
- only search for markers in the visible part of the map
- make markers moveable in Marble
- include .moc
- update the cluster state when the selection has been changed
- make it possible to select markers in the marble backend
- make clusters moveable in Marble
- advance markers
- allow selection of items in the widget
- handle selected items when moving items
- handle selections in the google maps backend
- create a model for the markers
- Google Maps: show drag-and-drop marker over google maps backend
- re-arrange clusters only if the map bounds have changed
- Marble: there seem to be problems with some regions of the globe, where markers in clusters are not shown. Example: Mercator projection, move a marker to the dateline. Move the dateline to the right until a new dateline appears on the left and the one on the right vanishes->marker is not shown any more. -> seems to be fixed, bounds normalization was wrong.
