[Qgis-developer] Use Georeferencer Core-Plugin with python

Matthias Kuhn matthias.kuhn at gmx.ch
Mon May 19 09:33:49 PDT 2014


The python modules gui and core are exported and the "iface" variable 
(QgisInterface) knows about their presence. But QgisInterface should 
not have any dependencies on plugin code, therefore it's harder to 
access this code.
It may not be hard if you only make use of code which you use in a 
standalone library way (maybe that would already be enough for your 
case). If you want to get access to a running plugin instance this is a 
different story. You can have a look at the code in [1] for an example 
of how this might be accomplished. Although the code seems not to be 
working, I've got to check what's still missing there, but in principle 
the ideas in commit [1] should work.

Best,
Matthias

[1] 
https://github.com/m-kuhn/QGIS/commit/571b4fa7e6afcefb9c4911339db2c4b7689ce6a9


On Mon 19 May 2014 05:34:41 PM CEST, Felix Schmidt wrote:
> @Matthias: what do you mean with:
> Am 19.05.2014 16:41, schrieb Matthias Kuhn: "the code is not exported
> to the gui or core libraries/sip modules"?
>
>> It will not be so easy to just write wrappers because the code is not
>> exported to the gui or core libraries/sip modules.
>> I have written code that makes it possible to generate python
>> bindings for (C++) plugins and I'm considering creating a
>> pull-request for it.
>>
>> Matthias
>>
>>
>> On 05/19/2014 04:33 PM, G. Allegri wrote:
>>> It depends on what parts of the Georeferencer you need. If you don't
>>> need the GUI but only the math, you could consider writing a SIP
>>> wrapper around QgsGeorefTransformInterface implementations [1].
>>> Otherwise, if Python performance would suffice, you could grab the
>>> low level math from QgsGeorefTransform and QgsLeastSquares [2] and
>>> translate it to Python.
>>>
>>> giovanni
>>>
>>> [1]
>>> https://github.com/qgis/QGIS/blob/master/src/plugins/georeferencer/qgsgeoreftransform.cpp
>>> [2]
>>> https://github.com/qgis/QGIS/blob/master/src/plugins/georeferencer/qgsleastsquares.cpp
>>>
>>>
>>>
>>> 2014-05-19 16:32 GMT+02:00 G. Allegri <giohappy at gmail.com
>>> <mailto:giohappy at gmail.com>>:
>>>
>>>     It depends on what parts of the Georeferencer you need. If you
>>>     don't need the GUI but only the math, you could consider writing
>>>     a SIP wrapper around QgsGeorefTransformInterface implementations
>>>     [1].
>>>     Otherwise, if Python performance would suffice, you could grab
>>>     the low level math from QgsGeorefTransform and QgsLeastSquares
>>>     [2] and translate it to Python.
>>>
>>>     giovanni
>>>
>>>     [1]
>>>     https://github.com/qgis/QGIS/blob/master/src/plugins/georeferencer/qgsgeoreftransform.cpp
>>>     [2]
>>>     https://github.com/qgis/QGIS/blob/master/src/plugins/georeferencer/qgsleastsquares.cpp
>>>
>>>
>>>     2014-05-19 16:10 GMT+02:00 Felix Schmidt
>>>     <felix.schmidt at uni-weimar.de <mailto:felix.schmidt at uni-weimar.de>>:
>>>
>>>         Hello Giovanni,
>>>         thanks for your answer. Do you think it is easier to write
>>>         the Plugin for the historical border extraction in c++
>>>         instead of python, cause of the binding implementation?
>>>
>>>         Felix
>>>
>>>         Am 19.05.2014 14:52, schrieb G. Allegri:
>>>
>>>             Hi Felix,
>>>             I fear you will have to write your own bindings if you
>>>             want to leavarage the Georeferencer plugin code. It's a
>>>             plugin, so it's functionality isn't exposed through QGIS
>>>             API.
>>>
>>>
>>>
>>>
>>>
>>>     --
>>>     Giovanni Allegri
>>>     http://about.me/giovanniallegri
>>>     Twitter: https://twitter.com/_giohappy_
>>>     blog: http://blog.spaziogis.it
>>>     GEO+ geomatica in Italia http://bit.ly/GEOplus
>>>
>>>
>>>
>>>
>>> --
>>> Giovanni Allegri
>>> http://about.me/giovanniallegri
>>> Twitter: https://twitter.com/_giohappy_
>>> blog: http://blog.spaziogis.it
>>> GEO+ geomatica in Italia http://bit.ly/GEOplus
>>>
>>>
>>> _______________________________________________
>>> Qgis-developer mailing list
>>> Qgis-developer at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>>
>


More information about the Qgis-developer mailing list