On Mon, Dec 6, 2010 at 2:04 AM, Chris Crook <[email protected]> wrote:
> So, for my requirement for memory provider persistance, the only real
> question is what is the right way to do it. Although Martin had suggested a
> spatialite database, my leaning is towards a simple QDataStream. A simple
> implementation could be (in crude pseudo code)
>
> Qstring header("Qgis data file");
> Int version = 1;
> stream << header << version;
>
> Foreach memory_provider
> if provider < persist
> stream << layer_id
> stream << attribute_count
> foreach attribute
> stream << attribute_definition
> stream << feature_count
> foreach feature
> stream << feature
>
> This could readily be reloaded after the XML project file is read.
>
> Because it is processed sequentially it would sit comfortably in a ZIP file
> and be sequentially read from it without needing to be extracted and then
> processed (as a spatialite database would need to be). It is portable
> between OS etc.
>
> If the user actually wants a spatialite database, or any other format, then
> they can save the layer to that.
>
> How does this sound to people?
It sounds like you're just creating another spatial data format. Why
not, on project exit, just go "You have unsaved memory data layers -
would you like them converted to [gml|shapefile|spatialite|whatever]
and reloaded before saving/qutting or do you want to lose them
forever?".
Barry
_______________________________________________
Qgis-developer mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/qgis-developer