Skip to content

Latest commit

 

History

History
40 lines (34 loc) · 3.31 KB

roadmap.md

File metadata and controls

40 lines (34 loc) · 3.31 KB

Tasks for getting this plugin operational

  1. Plugin offers a Hello, World GUI window
    1. See, as just one example: https://docs.qgis.org/3.16/en/docs/pyqgis_developer_cookbook/communicating.html#communicating-with-the-user
  2. Test plugin server workflow by releasing v0.01 and a minorly modified v.0.02
  3. Plugin loads a vector layer from QGIS into plugin code using pyqgis
    1. See https://docs.qgis.org/3.16/en/docs/pyqgis_developer_cookbook/vector.html and https://docs.qgis.org/3.16/en/docs/pyqgis_developer_cookbook/vector.html#creating-vector-layers
  4. Modifies the geometry of that layer somehow
  5. Convert a qgis layer that the user specifies (via a GUI input widget) to a geopandas geodataframe object... and back again. These might help:
    1. Use this workflow plus a version edited to run 'in reverse'? https://gis.stackexchange.com/questions/362979/loading-geodataframe-as-qgis-vector-layer-without-exporting-to-shapefile
    2. Perhaps also of use: https://anitagraser.com/2018/11/18/movement-data-in-gis-16-towards-pure-python-trajectories-using-geopandas/
  6. Makes basic connections to our library (via a submodule), importing it, tests out functionality (can equally be done before any of the more substantial pyqgis coding above)
  7. Hardcoding all of the above to make the plugin, QGIS vector layer modification, and basic reprojections to work more or less together. Projections do not need to be user-inputted yet.
  8. UI design charrette
  9. UI implementation
  10. Write projstring and WKT parsers (limited implementations of just our subset of WKT projections, not all possible WKT projections, of course! likewise, just handle our projstrings.)
    1. Overview of parsing in Python: https://tomassetti.me/parsing-in-python/
    2. Also perhaps of use: https://www.dabeaz.com/ply/ply.html#ply_nn0

QGIS Plugin tutorials

A bunch of these. This one seems the most useful:

These may also be helpful:

Managing dependencies:

Adding submodule