[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[geogig-dev] Handling of multiple layers with geogig web api and geogig plugin
|
Hello geogig developers,
I am just implementing an additional
GUI for gegig in QGis. This shall be an addition to boundlessgeo/qgis-geogiglight-plugin
indented to "normal" users and not "admins" (how ever
that distinguish is done).
You can have a look at the description
of it in https://github.com/SWM-IT/qgis-netze-gas/blob/master/documents/en_gb/Dokumentation%20GeogigLocalClient.rst
One basic idea of that plugin is, that
the user shall not take care on individual layers. Instead all actions
are done on all layers of the repository. (Note that in our scenario we
will have about 30 layers on the start and potentially a hundred layers
in a final state).
To achieve this, I iterate over all
layers and do the wanted actions on each layer. But this turns out to be
inefficient because it generates too much overhead. So we will soon run
into performance issues.
Here my question: Is it possible to
do these actions on a list of layers (or all layers of a repository) at
once?
I dit some research on the geogig plugin:
- I think repository exportdiff takes
the layername only as an optional parameter. Thus if I don't provide it,
all changes from the geogig repository should be sent to the client. This
means, gpksync.applyLayerChanges could be extended to perform the action
on all layers of the repository.
- More complex may be repository.importgepkg.
I assume, it should be possible to create a file with changes for each
layer via saveaudittables(filename,
layername). The question is: Is it
possible to send more than one file with one request to the server. Or
would it be easier to store all changes of all layers of the repository
in one file? Can the server handle such a file?
- Another point is, how to show the
local changes of all layers. Here a simple extension of LocalDiffViewerDialog
could help. Do not store one layer in LocalDiffViewerDialog .layer but
a list of layers (lets say in LocalDiffViewerDialog .layers) and extend
computeDiffs to iterate over that list (I implemented a sub class on LocalDiffViewerDialog
to do exactly that, but I would prefer to see that in the base class of
course, see https://github.com/SWM-IT/qgis-netze-gas/blob/master/source/examples/python/plugins/GeogigLocalClient/gui/dialogs/multilayerlocaldiffviewerdialog.py)
I am interested to hear your opinion
on this approach and whether some development in this direction can be
done in the geogig plugin (and if needed the geogig and esp. the server
api itself).
Mit freundlichen Grüßen / Kind regards
Markus Heße
Software Architekt – Projektleiter /
Software Architect – Project Manager
Mettenmeier GmbH
Klingenderstr. 10 - 14
33100 Paderborn, Germany
T +49 5251 150-363
F +49 5251 150-366
M +49 173 2474123
E markus.hesse@xxxxxxxxxxxxxx
I www.mettenmeier.de




_______________________________________________________
Mettenmeier GmbH
Sitz der Gesellschaft: 33100 Paderborn
Geschaeftsfuehrung: Ulrich Mettenmeier
Handelsregister: Amtsgericht Paderborn B 1114
USt.-ID: DE 811 324 124
Steuer-Nr.: 339/5873/3133
_______________________________________________________