QTMapWidget

(Wishlist)
(QTMArble [http://edu.kde.org/marble/])
Line 80: Line 80:
* Google maps integration broken
* Google maps integration broken
-
=== QTMArble [http://edu.kde.org/marble/] ===
+
=== QTMarble [http://edu.kde.org/marble/] ===
Looks pretty complex, do we want the basic map widget to be that complex?
Looks pretty complex, do we want the basic map widget to be that complex?

Revision as of 17:50, 11 June 2010

This page is intended to collect thoughts about a QT map widget.

Contents

Why a QTMapWidget?

Maemo/Meego devices are mobile GPS based devices. A demand for mapping services is thus very obvious. The current situation in Maemo5 shows that leaving this task to the individual developers has several disadvantages for the developer as well for the end user.

Disadvantages of current Maemo5 situation

In Maemo5 there is no generic map widget. Thus various developers came up with their own solutions. Some of these were based on existing widgets (e.g. osm-gps-map), are ports of previous maemo4 projects (mappero) or are completely new solutions written from scratch. Few of these share the same map widget.

  • Every developer had to implement his own solution
  • Map tiles are stored/cached in different locations on the device
    • Waste of bandwidth (one widget cannot re-use data cached by another one and needs to re-download it)
      • Some map servers have limited bandwidth [1], one unified map widget may allow easier caching at one proxy server of all applications that use it.
    • Waste of flash space as the same data is stored separately by different map widgets
  • No central place for map cache maintenance
    • No way to globally add new map sources
    • No way to flush the map tile cache
    • No way to prefetch map tiles for offline usage
  • Individual look and feel for widgets addressing the same problem
  • No interoperability (e.g. one app cannot display the track that was captured while another one was running)
  • Some widgets don't work behind network proxies
  • None of the existing widgets is really developer friendly

Wishlist

If you are a developer and are interested in using such a widget. What would be the things you really want to have? What do you explicitly don't want to see in such a widget?

  • Support for various map sources
    • Classic tile based sources (openstreetmap, google, yahoo, virtual earth)
      • Simple/dynamic method to add more sources (also user specific ones)
    • WMS data
    • Vector data
      • OSM vector data ("planet file")
      • Map data stored by OVI maps
  • Plugin concept for map sources
  • Built-in GPS support
    • Position indicator
    • Direction indicator
    • Precision indicator
    • Ability to provide GPS position to main application
  • Built in compass and gyro support, to improve orientation
  • Network positioning support
  • Overlays
    • Static overlays (don't move nor zoom with the map)
      • Current position in textual representation
      • Map center ("cross hair")
      • Scale (metric as well as imperial)
      • Zoom buttons
      • Map source selection
    • Dynamic overlays (move and zoom with the map)
      • Waypoints incl. icons
      • Tracks incl. a dynamic one built from GPS data
  • Separate maintenance tool
    • Limit/monitor tile cache size
    • Clean tile cache
    • Preload tiles for offline usage
    • Refresh tiles
    • Perhaps as a control panel plugin

Related resources

QT mobility location [2]

Existing widgets

We are not the first ones to work with maps under QT. What projects exist? Can they be re-used? What are their advantages and disadvantages?

QMapControl [3]

Pros:

  • Lightweight
  • Runs out of the box on Maemo5
  • Supports WMS

Cons:

  • Not actively maintained atm
  • Lacks basic functionality (GPS integration, dynamic track cature, ...)
  • Has some rendering problems under Maemo (track display)
  • Google maps integration broken

QTMarble [4]

Looks pretty complex, do we want the basic map widget to be that complex?