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

G. Allegri giohappy at gmail.com
Mon May 19 09:55:54 PDT 2014


Of course Matthias is right if you want to interface with a plugin instance
running inside QGIS. That's why I said you could bind only the inner logic
of the Georeferencer to use it "outside" the plugin instance. In case you
need to control, or get work done from, the Georeferencer plugin itself you
have to do what Matthias is doing in its commit.

giovanni


2014-05-19 18:33 GMT+02:00 Matthias Kuhn <matthias.kuhn at gmx.ch>:

> 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/571b4fa7e6afcefb9c4911339db2c4
> b7689ce6a9
>
>
>
> 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
>>>>
>>>
>>>
>>  _______________________________________________
> Qgis-developer mailing list
> Qgis-developer at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/qgis-developer
>



-- 
Giovanni Allegri
http://about.me/giovanniallegri
Twitter: https://twitter.com/_giohappy_
blog: http://blog.spaziogis.it
GEO+ geomatica in Italia http://bit.ly/GEOplus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20140519/12d36dc5/attachment-0001.html>


More information about the Qgis-developer mailing list