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

Felix Schmidt felix.schmidt at uni-weimar.de
Mon May 19 13:07:13 PDT 2014


Thanks a lot for the support,
i will read your commit and talk to my team mates on Wednesday.

Felix

Am 19.05.2014 21:09, schrieb Matthias Kuhn:
> A pull request is online for review:
>
> https://github.com/qgis/QGIS/pull/1370
>
> Please post your comments there if you are interested in this
> functionality.
>
> On Mon 19 Mai 2014 18:55:54 CEST, G. Allegri wrote:
>> 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
>> <mailto: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
>>      <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
>>                  <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
>>                  <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>
>>                  <mailto: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
>>                  <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
>>                  <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>
>>                  <mailto: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
>>                  <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
>>                  <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
>>                  <mailto:Qgis-developer at lists.osgeo.org>
>>                  http://lists.osgeo.org/__mailman/listinfo/qgis-__developer
>>                  <http://lists.osgeo.org/mailman/listinfo/qgis-developer>
>>
>>
>>
>>      _________________________________________________
>>      Qgis-developer mailing list
>>      Qgis-developer at lists.osgeo.org <mailto:Qgis-developer at lists.osgeo.org>
>>      http://lists.osgeo.org/__mailman/listinfo/qgis-__developer
>>      <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
>



More information about the Qgis-developer mailing list