<div dir="ltr"><div>Well my idea was more oriented to telling that there already is a GeoJSON parser implemented in Marble. If it exports geometries as geojson from PostGIS, the parser is already made.<br><br>But for this purpose it would need to extract the parser from the runner as the runner is prepared for receiving a filename, opening its content and getting an array of geometries in it.<br>
<br></div>I guess the optimal approach would be to extract the "Each-single-geometry" parser piece of code from the runner to a common place where both the runner and other codes can access. When making a query to PostGIS, parse each geometry with that piece of the parser and in the runner, open the file, get the geometries array and also send each separate geometry to the parser.<br>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-02-10 12:54 GMT+01:00 Knut Krause <span dir="ltr"><<a href="mailto:knut.krause@lagom.de" target="_blank">knut.krause@lagom.de</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Sure sure.<br>
<br>
btw I should have mentioned, that I plan to use my approach to cover huge<br>
spaces … like half germany or something like that.<br>
<br>
I hope your suggested approach doesn't run into performance issues too fast<br>
since that is a fundamental issue here.<br>
<br>
I think I'll render a couple hundred thousand to millions polygons into one<br>
raster …<br>
<br>
<br>
Knut<br>
<br>
Am Montag, 10. Februar 2014, 12:51:26 schrieb <a href="mailto:tackat@t-online.de">tackat@t-online.de</a>:<br>
<div class="HOEnZb"><div class="h5">> Well I just reread Anders' mail and only now realized that he suggested to<br>
> export to json and then use the json runner. That would be the lazy<br>
> approach  ;-)  (and would probably be less flexible). The beer and pizza<br>
> invitation is only offered for actually writing the PostGIS runner (where<br>
> you could borrow code from the existing runners such as the JSON, KML, SHP,<br>
>  and OSM runner).<br>
><br>
> As a "first shot" you could maybe also have a look at the gpsbabel runner:<br>
> That one uses the gpsbabel commandline tool - if installed - to convert<br>
> different file formats to KML and then feeds it to Marble's KML runner.<br>
> Maybe you could do something similar with the PostGIS database as a source<br>
> and feed it to the JSON runner. But again that might be less flexible that<br>
> creating a "full-blown" dedicated "PostGIS" runner.<br>
><br>
> Oh and in order to test your code (in order to verify your<br>
> beer-and-pizza-claims ;-))))) ) we need a tutorial on how to use your code<br>
> - preferably you create a small tutorial at<br>
> <a href="http://techbase.kde.org/Projects/Marble" target="_blank">http://techbase.kde.org/Projects/Marble</a> just along the existing ones.<br>
><br>
> Best Regards,<br>
> Torsten<br>
><br>
><br>
><br>
> -----Original-Nachricht-----<br>
> Betreff: Re: [Marble-devel] Using marble to render PostGIS data in different<br>
> Projections Datum: Mon, 10 Feb 2014 12:39:20 +0100<br>
> Von: Knut Krause <<a href="mailto:knut.krause@lagom.de">knut.krause@lagom.de</a>><br>
> An: <a href="mailto:marble-devel@kde.org">marble-devel@kde.org</a><br>
><br>
> Woah, thanks for your brilliant suggestions.<br>
><br>
> I'll have a look at the runner and will see how I could use them. If this<br>
> works for me maybe you'll have to pay for pizza and beer really soon :-P<br>
><br>
> Knut<br>
><br>
> Am Montag, 10. Februar 2014, 12:31:06 schrieb <a href="mailto:tackat@t-online.de">tackat@t-online.de</a>:<br>
> > Hi Knut,<br>
> ><br>
> > I had always wondered why nobody had done this earlier. It should be<br>
> > relatively straightforward. Ideally you would do it differently though:<br>
> > Nowadays the GeoPainter approach is too lowlevel. These days we rather<br>
> > discourage to use GeoPainter directly - although there is nothing bad<br>
> > about<br>
> > GeoPainter itself.These days we rather encourage the "object-oriented"<br>
> > approach. The "object-oriented" approach has lots of  benefits and it<br>
> > should go extremely well with PostGIS:<br>
> ><br>
> > Nowadays Marble imports all files into a single data model: No matter<br>
> > whether it's KML, GPX, SHP (ShapeFiles) or OSM vector data - all files get<br>
> > imported into a single "GeoDataDocument"-document model (we informally<br>
> > call<br>
> > that "The GeoData way" since the related classes have the prefix<br>
> > "GeoData"). The rendering of that model is then done automatically by<br>
> > GeoPainter behind the scenes. So you don't have to mess with GeoPainter<br>
> > directly and you don't have to care about the rendering part! This is an<br>
> > advantage since this is much more convenient for you and also since<br>
> > GeoPainter might get replaced by an OpenGL-based painter/renderer at one<br>
> > point. So if you go "the GeoData way" your code will stay future-proof :-)<br>
> ><br>
> > For importing the PostGIS data into the model you should probably have a<br>
> > look at the file-import plugins. Yes, each fileformat in Marble is<br>
> > converted to that single data model via a dedicated plugin. Have a look<br>
> > inside the source code here:<br>
> ><br>
> > src/plugins/runner<br>
> ><br>
> > In that directory you will find lots of "runners" which create<br>
> > GeoDataDocuments for various purposes. You probably want to have a look at<br>
> > the runners which import the files. Those are inside the subdirectories<br>
> > kml, gpx, shp, osm. My guess is that the SHP-file is probably most close<br>
> > to<br>
> > the PostGIS case. So you can borrow lots of ideas from there. The KML case<br>
> > is also very interesting - especially since the structure of our central<br>
> > universal data-model is inspired by KML. So if you know KML then you will<br>
> > get immediately fluent with the GeoData classes since they are named<br>
> > structured the same way as KML (although they can hold GPX, OSM, SHP and<br>
> > PostGIS data - the challenge is just to map the information correctly).<br>
> > You<br>
> > can probably fully ignore the OSM runner, since the vector OSM fileformat<br>
> > has a pretty "weird" structure.<br>
> ><br>
> > For learning more about the GeoDataDocument structure you can have a look<br>
> > at these this tutorial:<br>
> ><br>
> > <a href="http://techbase.kde.org/Projects/Marble/Runners/DisplayGeoDataPlacemark" target="_blank">http://techbase.kde.org/Projects/Marble/Runners/DisplayGeoDataPlacemark</a><br>
> ><br>
> > and these:<br>
> ><br>
> > <a href="http://techbase.kde.org/Projects/Marble/Runners/Parse" target="_blank">http://techbase.kde.org/Projects/Marble/Runners/Parse</a><br>
> > <a href="http://techbase.kde.org/Projects/Marble/Runners/LoadingOSM" target="_blank">http://techbase.kde.org/Projects/Marble/Runners/LoadingOSM</a><br>
> ><br>
> > So I suggest that you create a "postgis runner" plugin which would act as<br>
> > an interface between the PostGIS database and Marble's GeoDataDocument<br>
> > document model. Oh and yes of course this approach would allow for<br>
> > reversing the whole process. In the future you could allow users to edit<br>
> > polygons inside Marble and have the GeoDataPolygons get written back to<br>
> > the PostGIS database.<br>
> ><br>
> > So if you look at the (relatively small) file parsing plugins you should<br>
> > see that this should all be doable. Additional incentive: If you<br>
> > implement this PostGIS runner and contribute it back to Marble then I owe<br>
> > you a beer and a pizza ;-)<br>
> ><br>
> > Does that sound good to you? ;)<br>
> ><br>
> > Best Regards,<br>
> > Torsten<br>
> ><br>
> ><br>
> ><br>
> ><br>
> ><br>
> ><br>
> ><br>
> > -----Original-Nachricht-----<br>
> > Betreff: [Marble-devel] Using marble to render PostGIS data in different<br>
> > Projections Datum: Mon, 10 Feb 2014 11:45:05 +0100<br>
> > Von: Knut Krause <<a href="mailto:knut.krause@lagom.de">knut.krause@lagom.de</a>><br>
> > An: <a href="mailto:marble-devel@kde.org">marble-devel@kde.org</a><br>
> ><br>
> > Hi,<br>
> ><br>
> > I have a PostGIS database with geometries. Now I'd like to do some<br>
> > computation on them. For my core algorithm I need the polygons in raster<br>
> > format. So I would be great if I could somehow use marble to draw my<br>
> > geometries on a flat surface like QImage. To show the result of my<br>
> > algorithm though I'd like to render a path on a plain marble widget.<br>
> ><br>
> > Is it possible to use marble for that? Right now I use GDAL to transform<br>
> > the geometry from WKB to QPolygonF but that involeves a lot of number<br>
> > crunching myself to get the positions right and I fear I'm not smart<br>
> > enough to cope with projections correctly.<br>
> ><br>
> > I thought something like<br>
> ><br>
> > PostGIS -> <magic> -> GeoPainter -> QImage<br>
> ><br>
> > would be great to render a set of geometries on an image as big as the<br>
> > bounding box of the geometries. Anyone here an idea if this works?<br>
> ><br>
> ><br>
> > Knut<br>
> > _______________________________________________<br>
> > Marble-devel mailing list<br>
> > <a href="mailto:Marble-devel@kde.org">Marble-devel@kde.org</a><br>
> > <a href="https://mail.kde.org/mailman/listinfo/marble-devel" target="_blank">https://mail.kde.org/mailman/listinfo/marble-devel</a><br>
><br>
> _______________________________________________<br>
> Marble-devel mailing list<br>
> <a href="mailto:Marble-devel@kde.org">Marble-devel@kde.org</a><br>
> <a href="https://mail.kde.org/mailman/listinfo/marble-devel" target="_blank">https://mail.kde.org/mailman/listinfo/marble-devel</a><br>
<br>
_______________________________________________<br>
Marble-devel mailing list<br>
<a href="mailto:Marble-devel@kde.org">Marble-devel@kde.org</a><br>
<a href="https://mail.kde.org/mailman/listinfo/marble-devel" target="_blank">https://mail.kde.org/mailman/listinfo/marble-devel</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div><font color="#666666">Ander Pijoan Lamas<br>Research Assistant, Deustotech<br></font></div><div><font color="#666666">Computer Science Engineer<br></font></div>
<div><font color="#666666">University of Deusto<br><br></font></div><div><font color="#666666">E-mail: </font><a href="mailto:ander.pijoan@deusto.es" target="_blank"><font color="#666666">ander.pijoan@deusto.es</font></a></div>
<div><font color="#666666">Phone: +34 664471228<br>in: <a href="http://www.linkedin.com/profile/view?id=162888312" target="_blank">http://www.linkedin.com/profile/view?id=162888312</a><br></font></div>
</div>