[QGIS-Developer] QGIS and Proj 6

Nathan Woodrow madmanwoo at gmail.com
Mon Jun 3 19:03:15 PDT 2019


Great work! I know that has been a massive project and I'm sure it's well
worth it (except for the grey hairs now).

Thanks, heaps to ICSM for the funding to make this happen.

On Mon, Jun 3, 2019 at 5:28 PM Nyall Dawson <nyall.dawson at gmail.com> wrote:

> Hi all,
>
> Following the merge of https://github.com/qgis/QGIS/pull/30040 , I now
> consider QGIS' port to the Proj 6 API complete. Here's a bit of a
> summary of what's been done here (on builds based on proj 6.1 and
> later only, more on that later[1])
>
> - The Proj CRS database is now used to populate QGIS' internal CRS
> database. We no longer use the combination of GDAL CSV files and
> manual QGIS overrides we've used till now. This means that ALL
> responsibility for CRS definitions and updating these sit were they
> belong, upstream in the proj library. It also means we'll be an exact
> match wrt projections as other tools which have completed the port,
> such as GDAL 3.0. (All this goodness is thanks to the GDAL barn
> raising effort). We still HAVE an internal projection database, in
> order not to break existing 3.x API, so we'll need to revisit that at
> 4.0 and see if it can be safely removed then.
>
> - We rely entirely on Proj 6's wonderful logic for generating the best
> coordinate operation to transform between CRS pairs now. This means
> (amongst other stuff), we correctly support complex things like
> operations which require a "pivot datum", e.g. transformation to and
> from GDA2020 coordinate systems. Again, this is thanks to the GDAL
> barn raising effort... if it wasn't for that, we'd be... YEARS away
> from even dreaming about supporting these correctly. Seriously, hats
> off to the proj/GDAL teams here, they've done a brilliant effort, and
> have been tirelessly answering tons of questions on their mailing
> lists.
>
> - Instead of the older approach QGIS used for datum transformations
> (carrying around our own table of when grid shift files can be used),
> we now use proj to determine these. This considerably changes the user
> interface shown when a user has opted into selecting manually a
> transform to use when multiple transforms exist, and we now show a
> simplified list of available (and non-available) pathways.
>
> - We also use proj's database to populate lists of available
> ellipsoids for use in distance and area calculations. This has cleaned
> up the ellipsoid choices considerably, and added many additional
> ellipsoid definitions as a result. (woohoo... no more duplicate
> "WGS84"/"WGS 84" entries!)
>
> - The UX for notifying users about issues in coordinate transforms is
> greatly improved, e.g. users are now alerted when a more accurate
> transform is possible, but not usable on their system (e.g. due to
> missing .gsb grid shift files). Wherever possible, we present users
> with direct download links to obtain these required/desired grid shift
> files. The intention here is to ensure users are informed when
> transforms can be improved, instead of silently falling back to less
> accurate options.
>
> - Users also now have the option of placing grid shift files in "proj"
> folder off their user profile. This means users can install grid shift
> files and make them available in QGIS without requiring administrative
> rights (possibly in future we could make QGIS fire up a background
> task which automatically downloads and installs grids on demand...)
>
> - We've also completed a project which began back in the lead-up to
> 3.0, which ensures that project-specific transformation pathway
> settings are correctly respected EVERYWHERE a coordinate transform is
> performed. This also means we're ready for the next stage in handling
> 4d coordinate transforms (when these start to land in 2020 and beyond)
>
> As noted above, a lot of this is only possible thanks to improvements
> in the proj and gdal libraries, which landed as a result of the GDAL
> barn raising effort. On the QGIS side, it was ONLY possible thanks to
> funding from the Australian ICSM. It's been a HUGE undertaking, so I'm
> extremely grateful that the ICSM has had the foresight to invest into
> QGIS and open source software development in this way.
>
> Nyall
>
> [1] Note that building 3.8 using the Proj 6 library requires a minimum
> of Proj 6.1 -- it's not possible to build using Proj 6.0. There was an
> API call added in 6.1 which we require, and I couldn't work around.
> Sorry for any inconveniences this causes!
> _______________________________________________
> QGIS-Developer mailing list
> QGIS-Developer at lists.osgeo.org
> List info: https://lists.osgeo.org/mailman/listinfo/qgis-developer
> Unsubscribe: https://lists.osgeo.org/mailman/listinfo/qgis-developer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20190604/b7d40e3e/attachment.html>


More information about the QGIS-Developer mailing list