<div dir="ltr"><div><br><br>On Thu, Mar 22, 2018 at 7:16 AM, Markus Neteler <<a href="mailto:neteler@osgeo.org">neteler@osgeo.org</a>> wrote:<br>><br>> On Tue, Mar 20, 2018 at 8:04 PM, Markus Metz<br>> <<a href="mailto:markus.metz.giswork@gmail.com">markus.metz.giswork@gmail.com</a>> wrote:<br>> > Hi all,<br>> ><br>> > I have added support for the new PROJ 5+ API in trunk, finished with r72433.<br>><br>> That's really great! First OSGeo project :-)<br>><br>> It was a lot of work for you, thanks.<br><br></div>The work is not yet finished. The current implementation works but is ugly and code in modules became less readable because of lots of ifdefs for PROJ4 or PROJ5. I am now testing a new GRASS API as interface to PROJ4/5 that would allow to remove these ifdefs in modules. The old GRASS API as well as the standard PROJ4 API will still be supported. The main difference is that GRASS now uses for PROJ5 the new pipeline syntax which allows to define more complex transformations. Forward/backward transformation will also become easier by simply defining the direction. m.proj still needs to be updated to support this new pipeline syntax with any number of steps as input for proj_in.<br><div><br>><br>> > This means, trunk is now using exclusively the new PROJ 5+ API if available.<br>> ><br>> > This new PROJ 5 API is available e.g. in Debian testing.<br>> ><br>> > Please test!<br>> ><br>> > During testing, I discovered some dangerous naming conflicts in GRASS and<br>> > PROJ4/PROJ5: internal functions start both in GRASS and PROJ with pj_ which<br>> > can lead to cryptic errors. Within GRASS, some but not all<br>> > projection-related functions start with GPJ_, this should be adopted for<br>> > those starting with pj_. Also the GRASS structure struct pj_info should be<br>> > renamed to struct gpj_info.<br>><br>> BTW: Also GDAL now comes with support for PROJ 5, see<br>> <a href="https://lists.osgeo.org/pipermail/gdal-dev/2018-March/048278.html">https://lists.osgeo.org/pipermail/gdal-dev/2018-March/048278.html</a><br><br></div><div>Nice!<br><br></div><div>Markus M<br></div><div>><br>> markusN<br><br></div></div>