Thursday 20 May 2010

Geoweb

Hello everyone!
In this post I would like to make a quick introduction to my latest project, practical part of my bachelor thesis (which is luckily over by now). Name of the project is Geoweb and its main part is dataengine for KDE Plasma. It comes with few applets, which makes it usefulness little better :). Project started as part of KDE Silk, which is project trying to integrate online web services into Plasma. Geoweb is kind of that application. It is using your position to find places near you. For now it shows food and drink places, but I am almost sure, that later it gets little more informative.


The thing I really like about this application is that you can set your location manually. It sounds weird, I know, why should I do that, there is a geolocation dataengine in KDE, so use it. Right, I am, it is the default option. But in case, that you don't have GPS in you notebook/pc, and your dynamic IP address is quite fallible, manual setting of your accurate location can be handy.
So location would be the input. Output is some data from Open Street Map. In the current state, they are food and drink places as I mentioned, and a little map applet showing your current location. Every food and drink place has some information added, like distance from your current location, opening hours and website if provided. Details you can see on screenshot or video below.
From technical point of view, application is dataengine, which is using plugins to fetch various data, implemented with help of Kross framework magic. Applets are just stand-alone, they do not have anything in common except of used dataengine. Location applet is little bit different. It has access to dataengine configuration, so user is able configure dataengine with applet configuration window. It is little bit loss, that there is no clean way to communicate the other way, from applet to dataengine (correct me if I am wrong), so I had to use some easy work-around to do that.



Rest I keep for the next time, so if you are interested, stay tuned. I just add, that the code is located on Gitorious as part of the KDE Silk, so you can try to build it and run, but build process is not very friendly yet, as cmake doesn't make almost any checks (PyQt4 and kross-python are necessary). The code should be readable, but it is my first KDE app, so not everything is written the KDE way. But I'll try to make it better.
See you soon.

10 comments:

  1. Neat.
    Where can i find that wallpaper? or how's it called? :D

    ReplyDelete
  2. Have You Looked into Marble?:

    Marble's framework provides a lot of stuff that could be of interest to you:

    http://edu.kde.org/marble

    ReplyDelete
  3. Dread Knight: it's Fedora 13 default wallpaper called Goddard.

    ReplyDelete
  4. Thanks for blogpost, very nice. And indeed, it would be great to tight it more together with Marble.

    ReplyDelete
  5. Nice! Will it be available in Fedora 13?

    ReplyDelete
  6. Marble looks great. I kind of knew what it is, but never looked into it. I'll try to explore it. Thanks for the tip.
    @rvokal: I can't tell right now. It still needs some development. Later, I hope some packages will be available.

    ReplyDelete
  7. acetonik: Feel invited to join us: We have a very active development group of people. And our use cases basically cover what you intend to do. So if you help us improving Marble you'll get a much more powerful tool :-)
    You can find us on IRC (#marble) or on our mailing list (marble-devel@kde.org).

    ReplyDelete
  8. Hey Acetonik,

    I wanted to write such a map widget about a year ago, but I didn't find a way to get marblewidget onto the plasma-desktop (using qgraphicsproxywidget or sth. like that didn't work back then). Great to see you succeeded!

    Anyway, I wanted to extend the current wallpaper-slideshow so that while randomly showing images from a specific folders as wallpapers, a small map-widget on the desktop would show where that photo was taken (from the gps-coordinates in the images exif-data).

    Is that possible somehow?

    ReplyDelete
  9. Hi benjamin,

    I had many problems with these widgets myself, but luckily I found a way :-)

    The map widget is simple HTML page with some javascript in QWebView, so there shouldn't be a problem to do it if you have lat. and lon. of location...

    ReplyDelete
  10. With regards to geolocation services and providing a default place in their absence, that's something on my TODO list (in case you don't know, I work on kdelibs doing stuff like regional settings, in kdepim, and on plasma doing data engines and calendar stuff). I'm attending the Marble sprint next month to discuss with them a strategy for geo services and it would be good to get your input too. I'll have a look at the code in the next few days and be in touch.

    ReplyDelete