[Marble-devel] Using marble to render PostGIS data in different Projections

Knut Krause knut.krause at lagom.de
Mon Feb 10 11:39:20 UTC 2014


Woah, thanks for your brilliant suggestions.

I'll have a look at the runner and will see how I could use them. If this 
works for me maybe you'll have to pay for pizza and beer really soon :-P

Knut

Am Montag, 10. Februar 2014, 12:31:06 schrieb tackat at t-online.de:
> Hi Knut,
> 
> I had always wondered why nobody had done this earlier. It should be
> relatively straightforward. Ideally you would do it differently though:
> Nowadays the GeoPainter approach is too lowlevel. These days we rather
> discourage to use GeoPainter directly - although there is nothing bad about
> GeoPainter itself.These days we rather encourage the "object-oriented"
> approach. The "object-oriented" approach has lots of  benefits and it
> should go extremely well with PostGIS:
> 
> Nowadays Marble imports all files into a single data model: No matter 
> whether it's KML, GPX, SHP (ShapeFiles) or OSM vector data - all files get
> imported into a single "GeoDataDocument"-document model (we informally call
> that "The GeoData way" since the related classes have the prefix
> "GeoData"). The rendering of that model is then done automatically by
> GeoPainter behind the scenes. So you don't have to mess with GeoPainter
> directly and you don't have to care about the rendering part! This is an
> advantage since this is much more convenient for you and also since
> GeoPainter might get replaced by an OpenGL-based painter/renderer at one
> point. So if you go "the GeoData way" your code will stay future-proof :-)
> 
> For importing the PostGIS data into the model you should probably have a
> look at the file-import plugins. Yes, each fileformat in Marble is
> converted to that single data model via a dedicated plugin. Have a look
> inside the source code here:
> 
> src/plugins/runner
> 
> In that directory you will find lots of "runners" which create
> GeoDataDocuments for various purposes. You probably want to have a look at
> the runners which import the files. Those are inside the subdirectories
> kml, gpx, shp, osm. My guess is that the SHP-file is probably most close to
> the PostGIS case. So you can borrow lots of ideas from there. The KML case
> is also very interesting - especially since the structure of our central
> universal data-model is inspired by KML. So if you know KML then you will
> get immediately fluent with the GeoData classes since they are named
> structured the same way as KML (although they can hold GPX, OSM, SHP and
> PostGIS data - the challenge is just to map the information correctly). You
> can probably fully ignore the OSM runner, since the vector OSM fileformat
> has a pretty "weird" structure.
> 
> For learning more about the GeoDataDocument structure you can have a look at
> these this tutorial:
> 
> http://techbase.kde.org/Projects/Marble/Runners/DisplayGeoDataPlacemark
> 
> and these:
> 
> http://techbase.kde.org/Projects/Marble/Runners/Parse
> http://techbase.kde.org/Projects/Marble/Runners/LoadingOSM
> 
> So I suggest that you create a "postgis runner" plugin which would act as an
> interface between the PostGIS database and Marble's GeoDataDocument
> document model. Oh and yes of course this approach would allow for
> reversing the whole process. In the future you could allow users to edit
> polygons inside Marble and have the GeoDataPolygons get written back to the
> PostGIS database.
> 
> So if you look at the (relatively small) file parsing plugins you should see
> that this should all be doable. Additional incentive: If you implement this
> PostGIS runner and contribute it back to Marble then I owe you a beer and a
> pizza ;-)
> 
> Does that sound good to you? ;)
> 
> Best Regards,
> Torsten
> 
> 
> 
> 
> 
> 
> 
> -----Original-Nachricht-----
> Betreff: [Marble-devel] Using marble to render PostGIS data in different
> Projections Datum: Mon, 10 Feb 2014 11:45:05 +0100
> Von: Knut Krause <knut.krause at lagom.de>
> An: marble-devel at kde.org
> 
> Hi,
> 
> I have a PostGIS database with geometries. Now I'd like to do some
> computation on them. For my core algorithm I need the polygons in raster
> format. So I would be great if I could somehow use marble to draw my
> geometries on a flat surface like QImage. To show the result of my
> algorithm though I'd like to render a path on a plain marble widget.
> 
> Is it possible to use marble for that? Right now I use GDAL to transform the
> geometry from WKB to QPolygonF but that involeves a lot of number crunching
> myself to get the positions right and I fear I'm not smart enough to cope
> with projections correctly.
> 
> I thought something like
> 
> PostGIS -> <magic> -> GeoPainter -> QImage
> 
> would be great to render a set of geometries on an image as big as the
> bounding box of the geometries. Anyone here an idea if this works?
> 
> 
> Knut
> _______________________________________________
> Marble-devel mailing list
> Marble-devel at kde.org
> https://mail.kde.org/mailman/listinfo/marble-devel



More information about the Marble-devel mailing list