Compare commits

...
3682 Commits
Author SHA1 Message Date
Clifford Yapp 30b6e69ac1 Merge tag '9.7.1' into RELEASE 2026-02-04 16:13:45 -05:00
Kristian Evers e37c81729a docs: update version numbers and release date 2025-12-01 15:28:34 +01:00
Kristian Evers 9719626fc5 docs: update news and download for 9.7.1 release 2025-12-01 15:27:19 +01:00
Kristian Evers ff5f3b166a Update version numbers for 9.7.1 release 2025-11-25 10:56:03 +01:00
Kristian Evers da62929788 database: Bump PROJ-data version number 2025-11-25 10:47:42 +01:00
Kristian Evers 6f4f4e131f Update NEWS for 9.7.1 release 2025-11-25 10:45:31 +01:00
Kristian Evers d3463f1435 Merge remote-tracking branch 'origin/9.7' into 9.7 2025-11-25 10:44:49 +01:00
Kristian Evers 9669eff676 Merge pull request #4620 from OSGeo/backport-4592-to-9.7
[Backport 9.7] projinfo: make it honour '-k crs'
2025-11-25 10:43:37 +01:00
Kristian Evers 20c61b37aa Update man-pages from Sphinx-docs 2025-11-25 10:27:32 +01:00
Even Rouault db4a625dca projinfo: make it honour '-k crs' 2025-11-25 08:39:29 +00:00
Even Rouault 43e1cfe336 Merge pull request #4615 from OSGeo/backport-4606-to-9.7
[Backport 9.7] WKT/PROJJSON datum ensemble import: allow no members
2025-11-20 15:18:21 +01:00
Even Rouault f6c51f6e9f WKT/PROJJSON datum ensemble import: allow no members
With the future extension of the ETRS89 datum ensemble to all recently
created ETRS89-XX national datums, the number of members in the ensemble
will be huge and will make ugly WKT/PROJJSON, hence it is highly likely
that listing the members will be made optional. Be tolerant of that on
the parsing size, but still emit them on export for now.
2025-11-19 16:22:39 +00:00
Even Rouault 5d07e2e689 Merge pull request #4601 from OSGeo/backport-4599-to-9.7
[Backport 9.7] BoundCRS::identify: fix creation of an invalid BoundCRS (that can cause later crashes) for CRS based on 'NTF (Paris)'
2025-11-04 12:01:36 +01:00
Even Rouault 1e730948fe BoundCRS::identify: fix creation of an invalid BoundCRS (that can cause later crashes) for CRS based on 'NTF (Paris)'
Fixes qgis/qgis#63787
2025-11-03 23:27:27 +00:00
Even Rouault bcd4ac4441 Avoid false positive coverity scan warning 2025-11-01 22:32:59 +01:00
Even Rouault 46cb2512a5 Merge pull request #4595 from OSGeo/backport-4594-to-9.7
[Backport 9.7] proj_clone(): fix insufficient propagation of FORCE_OVER=YES
2025-11-01 22:29:56 +01:00
Even Rouault fe2605eb2f proj_clone(): fix insufficient propagation of FORCE_OVER=YES
Fixes #4591
2025-11-01 15:33:12 +00:00
Even Rouault 95fa250ce9 Merge pull request #4586 from OSGeo/backport-4583-to-9.7
[Backport 9.7] Database: update to EPSG v12.029
2025-10-16 23:15:34 +02:00
Even Rouault 7f48d80289 Database: add fr_ign_ggm23v2.tif to grid_alternatives.sql 2025-10-03 20:00:11 +00:00
Even Rouault 7c69c3aa44 Database: update to EPSG v12.029 2025-10-03 20:00:11 +00:00
Even Rouault cb258bc70d Database: update to EPSG v12.027 2025-10-03 20:00:11 +00:00
Even Rouault 73802200d2 Merge pull request #4582 from OSGeo/backport-4581-to-9.7
[Backport 9.7] createOperations(): fix compound to compound when horizontal CRS of …
2025-09-29 09:52:14 +02:00
Even Rouault fecbbae427 createOperations(): fix compound to compound when horizontal CRS of one is a bound whose hub CRS is the geog CRS of the target, and a vertical transf is involved
Fixes #4580
2025-09-29 07:03:10 +00:00
Even Rouault b11b76c4d1 Merge pull request #4579 from OSGeo/backport-4577-to-9.7
[Backport 9.7] createOperations(): fix compound to compound when vertical CRS definition is equivalent but not strictly identical
2025-09-26 15:17:23 +02:00
Even Rouault 9c381624cd createOperations(): fix compound to compound when vertical CRS definition is equivalent but not strictly identical
Fixes #4576
2025-09-24 15:34:40 +00:00
Even Rouault 6e3bb0dfc9 Merge pull request #4578 from OSGeo/backport-4574-to-9.7
[Backport 9.7] Database: enable transformations_czechia.sql
2025-09-24 17:12:24 +02:00
Even Rouault 8b0ea2e182 Database: enable transformations_czechia.sql
now that cz_cuzk_table_-y-x_3_v1710.tif is available
(https://github.com/OSGeo/PROJ-data/pull/147)
2025-09-23 17:49:34 +00:00
Even Rouault 5224d8350d Merge pull request #4572 from OSGeo/backport-4571-to-9.7
[Backport 9.7] Database: update to EPSG v12.026
2025-09-18 15:56:31 +02:00
Even Rouault 6eac68f682 Database: update to EPSG v12.026
Remove extra erroneous usage for EPSG:11021 'ETRS89-NOR [EUREF89] / UTM zone 31N'
2025-09-18 13:01:41 +00:00
Even Rouault 54ea7524f3 Merge pull request #4570 from OSGeo/backport-4568-to-9.7
[Backport 9.7] Database: update to EPSG v12.025
2025-09-17 10:47:06 +02:00
Even Rouault f7284d37a8 Various tweaks to take into account switch from ETRS89 to ETRS89-NOR [EUREF89] 2025-09-15 11:42:51 +00:00
Even Rouault 3320ed884b Fix setting requiresPerCoordinateInputTime flag for PROJ-synthetized operations 2025-09-15 11:42:51 +00:00
Even Rouault bdc0bc6480 Database: update to EPSG v12.025 2025-09-15 11:42:50 +00:00
Even Rouault 334395bea0 news.rst: fixes 2025-09-15 13:37:03 +02:00
Kristian Evers 7b92e89450 Update website version numbers and dates 2025-09-15 09:13:15 +02:00
Kristian Evers b24cdfa5ec Update docs for 9.7.0 release 2025-09-15 09:02:18 +02:00
Kristian Evers 5c07a4bddb proj.db: bump version number of PROJ-data 2025-09-08 15:14:35 +02:00
Kristian Evers ca5bbdd01e Update NEWS for 9.7.0 release! 2025-09-08 15:13:08 +02:00
Kristian Evers 9340b742dd Update man-pages from Sphinx-docs 2025-09-08 13:54:57 +02:00
Even Rouault 2c57ef8357 Revert "CI: workaround cppcheck bug"
This reverts commit b3c52f3af3.

The bug has been fixed in cppcheck
2025-09-07 13:41:56 +02:00
Even Rouault 16b2189481 Merge pull request #4563 from OSGeo/dependabot/github_actions/actions/checkout-5
Bump actions/checkout from 4 to 5
2025-09-05 18:08:10 +02:00
Even Rouault 7d596ae1c3 Merge pull request #4564 from rouault/no_kv_Svalbard_EUREF89_SVD2024
Database: add mapping from Href_Svalbard_EUREF89_EGG2015_2024.bin to no_kv_Svalbard_EUREF89_SVD2024.tif
2025-09-05 18:07:37 +02:00
Even Rouault 5dc8afcd92 Database: add mapping from Href_Svalbard_EUREF89_EGG2015_2024.bin to no_kv_Svalbard_EUREF89_SVD2024.tif
```
$ echo 76 25 0 0 | PROJ_DATA=data PROJ_NETWORK=ON bin/cct EPSG:11004
 76.0000000000   25.0000000000      -25.6158        0.0000
```
2025-09-05 16:35:28 +02:00
Even Rouault 5bb60a8536 Fix typos [ci skip] 2025-09-02 21:42:28 +02:00
dependabot[bot] 6550d6d93b Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-09-02 12:01:44 +00:00
Even Rouault 080fd7ae4a Merge pull request #4562 from rouault/epsg_12_021
Database: update to EPSG v12.022
2025-09-02 10:15:20 +02:00
Even Rouault 2b51a049ac Add logic to fix ITRF2014 to ETRS89-DNK 2025-09-01 16:33:23 +02:00
Even Rouault b38d51f898 Database: update to EPSG v12.022 2025-08-30 23:03:31 +02:00
Even Rouault 62c603f3f9 Add a data/sql/non_imported_operations.sql (non integrated in DB) 2025-08-30 23:03:31 +02:00
Even Rouault 62645ef6b1 travis/install.sh: test adding non-official file to DB 2025-08-30 23:03:31 +02:00
Even Rouault 77cefbaaec Import and implement 3 new methods used by NKG (bump db structure to 1.6)
Demo
```
 # Tests "Position Vector (geocen) & Geocen translations NEU velocities (gtg)"

$ echo 3140996.6730 596336.8511 5500477.1338 | PROJ_NETWORK=ON PROJ_DATA=data bin/cct NKG:ETRF14_TO_FI
 3140996.7242    596336.8904  5500477.0896     inf
$ echo 3140996.6730 596336.8511 5500477.1338 | PROJ_NETWORK=ON PROJ_DATA=data bin/cct EPSG:10810
 3140996.7242    596336.8904  5500477.0896     inf

$ echo 3140996.7242 596336.8904 5500477.0896 | PROJ_NETWORK=ON PROJ_DATA=data bin/cct -I NKG:ETRF14_TO_FI
 3140996.6730    596336.8511  5500477.1338     inf
$ echo 3140996.7242 596336.8904 5500477.0896 | PROJ_NETWORK=ON PROJ_DATA=data bin/cct -I EPSG:10810
 3140996.6730    596336.8511  5500477.1338     inf

 # Tests "Geocentric translations using NEU velocity grid (gtg)" and "Geocen translations by grid (gtg) & Geocen translations NEU velocities (gtg)"

$ echo 3140996.6730 596336.8511 5500477.1338 2025 | PROJ_NETWORK=ON PROJ_DATA=data bin/cct NKG:ITRF2014_TO_NO
 3140997.2140    596336.4062  5500476.6768     2025.0000
$ echo 3140996.6730 596336.8511 5500477.1338 2025 | PROJ_NETWORK=ON PROJ_DATA=data bin/cct EPSG:10817
 3140997.2140    596336.4062  5500476.6768     2025.0000

$ echo 3140997.2140 596336.4062 5500476.6768 2025 | PROJ_NETWORK=ON PROJ_DATA=data bin/cct -I NKG:ITRF2014_TO_NO
 3140996.6730    596336.8511  5500477.1338     2025.0000
$ echo 3140997.2140 596336.4062 5500476.6768 2025 | PROJ_NETWORK=ON PROJ_DATA=data bin/cct -I EPSG:10817
 3140996.6730    596336.8511  5500477.1338     2025.0000
```
2025-08-29 14:41:18 +02:00
Even Rouault a2628fcda1 Database: update to EPSG v12.021 2025-08-27 21:20:30 +02:00
Even Rouault ff43c46b19 Merge pull request #4561 from rouault/epsg_12_019
Database: update to EPSG v12.019
2025-08-21 17:58:09 +02:00
Even Rouault 2048af1d9e Add support for 'Geographic2D Offsets by TIN Interpolation (JSON)' method and remove custom database entry for 'NGO 1948 to ETRS89 (2)' 2025-08-21 00:09:06 +02:00
Even Rouault 3a00a758c3 Database: update to EPSG v12.019 2025-08-21 00:09:06 +02:00
Even Rouault d029573c53 CI: add an action to verify proper linting 2025-08-21 00:09:06 +02:00
Even Rouault d1bba41fce Reformat 2025-08-20 17:08:08 +02:00
Even Rouault e4219caa29 Merge pull request #4560 from cffk/geod-2.2
BUG-fix: geodesic inverse for meridional points on prolate ellipsoid
2025-08-19 20:11:25 +02:00
Charles Karney 7f8716862e BUG-fix: geodesic inverse for meridional points on prolate ellipsoid
This fixes a bug in the inverse geodesic routine for extreme prolate
ellipsoids (f < -2 or b > 3*a).  The utility routine invgeod does not
allow you to specify prolate ellipsoid (an overall gripe I have with
PROJ).  However, the API does let you set f < 0.  Of course, the results
you get are still approximate, since f is outside the recommended range
f < |1/50|.

This syncs with version 2.2 of geographiclib-c.  This includes a couple
of workarounds for compiler issues:

(1) clang -Wkeyword-macro triggered a warning with nullptr being
defined.  Switch to NULLPTR and define this to be nullptr, NULL, or 0.

(2) "error: a function declaration without a prototype is deprecated in
all versions of C [-Werror,-Wstrict-prototypes]".  Fix by changing the
declaration "int f()" to "int f(void)".

Finally, update geod.rst to replace +ellps=<ellipse> by
+ellps=<ellispoid>.  Presumably the man page will catch up shortly.
2025-08-19 11:44:14 -04:00
Even Rouault ec880608be Merge pull request #4559 from jjimenezshaw/docker-libtiff-dev
Use libtiff-dev instead of libtiff5-dev in docker
2025-08-18 12:59:47 +02:00
Javier Jimenez Shaw ee4491802e Use libtiff-dev instead of libtiff5-dev in docker 2025-08-18 09:25:15 +02:00
Even Rouault 1ab9dfc62f Merge pull request #4557 from jjimenezshaw/update-docker-24.04
Update Dockerfile to ubuntu:24.04
2025-08-15 20:45:54 +02:00
Javier Jimenez Shaw 5b926b8a93 update Dockerfile to ubuntu:24.04 2025-08-15 18:54:36 +02:00
Even Rouault 27dfb11f26 Merge pull request #4556 from rouault/epsg_12_018
Database: update to EPSG v12.018
2025-08-12 12:53:50 +02:00
Even Rouault 2750aec84b Database: update to EPSG v12.018 2025-08-12 00:11:20 +02:00
Even Rouault 2d1c017de2 Merge pull request #4555 from rouault/fix_gdal_12891
Support exporting Mercator (Spherical) on a sphere as Mercator_1SP in WKT1
2025-08-08 21:44:56 +02:00
Even Rouault 37efb5a7d3 Support exporting Mercator (Spherical) on a sphere as Mercator_1SP in WKT1
Fixes OSGeo/gdal#12891
2025-08-08 12:09:35 +02:00
Even Rouault b3c52f3af3 CI: workaround cppcheck bug 2025-08-08 12:09:16 +02:00
Even Rouault 3c600db66a Merge pull request #4554 from rouault/db_SLO-VTP2024
Database: add entry for SLO-VTP2024.xyz in grid_alternatives.sql
2025-08-01 13:07:19 +02:00
Even Rouault 17b51a2601 Merge pull request #4553 from jjimenezshaw/sqlite-msg
On SQLite query error, show first the error msg than the sql query
2025-07-30 18:54:09 +02:00
Even Rouault 408573e8f3 Database: add entry for SLO-VTP2024.xyz in grid_alternatives.sql
Matches PROJ-data addition of https://github.com/OSGeo/PROJ-data/pull/144
2025-07-30 18:52:32 +02:00
Javier Jimenez Shaw 2653d9865b On SQLite query error, show first the error msg
than the sql query. The query could be huge, and the text not registered completely.
2025-07-28 18:54:22 +02:00
Even Rouault 2de2d856ae Merge pull request #4552 from rouault/fix_4550
createOperations(): fix a case involving 2 CompoundCRS, one with TOWGS84, and the 2 verticalCRS differing by units
2025-07-28 15:44:52 +02:00
Even Rouault 14f46f263d createOperations(): fix a case involving 2 CompoundCRS, one with TOWGS84, and the 2 verticalCRS differing by units
Fixes #4550
2025-07-26 18:55:22 +02:00
Even Rouault 2ce895da4d Merge pull request #4549 from rouault/epsg_12_017
Database: update to EPSG 12.017
2025-07-24 16:39:19 +02:00
Even Rouault 0fead84ee9 CI: avoid issue with msys2 2025-07-23 19:18:07 +02:00
Even Rouault b158bbc7fc Database: update to EPSG 12.017
We currently skip operation EPSG:10953, 'CSRN2025 (ITRF2020) to CSRN2025 (NAD83 2011) (1)',
as this is a time-dependent Helmert transfomation between 2 static CRS,
which breaks our sanity checks. A following EPSG update will fix this.
2025-07-23 18:03:59 +02:00
SunBlackandKristian Evers 95b1764d18 Use correct path alias syntax on windows (#4546)
Co-authored-by: Kristian Evers <kristian@evers.dev>
2025-07-14 23:52:00 +02:00
Even Rouault 5571b7b737 Merge pull request #4545 from rouault/fix_cs_iau_polar
IAU2015 CRS: fix wrong code for coordinate system of North Polar and South Polar CRSs
2025-07-12 18:21:44 +01:00
Even Rouault 523ad5804c IAU2015 CRS: fix wrong code for coordinate system of North Polar and South Polar CRSs 2025-07-11 15:02:26 +02:00
Even Rouault 79d318f2bd Database: update to EPSG v12.015
also update consistency checks and code to make sure we deal properly
with new Helmert transformation EPSG:10905 "ETRS89/DREF91/2016 to Asse
2025 + Asse 2025 height (1)" whose source CRS is a geog3D CRS but target
is a compound CRS...
2025-07-11 12:17:05 +02:00
Even Rouault 36ff1542f8 Merge pull request #4540 from rouault/epsg_12_014
Database: update to EPSG 12.014
2025-07-06 14:14:56 +01:00
Even Rouault b786f363ec Database: update to EPSG 12.014
The main change is the improved metadata accuracy declaration for
"WGS 84 to EGM2008 height (1)" from 1 m to 0.113 m.

And also the mention to cdn.proj.org GTG grids for EGM96 and EGM2008 :-)
2025-07-05 13:18:13 +02:00
Even Rouault af01b94f07 Merge pull request #4536 from rouault/fix_4535
Fixes related to WKT import/export of DerivedGeodetic/GeographicCRS
2025-07-04 09:25:24 +01:00
Even Rouault a3cf3cad37 Merge pull request #4539 from rouault/fix_4537
Fix tolower()/toupper() implementation to not lead to undefined behavior
2025-07-04 09:25:08 +01:00
Even Rouault 127ba1343f Avoid undefined behavior with isgraph() use 2025-07-04 09:59:27 +02:00
Even Rouault 7ed4f9d68c WKT2:2019 export: export ID of BaseCRS of DerivedGeographic/GeodeticCRS (when there is not an ID at DerivedCRS level)
Related to refs #4535
2025-07-03 20:43:53 +02:00
Even Rouault 6aff55988f WKT import: add heuristics to figure out the baseCRS of a DerivedGeodeticCRS that is geocentric and using a Helmert geocentric deriving conversion is geocentric
Fixes #4535
2025-07-03 20:43:53 +02:00
Even Rouault f43c123c0d Fix tolower()/toupper() implementation to not lead to undefined behavior
Fixes #4537
2025-07-03 20:22:28 +02:00
Even Rouault 4c2d15eede Merge pull request #4532 from vmirgorod/feature/proj_geod_direct
Added proj_geod_direct for PJ trasformation object
2025-07-02 19:55:47 +01:00
Even Rouault c81772bc2d Merge pull request #4534 from rouault/db_new_nsgi_grids
Database: referene nl_nsgi_nllat2018.tif and nl_nsgi_bongeo2004.tif grids
2025-07-01 14:41:20 +01:00
Even Rouault 2a4d3b33d5 Database: referene nl_nsgi_nllat2018.tif and nl_nsgi_bongeo2004.tif grids
Those grids were added in PROJ-data 1.22 per https://github.com/OSGeo/PROJ-data/pull/137
but the proj.db changes were missing
2025-07-01 12:17:33 +02:00
Even Rouault e3b228f00b Merge pull request #4531 from rouault/fix_4529
gie: fix memory leak on non existing input file
2025-06-30 21:17:49 +01:00
Slava Mirgorod f6f966c66d Added proj_geod_direct for PJ object 2025-06-29 15:53:46 +03:00
Even Rouault 1c7e10d963 Merge pull request #4530 from rouault/fix_4528
opt_parse: avoid potential heap-buffer-overflow when parsing non-ASCII characters (affect cct and gie)
2025-06-28 13:36:27 +01:00
Even Rouault 37e03ffaa3 gie: fix memory leak on non existing input file
Fixes #4529

and add minimal tet_gie.yaml file
2025-06-28 14:35:58 +02:00
Even Rouault 432f21bd11 cct: fix memleak with -h, --version and failure with -I 2025-06-28 14:35:58 +02:00
Even Rouault 2493491947 opt_parse: avoid potential heap-buffer-overflow when parsing non-ASCII characters (affect cct and gie)
Fixes #4528
2025-06-28 00:16:53 +02:00
Even Rouault c1d8b687ba cct and gie: return error code 1 when argument parsing fails 2025-06-27 15:18:34 +02:00
Even Rouault dc0eff523a cct and gie: return error code 1 when argument parsing fails 2025-06-27 15:08:54 +02:00
Even Rouault db3a7e79a6 Merge pull request #4527 from rouault/fix_msvc_C5287
geodesic.c: fix MSVC C5287 warnings about 'operands are different enum types 'geod_mask' and 'captype''
2025-06-25 20:20:07 +01:00
Even Rouault e33b29eedf geodesic.c: fix MSVC C5287 warnings about 'operands are different enum types 'geod_mask' and 'captype'' 2025-06-25 16:43:06 +02:00
Even Rouault 40f8dec820 Merge pull request #4526 from rouault/fix_pyproj_1501
proj_trans_bounds(): fix 9.6.2 regression when going from long/lat crossing antimeridian to projected
2025-06-18 17:08:55 +01:00
Even Rouault da8b102c68 Merge pull request #4525 from rouault/refs_gdal_12583
WKT importer: better error message when BBOX is invalid (e.g south_lat > north_lat)
2025-06-18 17:08:47 +01:00
Even Rouault 6456f9e92b Merge pull request #4523 from rouault/fix_4522
Geostationary projection: speed up inverse spherical and ellipsoidal computation
2025-06-18 17:08:38 +01:00
Even Rouault d656da3434 proj_trans_bounds(): fix 9.6.2 regression when going from long/lat crossing antimeridian to projected
Fixes issues introduced by https://github.com/OSGeo/PROJ/pull/4513 where
we generate an output BBOX that is too large.

Fixes https://github.com/pyproj4/pyproj/issues/1501
2025-06-18 01:06:07 +02:00
Even Rouault c94e4664e2 WKT importer: better error message when BBOX is invalid (e.g south_lat > north_lat)
Refs https://github.com/OSGeo/gdal/issues/12583
2025-06-17 17:34:27 +02:00
Even Rouault b00563892a Geostationary projection: speed up inverse spherical computation
Before:
```
$ bin/bench_proj_trans --pipeline "+proj=pipeline +inv +step +proj=geos +h=35785831.0 +lon_0=0 +ellps=sphere" 137881.85 4490747.09
137881.85 4490747.09 -> 0.034807228056148 0.850471730911161
Duration: 677 ms
Throughput: 7.39 million coordinates/s
```

After:
```
$ bin/bench_proj_trans --pipeline "+proj=pipeline +inv +step +proj=geos +h=35785831.0 +lon_0=0 +ellps=sphere" 137881.85 4490747.09
137881.85 4490747.09 -> 0.034807228056148 0.850471730911161
Duration: 602 ms
Throughput: 8.31 million coordinates/s
```
2025-06-16 11:26:06 +02:00
Even Rouault 70a066c6be Geostationary projection: speed up inverse ellipsoidal computation
Fixes #4522

Before:
```
$ bin/bench_proj_trans --pipeline "+proj=pipeline +inv +step +proj=geos +h=35785831.0 +lon_0=0 +ellps=WGS84" 137881.85 4490747.09
137881.85 4490747.09 -> 0.0349065842446029 0.855211334383648
Duration: 978 ms
Throughput: 5.11 million coordinates/s
```

After:
```
$ bin/bench_proj_trans --pipeline "+proj=pipeline +inv +step +proj=geos +h=35785831.0 +lon_0=0 +ellps=WGS84" 137881.85 4490747.09
137881.85 4490747.09 -> 0.0349065842446029 0.855211334383648
Duration: 668 ms
Throughput: 7.49 million coordinates/s
```
2025-06-16 11:21:03 +02:00
Even Rouault d87fcea05e Fix code comment 2025-06-10 18:21:51 +02:00
Even Rouault 2f93cd222c download.rst: update for 9.6.2 2025-06-06 14:27:17 +02:00
Even Rouault dfe99c271b news.rst: update 2025-06-06 14:27:17 +02:00
Even Rouault 82d8e183b6 NEWS.md: update for 9.6.2 2025-06-06 14:27:17 +02:00
Even Rouault 8879a1aa69 Merge pull request #4519 from rouault/db_esri_deprecated_fix
Database: change ESRI deprecated records back to their deprecated state
2025-06-04 08:18:34 +01:00
Even Rouault 320bf3fa5f Merge pull request #4518 from rouault/fix_gdal_12511
ProjectedCRS::identify(): more robust identification of old ESRI names using _IntlFeet
2025-06-04 08:18:15 +01:00
Even Rouault b12746ae91 Database: change ESRI deprecated records back to their deprecated state
Fixes https://github.com/OSGeo/PROJ-CRS-Explorer/pull/36#issuecomment-2935170928

During the ArcGIS Pro 3.5 database import, the import script wrongly
considered the new value 'codechange' as meaning not deprecated, which
resulted in deprecated CRS no longer being flagged as such.
2025-06-03 15:40:17 +02:00
Even Rouault 1dba65ee94 ProjectedCRS::identify(): more robust identification of old ESRI names using _IntlFeet
Fixe https://github.com/OSGeo/gdal/issues/12511
2025-06-03 15:40:05 +02:00
Even Rouault e084868e2c Update docs/source/spelling_wordlist.txt 2025-06-03 15:39:53 +02:00
Even Rouault a9556b921d Merge pull request #4516 from rouault/more_warnings
Enable -Wimplicit-fallthrough, -Wdeprecated-copy-dtor, -Wweak-vtables…
2025-06-03 13:18:23 +01:00
Kristian Evers c7f9b6f2a1 docs: Re-enable sphinxcontrib.spelling
This was commented out due to the extension not being available on MacOS
where the docs where build locally to check for issues in the RST-files.
2025-06-02 16:26:55 +02:00
Kristian Evers 2f51d313af Update docs for 9.6.1 release 2025-06-02 15:51:46 +02:00
Even Rouault dccc94fb66 Enable -Wimplicit-fallthrough, -Wdeprecated-copy-dtor, -Wweak-vtables, -Wdocumentation-unknown-command when possible 2025-06-01 13:48:46 +02:00
Even Rouault aed8544393 Merge pull request #4515 from rouault/fix_4514
Fix issue related to D_Unknown_based_on_WGS_84_ellipsoid datum name
2025-05-30 15:52:48 +01:00
Even Rouault 839aa740d9 Datum name comparison: better take into account Esri style D_ name prefixing
Fixes #4514
2025-05-29 20:12:56 +02:00
Even Rouault 71d62f1078 WKT import: normalize Esri style 'D_Unknown_based_on_WGS_84_ellipsoid' datum name to 'Unknown based on WGS 84 ellipsoid'
Fixes #4514
2025-05-29 20:02:48 +02:00
Even Rouault 5a089b0c4c Merge pull request #4513 from rouault/qgis_61318
proj_trans_bounds(): sample points within the source grid to avoid missing extent such as world-wide coverage from EPSG:4326 to ESRI:54099 (Spilhaus)
2025-05-28 15:48:14 +01:00
Even Rouault 7a3b3bcaa0 Code comment typo fix 2025-05-28 16:15:01 +02:00
Even Rouault 52007dc026 proj_trans_bounds(): sample points within the source grid to avoid missing extent such as world-wide coverage from EPSG:4326 to ESRI:54099 (Spilhaus)
Relates/fixes https://github.com/qgis/QGIS/issues/61318
2025-05-28 16:14:53 +02:00
Even Rouault c42922b7c9 proj_trans_bounds(): change a bit to be more natural looking
similar change for proj_trans_bounds_3D(), with a fix for an
invalid axis order swap when input is geocentric and output is lon/lat
ordered
2025-05-28 16:07:44 +02:00
Even Rouault e516424b0f Merge pull request #4512 from rouault/fix_qgis_61999
proj_trans_bounds(): avoid erroring out, in some cases, when PJ* object is directly constructed from a PROJ pipeline
2025-05-28 15:07:18 +01:00
Even Rouault 05389313ee proj_trans_bounds(): avoid erroring out, in some cases, when PJ* object is directly constructed from a PROJ pipeline
Refs https://github.com/qgis/QGIS/issues/61999
2025-05-26 22:37:19 +02:00
Even Rouault c927bb19df Merge pull request #4511 from rouault/epsg_12_013
Database: update to EPSG v12.013
2025-05-26 21:19:45 +01:00
Even Rouault a64a748701 Database: update to EPSG v12.013 2025-05-26 18:50:05 +02:00
Kristian Evers 2d8bb41896 Bump PROJ-data version to 1.22 in database metadata 2025-05-25 20:34:13 +02:00
Kristian Evers d8e202b01c Update CITATION.cff for 9.6.1 release 2025-05-25 20:32:31 +02:00
Kristian Evers 286d7848ca Update NEWS for 9.6.1 release 2025-05-25 20:31:17 +02:00
Even Rouault 14a4ab1708 Merge pull request #4509 from rouault/cppcheck_master_fixe
Make cppcheck master happy
2025-05-25 18:00:29 +01:00
Even Rouault ebc3a192a9 Make cppcheck master happy 2025-05-25 13:59:48 +02:00
Kristian Evers 1c9f43c299 Merge pull request #4507 from rouault/fix_4506
Fix Windows build when both EMBED_RESOURCE_FILES and USE_ONLY_EMBEDDED_RESOURCE_FILES are set
2025-05-25 08:44:56 +02:00
Even Rouault 57b2538df9 Fix Windows build when both EMBED_RESOURCE_FILES and USE_ONLY_EMBEDDED_RESOURCE_FILES are set
Fixes #4506
2025-05-25 00:50:37 +02:00
Even Rouault b2eda4380b Merge pull request #4500 from ag-pix4d/win-generate-pdbs
Add an option to ship PDB files
2025-05-22 10:51:02 +01:00
Kristian Evers a132ed5a77 Add grid alternatives for Danish DVR90->EVRF2019 grids (#4503) 2025-05-22 02:41:52 +02:00
Even Rouault 117da3b0db Merge pull request #4502 from Olexandr88/patch-2
chore(readme): add release badge
2025-05-21 18:07:17 +01:00
Olexandr88 d184732692 Update README.md 2025-05-21 20:01:24 +03:00
Even Rouault 38e5c9e3e6 Merge pull request #4501 from Olexandr88/patch-1
chore: added a badge and link to CodeQL
2025-05-21 17:51:52 +01:00
Olexandr88 fe82b66e1a Update README.md 2025-05-21 19:44:19 +03:00
Alexey Gribovskiy 262f7b50a4 Set EXPORT_PDB for Windows build 2025-05-21 16:56:23 +02:00
Alexey Gribovskiy ebf67f3a34 Add ship_pdb flag 2025-05-21 16:06:12 +02:00
Even Rouault 2f661d5985 Merge pull request #4499 from kbevers/lks-2020
Add grid alternative for lv_lgia_lks92to2020.tif
2025-05-21 14:29:01 +01:00
Kristian Evers 4f8df0c2c0 Add grid alternative for lv_lgia_lks92to2020.tif 2025-05-21 15:08:58 +02:00
Even Rouault 4eb540570f Merge pull request #4497 from kbevers/epsg12.012
Update EPSG to version 12.012
2025-05-21 12:24:08 +01:00
Kristian Evers 4bfcef99f6 Add basic manual to scripts/build_db.py 2025-05-21 11:30:36 +02:00
Kristian Evers 500bdb0ded Update EPSG to 12.012 2025-05-21 11:30:10 +02:00
Even Rouault 8b65d5b14e Merge pull request #4495 from rouault/epsg_12_009
Database: update to EPSG v12.009
2025-05-16 13:27:20 +01:00
Even Rouault 06f1b500b4 Database: update to EPSG v12.009 2025-05-15 17:52:18 +02:00
Even Rouault 1d9623eff3 show_useless_aliases.sql: hide expected duplicates (master only) 2025-05-15 17:52:09 +02:00
Even Rouault 247a4a1184 Merge pull request #4492 from rouault/fix_4491
createOperationsCompoundToGeog(): avoid bringing non-sensical transformations
2025-05-14 11:00:59 +01:00
Even Rouault f26bcc2b38 Merge pull request #4490 from rouault/alias_name_old_epsg
Database: add values from alias_name table that were removed in older EPSG releases, to improve recognizing old WKT strings
2025-05-14 11:00:50 +01:00
Even Rouault 8a467dd147 Merge pull request #4489 from rouault/database_esri_arcgis_pro_3_5
Database: update ESRI to ArcGIS Pro 3.5
2025-05-14 11:00:39 +01:00
Even Rouault 7262632a0c createOperationsCompoundToGeog(): avoid bringing non-sensical transformations
Fixes #4491
2025-05-13 22:01:09 +02:00
Even Rouault bab02db2de Database: add values from alias_name table that were removed in older EPSG releases, to improve recognizing old WKT strings
The process is to look at the diff of the alias_name table for each
update commit of the EPSG database (and going back before our first
update...) and finding removed lines.
2025-05-11 23:47:30 +02:00
Even Rouault 4259ec75ec Database: update ESRI to ArcGIS Pro 3.5 2025-05-11 20:18:13 +02:00
Even Rouault ca296bb942 CI OSX: skip autotools based post-installation test due to issue with m4 2025-05-11 20:17:53 +02:00
Even Rouault e3a27d2d4b Merge pull request #4487 from rouault/epsg_12_008
Database: update to EPSG v12.008
2025-05-07 10:48:00 +01:00
Even Rouault 2840822787 Database: update to EPSG v12.008 2025-05-06 15:45:58 +02:00
Even Rouault a83395650f Fix Coverity Scan warnings 2025-05-04 20:49:53 +02:00
Even Rouault 4113927322 Merge pull request #4484 from rouault/WKT_DEFININGTRANSFORMATION
WKT2 parser: recognize DEFININGTRANSFORMATION (but ignore it)
2025-04-30 20:18:47 +01:00
Even Rouault f9226e2424 WKT2 parser: recognize DEFININGTRANSFORMATION (but ignore it)
related to #4469
2025-04-28 23:42:40 +02:00
Even Rouault a80ccece35 Merge pull request #4479 from rouault/fix_4476
Database: fix duplicated entries with auxiliary database
2025-04-28 12:36:40 +01:00
Even Rouault 6c006da0ea Merge pull request #4477 from rouault/fix_4475
FileManager::open_resource_file(): honour known URLs from grid_altern…
2025-04-28 12:36:32 +01:00
Even Rouault 4d0abd6238 Merge pull request #4474 from jjimenezshaw/better-getGeoidModels
getGeoidModels: use vertical_crs.datum_code to get vcrss ...
2025-04-28 12:36:26 +01:00
Even Rouault e0e1c6e1ae Database: fix duplicated entries with auxiliary database
Fixes #4476

```
$ PROJ_AUX_DB=nsrs_proj.db bin/projinfo NSRS:SD_ABDN
PROJ.4 string:
+proj=tmerc +lat_0=43.2 +lon_0=-98.3 +k=1.00006 +x_0=5840730 +y_0=0 +ellps=GRS80 +units=m +no_defs +type=crs

WKT2:2019 string:
PROJCRS["NATRF2022 / South Dakota Aberdeen",
    BASEGEOGCRS["NATRF2022",
        DYNAMIC[
            FRAMEEPOCH[2020]],
        DATUM["North American Terrestrial Reference Frame 2022",
            ELLIPSOID["GRS 1980",6378137,298.257222101,
                LENGTHUNIT["metre",1]]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433]],
        ID["NSRS","NATRF2022_2D"]],
    CONVERSION["South Dakota Aberdeen (m)",
        METHOD["Transverse Mercator",
            ID["EPSG",9807]],
        PARAMETER["Latitude of natural origin",43.2,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8801]],
        PARAMETER["Longitude of natural origin",-98.3,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8802]],
        PARAMETER["Scale factor at natural origin",1.00006,
            SCALEUNIT["unity",1],
            ID["EPSG",8805]],
        PARAMETER["False easting",5840730,
            LENGTHUNIT["metre",1],
            ID["EPSG",8806]],
        PARAMETER["False northing",0,
            LENGTHUNIT["metre",1],
            ID["EPSG",8807]]],
    CS[Cartesian,2],
        AXIS["easting (X)",east,
            ORDER[1],
            LENGTHUNIT["metre",1]],
        AXIS["northing (Y)",north,
            ORDER[2],
            LENGTHUNIT["metre",1]],
    USAGE[
        SCOPE["Not known."],
        AREA["World."],
        BBOX[-90,-180,90,180]],
    ID["NSRS","SD_ABDN"]]

$ PROJ_AUX_DB=nsrs_proj.db bin/projinfo --list-crs --authority NSRS | grep "South Dakota" | grep -v SD_
NSRS:SD "NATRF2022 / South Dakota"
```
2025-04-27 21:18:48 +02:00
Even Rouault 1a45a728cf FileManager::open_resource_file(): honour known URLs from grid_alternatives that don't point to cdn.proj.org
Fixes #4475

With that fix:
```
$ echo 50 -70 0 | PROJ_NETWORK=ON PROJ_AUX_DB=nsrs_proj.db bin/cs2cs NSRS:NATRF2022_2D+NAPGD2022 NSRS:NATRF2022_3D -d 9
50.000000000	-70.000000000 -26.198699954
```

(adding a new test wasn't convenient as we don't currently have an entry
in grid_alternatives that do not point to cdn.proj.org and can be
accessed through Range requests)
2025-04-27 20:15:29 +02:00
Javier Jimenez Shaw 4ce14c4392 getGeoidModels: use vertical_crs.datum_code to get vcrss that uses different units 2025-04-27 18:21:07 +02:00
Even Rouault dc94ce8e3c Merge pull request #4473 from rouault/uint32_fix
Add missing include for uint32_t on Windows with gcc 15.1
2025-04-27 17:19:18 +01:00
Even Rouault 0122685ef6 Fix C++20 deprecation warning about implicit capture of this 2025-04-27 17:19:46 +02:00
Even Rouault e4db874ab5 CI: MSYS: build with CMAKE_CXX_STANDARD=20 to avoid warnings with gtest 2025-04-27 16:49:38 +02:00
Even Rouault cb0af23b82 Add missing include for uint32_t on Windows with gcc 15.1
Fixes https://github.com/OSGeo/PROJ/actions/runs/14691467666/job/41227338487
2025-04-27 14:38:59 +02:00
Even Rouault cb1ed3177d Merge pull request #4471 from gdt/fix/bare-isnan
c++ nit: Fix bare isnan() to std::isnan()
2025-04-27 12:15:35 +01:00
Greg Troxel 79ca52477d c++ nit: Fix bare isnan() to std::isnan()
and include cmath instead of math.h, because this is a C++ source
file.
2025-04-26 20:02:35 -04:00
Kristian Evers 62795ec369 Merge pull request #4468 from nsajko/projjson_rst_list_item_fix
PROJJSON specification: fix RST list syntax
2025-04-23 11:44:45 +02:00
Neven Sajko 7a856df7b8 PROJJSON specification: fix RST list syntax
https://docutils.sourceforge.io/docs/ref/rst/restructuredtext.html#bullet-lists
2025-04-22 10:44:10 +02:00
Even Rouault 4d1bdab2c5 Merge pull request #4465 from rouault/fix_4464
createOperations(): for NAD83(CSRS)[x] to NAD83(CSRS)[y], do not go through NAD83
2025-04-17 10:23:01 +02:00
Even Rouault 200452a452 createOperations(): for NAD83(CSRS)[x] to NAD83(CSRS)[y], do not go through NAD83
Fixes #4464
2025-04-15 18:44:40 +02:00
Even Rouault e991d42084 Merge pull request #4462 from rouault/fix_c23_embed
CMake: avoid detection of C23 #embed on too old compilers
2025-04-14 10:19:16 +02:00
Even Rouault a48567a790 CMake: avoid detection of C23 #embed on too old compilers
Fixes #4461
2025-04-14 09:58:18 +02:00
Even Rouault 279f54c13b Merge pull request #4459 from rouault/epsg_12_007
Database: update to EPSG v12.007
2025-04-11 14:10:11 +02:00
Even Rouault f5dca5319e Database: update to EPSG v12.007 2025-04-10 16:15:43 +02:00
Even Rouault 313811d5e9 Merge pull request #4457 from jjimenezshaw/gsigeo2024
Add transformation for jp_gsi_jpgeo2024.tif (geoid model JPGEO2024 in…
2025-04-10 11:40:10 +02:00
Javier Jimenez Shaw 2dc4a07432 Add transformation for jp_gsi_jpgeo2024.tif (geoid model JPGEO2024 in Japan) 2025-04-10 10:33:06 +02:00
Even Rouault d423529014 Merge pull request #4454 from rouault/epsg_12_006
Database: update to EPSG v12.006
2025-04-09 18:14:41 +02:00
Even Rouault 52b7f31294 Database: update to EPSG v12.006 2025-04-09 17:36:29 +02:00
Even Rouault 337744530a Avoid cppcheck complain 2025-04-09 17:36:29 +02:00
jgpallero 0f8b1dbd7f Bug correction in Wagner VI parameters (#4449) 2025-04-05 13:16:32 +02:00
Kristian Evers 64c45bb9b3 Merge pull request #4451 from jidanni/patch-42
Update geod.rst to mention -f covers azimuths too
2025-04-04 07:51:30 +02:00
積丹尼 Dan Jacobson aedd4a29bb Update geod.rst to mention -f covers azimuths too 2025-04-04 13:05:56 +08:00
Even Rouault 21ac55dff3 proj_trans_bounds(): fix doc 2025-04-01 23:34:35 +02:00
Charles Karney c58aad1ad9 Implement uniform conversions between auxiliary latitudes (#4446)
This follows on the discussion in #4441.  In particular
latitudes.cpp now offers methods for converting between auxiliary
laitudes using trigonometric series whose coefficients are power series
in n.  The series are evaluated using Clenshaw summation and Horner's
method.  For small flattening, these often offer better accuracy than
the analytical expressions.

Now mlfn.cpp and tmerc.cpp use these conversions, simplifying the
implementations in these files.  In particular tmerc's functions gatg
and clens (which puzzlingly seemed to do exactly the same thing!) have
been removed.  tmerc's clenS (with a capital "S") stays -- it does
complex Clenshaw summation

Along the way, I've simplified pj_conformal_lat and
pj_conform_lat_inverse in latitudes.cpp.  For the former, I've
substituted a better conditioned formula; for the latter, I used the
existing (and more efficent) approach implemented in pj_sinhpsi2tanphi.

The computation of authalic latitudes in latitudes.cpp now uses the
series method if the flattening is small.  However some of the test
cases of the spillhaus projection use large flattening (is this really
necessary?); so I've had to retain the poorly conditioned analytical
formulas as well.

If we really wanted to support large flattening in this case, it's
necessary to evaluate the authalic latitude using Eqs. (52), (53), (54)
of "On auxiliary latitudes" (https://arxiv.org/abs/2212.05818) and using
Newton's method on the tangents of the angles for the inverse, using
Eq. (57).  I don't see the need for these at present.

I've simplified the interface somewhat: passing P instead of P->e,
P->onees, etc. separately; dropping "_coeffs" off the q function name
and the tagging of the inverse function name with "_exact".  I had hoped
to retire the external use of Snyder's q(sinphi).  However, some equal
area projections, e.g., the cylindrical version, really do need this
function instead of the authalic latitude directly.
2025-03-29 14:36:19 +01:00
Kristian Evers 0a142c395b Merge pull request #4443 from rouault/fix_4442
Add missing 'limits' and 'algorithm' includes
2025-03-22 13:41:39 +01:00
Even Rouault ff662169d1 Merge pull request #4441 from rouault/fix_4440
Implement 'exact' authalic latitude->geographic latitude and use it in +proj=aea/cea/laea/eqearth/healpix/rhealpix
2025-03-22 13:10:09 +01:00
Even Rouault 81bb66b489 Add missing 'limits' and 'algorithm' includes
and add CI test to check for that (borrowed from GDAL)

Fixes #4442
2025-03-22 13:09:07 +01:00
Even Rouault 58d3603bd1 latitudes.cpp: improve authalic implementation with @cffk comments A) 2025-03-21 19:30:45 +01:00
Even Rouault 895810a245 Implement 'exact' authalic latitude->geographic latitude and use it in +proj=aea/cea/laea/eqearth/healpix/rhealpix
Fixes #4440
2025-03-20 18:06:29 +01:00
Kristian Evers 024a11723f Merge pull request #4437 from kbevers/omerc-doc
Add note about unexpected behaviour of omerc
2025-03-20 07:21:56 +01:00
Kristian Evers 8847f0b041 Add note about unexpected behaviour of omerc
The mapping from geodetic to projected coordinates is not unique in all
cases for the ellipsoidal form of the projection. It doesn't seem like
we can fix it, so instead a word of caution is added to the docs.

Closes #1922
2025-03-19 22:15:54 +01:00
Even Rouault 208d643e7b Merge pull request #4434 from rouault/epsg_12_005
Database: update to EPSG v12.005
2025-03-19 21:33:37 +01:00
Even Rouault 53fef69e48 Database: update to EPSG v12.005 2025-03-18 12:06:10 +01:00
Even Rouault 4dc0a31bd3 Merge pull request #4435 from kbevers/spelling
Add new words to spellchecking ignore list
2025-03-18 12:05:25 +01:00
Kristian Evers 0f4f567b41 Add new words to spellchecking ignore list 2025-03-18 11:54:10 +01:00
Even Rouault 864adbde97 Merge pull request #4427 from rouault/fix_4425
Deal with South Orientated TMerc presented as regular TMerc but with Scale_Factor=-1
2025-03-16 14:04:22 +01:00
Kristian Evers 8b58501b09 Bump version numbers in preparation for 9.7.0 release 2025-03-15 09:55:56 +01:00
Kristian Evers b312d19454 Update docs for 9.6.0 2025-03-15 09:35:17 +01:00
Even Rouault a394ae789a Deal with South Orientated TMerc presented as regular TMerc but with Scale_Factor=-1
such as ESRI:102470

Fixes #4425
2025-03-14 17:45:33 +01:00
Kristian Evers 771248c787 Merge pull request #4422 from rouault/DEFAULT_EMBED_RESOURCE_FILES_fix
Build: make sure that BUILD_SHARED_LIBS is initialized before defining DEFAULT_EMBED_RESOURCE_FILES
2025-03-13 06:57:19 +01:00
Even Rouault 4ead47b7e9 Build: make sure that BUILD_SHARED_LIBS is initialized before defining DEFAULT_EMBED_RESOURCE_FILES
otherwise DEFAULT_EMBED_RESOURCE_FILES will be set to ON
2025-03-12 21:32:04 +01:00
Kristian Evers 4557d0a4cd Add recent fix to NEWS for 9.6.0 2025-03-11 11:50:40 +01:00
Even Rouault c5a266d8f6 Merge pull request #4416 from sebastic/bash-completion
Remove hashbang from bash completion.
2025-03-10 17:39:45 +01:00
Even Rouault 5e53d327f9 Merge pull request #4418 from jjimenezshaw/doc-all-images
[doc] Add 'List of all projection images' page to documentation
2025-03-10 17:38:58 +01:00
Even Rouault c47596f3bf Merge pull request #4419 from pjonsson/retry-ssl-error
Retry "SSL connection timeout"
2025-03-10 17:37:05 +01:00
Even Rouault 220a06942a projinfo-bash-completion.sh: add leading comment 2025-03-10 17:24:13 +01:00
Peter A. Jonsson f148be8b7d Retry "SSL connection timeout"
Building the GDAL image can fail with:

Downloading https://cdn.proj.org/de_lgvl_saarland_README.txt... (86 / 439)
Downloading https://cdn.proj.org/de_lgvl_saarland_SeTa2016.tif... (87 / 439)
Cannot open https://cdn.proj.org/de_lgvl_saarland_SeTa2016.tif: SSL connection timeout
Cannot download https://cdn.proj.org/de_lgvl_saarland_SeTa2016.tif

so add SSL connection timeout
to the list of things that get
a retry time.

Sibling of commit 72307126.
2025-03-10 13:49:48 +01:00
Javier Jimenez Shaw c131eb072d [doc] document how to run generate_all_images.py 2025-03-09 11:36:19 +01:00
Javier Jimenez Shaw bdce337e5a [dox] fix images for healpix rhealpix projections 2025-03-09 11:29:30 +01:00
Javier Jimenez Shaw 4db14a8cd9 [doc] Add 'List of all projection images' page to documentation 2025-03-08 23:38:21 +01:00
Bas Couwenberg 89c3ac1972 Remove hashbang from bash completion.
Completions are meant to be sourced, not executed.
2025-03-08 17:20:59 +01:00
Kristian Evers e2f043245e Update man-pages from Sphinx-docs 2025-03-08 15:55:50 +01:00
Kristian Evers ef0544bafc Update man-pages from Sphinx-docs 2025-03-08 15:55:50 +01:00
Kristian Evers d097ef9ad0 Adjust release date due to postponement 2025-03-08 15:55:50 +01:00
Kristian Evers 0fb0640053 Update CITATION year and release date 2025-03-08 15:55:50 +01:00
Kristian Evers 0442bce6db Update NEWS for 9.6.0 release 2025-03-08 15:55:50 +01:00
Kristian Evers 696c7fc31c Add script that generates a first draft of the release notes
Example:

    python scripts/releasenotes.py 9.6.0 <github_token>

This will output a NEWS-section based on the pull requests and issues
related to the version to be released.

Full disclosure, this script has been generated using an AI assistant as
I couldn't be bothered to learn how to interface with the GitHub REST
API. It seemingly produces a useful result so thanks to our AI
overloads.
2025-03-08 15:55:50 +01:00
Even Rouault 06dfcefb96 Merge pull request #4414 from rouault/fix_4397
proj_download_file(): invalidate in-memory caches related to downloaded file (for the current context)
2025-03-04 11:46:54 +01:00
Even Rouault 289e8bce4a proj_download_file(): invalidate in-memory caches related to downloaded file (for the current context)
Fixes #4397
2025-03-03 11:27:20 +01:00
Even Rouault 83d3123a1b Merge pull request #4413 from rouault/epsg_12_004
Database: update to EPSG v12.004
2025-03-03 08:53:41 +01:00
Even Rouault 168dcddf01 Database: update to EPSG v12.004 2025-03-02 22:48:39 +01:00
Even Rouault 6fe7bc524e Merge pull request #4412 from yurish/lgia-geoid-grid
Adding Latvia 2000 height transformation
2025-03-02 22:33:20 +01:00
Jurijs Ješkins cabdc3cd5c Fixing MD5 signature 2025-02-28 17:06:37 +02:00
Jurijs Ješkins 423c0cacd6 Adding Latvia 2000 height transformation 2025-02-28 16:45:18 +02:00
Kristian Evers c4d1d4ab8f Merge pull request #4410 from OSGeo/kbevers-patch-1
Fix +dx parameter in ITRF97 string
2025-02-22 18:52:34 +01:00
Kristian Evers 1957d0f530 Fix +dx parameter in ITRF97 string 2025-02-22 09:45:58 +01:00
Kristian Evers 6451989480 Merge pull request #4408 from jjimenezshaw/typo-itrf2014
Fix typo in parameter for ITRF97 in ITRF2014 file
2025-02-22 09:42:17 +01:00
Javier Jimenez Shaw 73e6b4e8b1 Fix typo in parameter for ITRF97 in ITRF2014 file 2025-02-22 08:55:16 +01:00
Even Rouault 1ba796ea79 Merge pull request #4404 from rouault/epsg_12_002
Database: update to EPSG v12.002
2025-02-20 10:17:45 +01:00
Even Rouault 3f30534c43 Database: update to EPSG v12.002 2025-02-20 00:04:14 +01:00
Even Rouault c09fa1b152 Merge pull request #4403 from rouault/fix_2564b59ed24674aa8c8c22bff6cba840ab0e527d
Fix recent regression in createOperationsGeogToVertFromGeoid() (master only, not for release notes)
2025-02-19 17:37:27 +01:00
Even Rouault f55133f9f7 Fix recent regression in createOperationsGeogToVertFromGeoid() (master only, not for release notes)
Fixes issue introduced in 2564b59ed2
2025-02-19 17:14:09 +01:00
Even Rouault e9c407a49e Merge pull request #4402 from rouault/export_esri_54099
Export ESRI:54099 WGS_1984_Spilhaus_Ocean_Map_in_Square as PROJ string
2025-02-19 10:46:39 +01:00
Even Rouault 69eaf881e8 Export ESRI:54099 WGS_1984_Spilhaus_Ocean_Map_in_Square as PROJ string,
and fix ESRI:54098 mapping to use +proj=spilhaus with +k_0=sqrt(2)

Fixes #1851
2025-02-19 09:39:54 +01:00
Javier Jimenez Shaw 85e7d8e7b2 Spilhaus: better use lon_0 and lat_0 2025-02-19 00:18:39 +01:00
Javier Jimenez Shaw 05f6183b55 Spilhaus projection 2025-02-17 13:17:53 +01:00
Even Rouault f40d911adf Merge pull request #4396 from rouault/engineering_crs
Database: add a engineering_datum and engineering_crs tables; import few related EPSG records
2025-02-16 20:14:21 +01:00
Even Rouault bfd48ce3c6 Database: add a engineering_datum and engineering_crs tables; import few related EPSG records 2025-02-16 19:48:03 +01:00
Kristian Evers 2bd03d9a26 Merge pull request #4399 from kbevers/update-nkg-euref-fin
NKG.sql: Add support for EUREF-FIN in Finish transformations
2025-02-14 11:13:56 +01:00
Kristian Evers 7243974b7d nkg.sql: Add direction of steps in concatenated operations 2025-02-13 21:31:01 +01:00
Kristian Evers 9672d4e18a NKG.sql: Add support for EUREF-FIN in Finish transformations
Recently the Finish national realization of ETRS89 was added to the EPSG
registry as it's own separate entity. This commits adds support for the
new EUREF-FIN CRS (EPSG:10689) in the NKG transformations. This is done
by duplicating the existing transformation entries for Finland and
modifying them to have EUREF-FIN as their end-point. This ensures
backwards compatibility for users that implemented the original approach
in their workflows.

The gist of it all is that in addition to the existing transformations

    NKG:ITRF2000_TO_FI and NKG:ITRF2014_TO_FI

two new ones have been added:

    NKG:ITRF2000_TO_FI_EUREF-FIN and NKG:ITRF2014_TO_FI_EUREF-FIN

Below a few examples are given, that verify that the old and newly added
transformations are equivalent, apart from their final target CRS.

First a demonstration of use of the transformations directly

```sh
export PROJ_DATA=data/
export PROJ_NETWORK=ON

echo 27 62 100 | bin/cct +proj=cart
 2675020.1042   1362990.8210  5608603.5251           inf

echo 2675020.1042 1362990.8210 5608603.5251 2025.0 | bin/cct -d 8 NKG:ITRF2000_TO_FI
2675020.75185987  1362990.35866198  5608603.16545234     2025.0000

echo 2675020.1042 1362990.8210 5608603.5251 2025.0 | bin/cct -d 8 NKG:ITRF2000_TO_FI_EUREF-FIN
2675020.75185987  1362990.35866198  5608603.16545234     2025.0000

echo 2675020.1042 1362990.8210 5608603.5251 2025.0 | bin/cct -d 8 NKG:ITRF2014_TO_FI
2675020.76927503  1362990.36127342  5608603.12613439     2025.0000

echo 2675020.1042 1362990.8210 5608603.5251 2025.0 | bin/cct -d 8 NKG:ITRF2014_TO_FI
2675020.76927503  1362990.36127342  5608603.12613439     2025.0000
```

and then using source and target CRS's. The invovled EPSG-codes are:

```
EPSG:7912:  ITRF2014    geodetic coordinates
EPSG:4937:  ETRS89      geodetic coordinates
EPSG:10689: EUREF-FIN   geodetic coordinates
```

```sh
echo 62 27 100 2025.0 | bin/cs2cs -d 8 EPSG:7912 EPSG:10689
61.99999528     26.99998642 99.82795259 2025

echo 62 27 100 2025.0 | bin/cs2cs -d 8 EPSG:7912 EPSG:10689 --area finland
61.99999528     26.99998642 99.82795259 2025

echo 62 27 100 2025.0 | bin/cs2cs -d 8 EPSG:7912 EPSG:4937
61.99999528     26.99998642 99.82795259 2025

echo 62 27 100 2025.0 | bin/cs2cs -d 8 EPSG:7912 EPSG:4937 --area finland
61.99999528     26.99998642 99.82795259 2025
```

As shown, the results are equivalent, which keeps existing workflows
happy.
2025-02-13 15:18:40 +01:00
Even Rouault 77bb0cc0d2 Merge pull request #4394 from rouault/proj_trans_bounds_3D
Add proj_trans_bounds_3D()
2025-02-06 15:11:50 +01:00
Even Rouault 832643930d Merge pull request #4393 from rouault/split_4D_api
Dispatch content of 4D_api.cpp into multiple .cpp files
2025-02-06 15:11:31 +01:00
Even Rouault 99a8b73bfa Add proj_trans_bounds_3D()
Fixes #4392

```c++
/** \brief Transform boundary, taking into account 3D coordinates.
 *
 * Transform boundary densifying the edges to account for nonlinear
 * transformations along these edges and extracting the outermost bounds.
 *
 * Note that the current implementation is not "perfect" when the source CRS is
 * geocentric, the target CRS is geographic, and the input bounding box
 * includes the center of the Earth, a pole or the antimeridian. In those
 * circumstances, exact values of the latitude of longitude of discontinuity
 * will not be returned.
 *
 * If one of the source or target CRS of the transformation is not 3D, the
 * values of *out_zmin / *out_zmax may not be significant.
 *
 * For 2D or "2.5D" transformation (that is planar component is
 * geographic/coordinates and 3D axis is elevation), the documentation of
 * proj_trans_bounds() applies.
 *
 * @param context The PJ_CONTEXT object.
 * @param P The PJ object representing the transformation.
 * @param direction The direction of the transformation.
 * @param xmin Minimum bounding coordinate of the first axis in source CRS
 *             (target CRS if direction is inverse).
 * @param ymin Minimum bounding coordinate of the second axis in source CRS.
 *             (target CRS if direction is inverse).
 * @param zmin Minimum bounding coordinate of the third axis in source CRS.
 *             (target CRS if direction is inverse).
 * @param xmax Maximum bounding coordinate of the first axis in source CRS.
 *             (target CRS if direction is inverse).
 * @param ymax Maximum bounding coordinate of the second axis in source CRS.
 *             (target CRS if direction is inverse).
 * @param zmax Maximum bounding coordinate of the third axis in source CRS.
 *             (target CRS if direction is inverse).
 * @param out_xmin Minimum bounding coordinate of the first axis in target CRS
 *             (source CRS if direction is inverse).
 * @param out_ymin Minimum bounding coordinate of the second axis in target CRS.
 *             (source CRS if direction is inverse).
 * @param out_zmin Minimum bounding coordinate of the third axis in target CRS.
 *             (source CRS if direction is inverse).
 * @param out_xmax Maximum bounding coordinate of the first axis in target CRS.
 *             (source CRS if direction is inverse).
 * @param out_ymax Maximum bounding coordinate of the second axis in target CRS.
 *             (source CRS if direction is inverse).
 * @param out_zmax Maximum bounding coordinate of the third axis in target CRS.
 *             (source CRS if direction is inverse).
 * @param densify_pts Recommended to use 21. This is the number of points
 *     to use to densify the bounding polygon in the transformation.
 * @return an integer. 1 if successful. 0 if failures encountered.
 * @since 9.6
 */
```
2025-02-05 11:15:32 +01:00
Even Rouault 17a5d80e1c proj_trans_bounds(): minor code cleanup 2025-02-05 11:14:46 +01:00
Even Rouault 2a4339eb9d Dispatch content of 4D_api.cpp into multiple .cpp files
No functional change, just moving code around.

4D_api.cpp has become quite large and a set of 'random' things, that
didn't correlate well with the '4D' naming. Some re-organization was needed.

Create following files:
- src/area.cpp: PJ_AREA related code
- src/coordinates.cpp: functions related to coordinate manipulation
- src/coord_operation.cpp: PJCoordOperation methods
- src/create.cpp: pj_create_internal() related stuff
- src/crs_to_crs.cpp: proj_create_crs_to_crs() and the like
- src/dist.cpp: distance related functions
- src/info.cpp: proj_info() and proj_pj_info()
- src/trans.cpp: proj_trans(), proj_trans_array(), proj_trans_generic(), proj_roundtrip()
- src/trans_bounds.cpp: proj_trans_bounds()

Some other functions also moved to more relevant existing source files.
2025-02-05 11:14:46 +01:00
Even Rouault 43831ab647 Merge pull request #4395 from rouault/epsg_11_031
Database: update to EPSG v11.031
2025-02-05 11:13:47 +01:00
Even Rouault 2844b302f0 Database: update to EPSG v11.031 2025-02-05 10:25:00 +01:00
Even Rouault 8268efca12 Merge pull request #4387 from rouault/epsg_11_029
Database: update to EPSG v11.029, and fix Geog3D_to_Geog2D_GravityRelatedHeight to work with CompoundCRS
2025-01-23 17:11:33 +01:00
Even Rouault 1624dcf05b Database: update to EPSG v11.029, and fix Geog3D_to_Geog2D_GravityRelatedHeight to work with compoundCRS 2025-01-22 17:55:53 +01:00
Even Rouault d82b32b817 Add support for 'Coordinate Frame rotation full matrix (geog3D)' 2025-01-22 17:39:18 +01:00
Even Rouault c34044742a Fix a few Coverity Scan warnings 2025-01-20 00:06:48 +01:00
Even Rouault e1733c3d97 Merge pull request #4386 from rouault/fix_4385
Inverse +proj=cass: fix non-convergence on inputs where easting=false_easting or northing=false_northing
2025-01-18 15:19:18 +01:00
Even Rouault 90ad86d9ef Inverse +proj=cass: fix non-convergence on inputs where easting=false_easting or northing=false_northing
Fixes #4385

For a unknown reason, a test in pj_generic_inverse_2d() was skipping
adding the iterative correction terms when the input was such that
easting=false_easting or northing=false_northing, causing the function
to do nothing useful and fail after its maximum allowed number of
iterations was reached. The remove tests might or might not have been
needed... Only future will tell...
2025-01-17 15:19:08 +01:00
Even Rouault c524721f7e Merge pull request #4383 from rouault/epsg_11_028
Database: update to EPSG v11.028
2025-01-17 10:39:58 +01:00
Even Rouault 1384b79263 Merge pull request #4382 from rouault/fix_gdal_11650
proj_clone(): properly propagate errorIfBestTransformationNotAvailable and other flags from source object
2025-01-17 10:39:49 +01:00
Even Rouault 942cc65b2c Merge pull request #4381 from rouault/gtiff_grid_name_improvement
Debugging/internals: append sub-grid index to grid name when opening a multi-grid TIFF file
2025-01-17 10:39:38 +01:00
Even Rouault 410971022b Database: update to EPSG v11.028 2025-01-16 19:55:13 +01:00
Even Rouault c6cca8e634 proj_clone(): properly propagate errorIfBestTransformationNotAvailable and other flags from source object
Fixes https://github.com/OSGeo/gdal/issues/11650
2025-01-15 22:39:18 +01:00
Even Rouault ad8bb71f2c Debugging/internals: append sub-grid index to grid name when opening a multi-grid TIFF file 2025-01-15 21:42:50 +01:00
Even Rouault 27cf3a9bc6 Merge pull request #4371 from rouault/projinfo_bash_completion
Add bash completion script for projinfo
2025-01-15 17:38:37 +01:00
Even Rouault 98dcc579ef Merge pull request #4379 from rouault/proj_geoidgrid_extent
createOperations(): use more appropriate operation when using a 'PROJ {grid_name}' geoid model, based on matching the vertical datum
2025-01-15 17:38:00 +01:00
Even Rouault 2564b59ed2 createOperations(): use more appropriate operation when using a 'PROJ {grid_name}' geoid model, based on matching the vertical datum
Helps when transforming from 'NAD83(2011) / Puerto Rico and Virgin Is. + "VIVD09 height + PROJ us_noaa_g2012bp0.tif' to NAD83(2011).
Without that fix, PROJ would use the EPSG record for the NAD83(2011) <--> PRVD02 height (Puerto Rico) to get the extent of
the transformation, instead of the one for NAD83(2011) <--> VIVD09 height (Virgin Islands), causing the
resulting global transformation to not be usable in practice.
2025-01-14 16:13:44 +01:00
Even Rouault b047dd2361 Add std::move() 2025-01-13 21:53:11 +01:00
Even Rouault 0224fd72ee pj_load_ini(): add std::move() 2025-01-13 21:52:16 +01:00
Even Rouault 05e34a013f ellps_ellps(): avoid potential memleak 2025-01-13 21:51:35 +01:00
Even Rouault 8070b61a61 Merge pull request #4377 from rouault/coverity_fixes
Coverity Scan fixes
2025-01-13 17:22:31 +01:00
Even Rouault 0e18acc88c Merge pull request #4378 from rouault/cppcheck_master_fix
Cppcheck master fixes
2025-01-13 17:22:22 +01:00
Even Rouault 3f91fd4286 typo fixes 2025-01-13 02:09:07 +01:00
Even Rouault 3b5f383293 CI: add a cppcheck master config (which may only fails on push, not pull requests) 2025-01-12 22:08:32 +01:00
Even Rouault 0b5659c2b9 Fixes to make cppcheck master happy 2025-01-12 21:52:09 +01:00
Even Rouault 26c35fd1ea pj_ctx: copy constructor: copy master-added native_ca member 2025-01-12 21:51:39 +01:00
Even Rouault b672c5238c Coverity Scan fixes 2025-01-12 21:19:50 +01:00
Even Rouault 84d1a093ce README.md: remove no longer relevant badges [ci skip] 2025-01-12 18:39:12 +01:00
Even Rouault abaf367de3 Merge pull request #4376 from rouault/cancel
HOWTO-RELEASE: 'cancel' no longer relevant social media
2025-01-12 15:28:20 +01:00
Even Rouault ec66d50f94 HOWTO-RELEASE: 'cancel' no longer relevant social media [ci skip] 2025-01-12 14:52:11 +01:00
Even Rouault 6754b7cbab Merge pull request #4375 from rouault/make_unique
Use std::make_unique<> instead of internal::make_unique<>
2025-01-11 03:41:06 +01:00
Even Rouault f30c6a4795 Merge pull request #4373 from rouault/EMBED_RESOURCE_DIRECTORY
Rename EMBED_GRIDS_DIRECTORY to EMBED_RESOURCE_DIRECTORY, and also embed .pol files
2025-01-09 16:37:45 +01:00
Even Rouault 53ed2e02d6 Use std::make_unique<> instead of internal::make_unique<> 2025-01-09 16:35:53 +01:00
Even Rouault cb98cb0fa4 Formatting fixes 2025-01-09 16:35:48 +01:00
Even Rouault 081d12a22a Merge pull request #4366 from rouault/cpp_17
Build: Update to C++17 version
2025-01-09 15:09:32 +01:00
Even RouaultandKristian Evers 0dd04bd2a0 RFC3: relax to allow updating programming language standard in minor versions. (#4369)
* RFC3: relax to allow updating programming language standard in minor versions.

* Further updates to RFC3

---------

Co-authored-by: Kristian Evers <kristian@evers.dev>
2025-01-09 15:09:13 +01:00
ca80a5d76a Add Airocean projection (formerly Dymaxion) (#4303)
Fixes #232

Co-authored-by: Even Rouault <even.rouault@spatialys.com>
Co-authored-by: Mike Taves <mwtoews@gmail.com>
2025-01-08 21:15:19 +01:00
Even Rouault 9bc1a6eb13 Merge pull request #4372 from rouault/epsg_11_027
Database: update to EPSG v11.027
2025-01-08 03:01:47 +01:00
Even Rouault f509b3f1f3 Rename EMBED_GRIDS_DIRECTORY to EMBED_RESOURCE_DIRECTORY, and also embed .pol files
(master only)
2025-01-07 22:09:48 +01:00
Even Rouault d21f370f8d Database: update to EPSG v11.027 2025-01-07 19:46:45 +01:00
Even Rouault d887cad4fc projinfo completion: also suggest appropriate vertical CRS 2025-01-07 19:36:44 +01:00
Even Rouault 45527039f3 Add bash completion script for projinfo
and install it in standard ${prefix}/share/bash-completion/completions directory

Demo:

```
source ./scripts/projinfo-bash-completion.sh
```

```
$ projinfo <TAB><TAB>
EPSG:      ESRI:      IAU_2015:  IGNF:      NKG:       NRCAN:     OGC:       PROJ:
```

```
$ projinfo -<TAB><TAB>
-3d                                        --boundcrs-to-wgs84                         --list-crs                                  --searchpaths
--accuracy                                  --c-ify                                     --main-db-path                              --show-superseded
--allow-ellipsoidal-height-as-vertical-crs  --crs-extent-use--grid-check                -o                                          --single-line
--area                                      --dump-db-structure                         --output-id                                 --spatial-test
--authority                                 --hide-ballpark                             --pivot-crs                                 --summary
--aux-db-path                               --identify                                  -q
--bbox                                      -k                                          --remote-data
```

```
$ projinfo -o <TAB><TAB>
all        PROJ       PROJJSON   SQL        WKT1:ESRI  WKT1:GDAL  WKT2:2015  WKT2:2019
```

```
$ projinfo "NAD83(2011) <TAB><TAB>
NAD83(2011)                                                                NAD83(2011) / New Mexico West
NAD83(2011) / Adjusted Jackson (ftUS)                                      NAD83(2011) / New Mexico West (ftUS)
NAD83(2011) / Alabama East                                                 NAD83(2011) / New York Central
[ ... snip ... ]
```

```
$ projinfo EPSG:43<TAB><TAB>
4322 -- WGS 72    4324 -- WGS 72BE  4326 -- WGS 84
```
2025-01-07 18:20:44 +01:00
Even Rouault 6258c6549c Merge pull request #4367 from rouault/fr_ign_RGM04versRGM23
Database: register grid fr_ign_RGM04versRGM23.tif
2025-01-07 14:31:29 +01:00
Even Rouault 3d8085aa84 Database: register grid fr_ign_RGM04versRGM23.tif
added in PROJ-data per https://github.com/OSGeo/PROJ-data/pull/132

Using Helmert transformation:
```
$ echo -12.82 45.16 0 | bin/cs2cs -d 8 RGM04 RGM23
-12.81999702	45.16000607 0.00000000
```

Using grid:
```
$ echo -12.82 45.16 0 | PROJ_DATA=data:/home/even/proj/PROJ-data/fr_ign bin/cs2cs -d 8 RGM04 RGM23
-12.81999723	45.16000619 0.00000000
```
2025-01-06 00:33:55 +01:00
Even Rouault 177f6f34b6 Merge pull request #4364 from rouault/etrf_to_etrf
Improve ETRFxxx to ETRFyyy, and WGS 84 (xxx) to WGS 84 (yyy)
2025-01-06 00:28:45 +01:00
Even Rouault 2743e42ca7 Merge pull request #4363 from rouault/fix_4362
Database: replicate EGM2008 grid transformation record to WGS 84 realizations
2025-01-06 00:28:36 +01:00
Even Rouault cdd7809e73 Build: Update to C++17 version
The immediate driver for this change is related when fetching GTest.
Currently we are stuck with GTest-1.12.1 because is the latest version
supporting C++11. Later versions require C++14.
However, GTest-1.12.1 has a CMakeLists.txt with
``cmake_minimum_required(VERSION 3.5)`` which causes the following
warning with modern CMake versions:
```
CMake Deprecation Warning at build/_deps/googletest-src/CMakeLists.txt:4 (cmake_minimum_required):
  Compatibility with CMake < 3.10 will be removed from a future version of
  CMake.
```
Updating to >= C++14 allows us to use GTest-1.15.2 which has a
``cmake_minimum_required(VERSION 3.13)``
2025-01-03 03:04:43 +01:00
Even Rouault 16b75c1cbc Move ParameterValue class members to a dedicated .cpp files to avoid false-positive from CSA 2025-01-03 03:04:43 +01:00
Even Rouault 0911ff3c69 Rework code a bit to avoid false positive CSA warnings in C++17 mode 2025-01-03 02:18:25 +01:00
Even Rouault d93fc9adc3 CI: update clang_static_analyzer to ubuntu-24.04 to avoid false positives 2025-01-03 01:15:10 +01:00
Even Rouault 5500ba73a9 Merge pull request #4365 from rouault/ci_other_checks
CI: update 'other_checks' to ubuntu-24.04
2025-01-02 23:20:13 +01:00
Even Rouault 52da535c1a Add test for ETRF2000-PL to ETRF2014 2025-01-02 20:47:49 +01:00
Even Rouault e3f0aaff15 CI: update 'other_checks' to ubuntu-24.04
It seems ubuntu-latest is progressively rolled out by GitHub to
be updated to ubuntu-24.04 (in my forks at least), and currently
'pip3 install cffconvert' fails on it.
2025-01-02 20:11:33 +01:00
Even Rouault 87d01c2211 Database: add concatenated operations for all WGS 84 (xxx) to WGS 84 (yyy) realizations 2025-01-02 19:59:37 +01:00
Even Rouault 72e4068507 createOperations(): more relevant ETRFxxxx to ETRFyyyy results 2025-01-02 19:54:06 +01:00
Even Rouault b769746910 createOperations(): fix 'WGS 84 (Gxxx) + EGM2008 height' to 'WGS 84 (Gyyy) + EGM2008 height' 2025-01-02 17:37:41 +01:00
Even Rouault b9b84c92e1 Database: replicate EGM2008 grid transformation record to WGS 84 realizations
Fixes #4362
2025-01-02 17:37:41 +01:00
Even Rouault 4bacf908f9 Merge pull request #4357 from rouault/concatenated_operation_step_direction
Database: add an optional step_direction column to the concatenated_operation_step table
2025-01-02 16:27:25 +01:00
Robrecht-VS 68ad9e8735 Added an option native_ca to proj.ini and an environment variable PROJ_NATIVE_CA to be able to configure curl to use the operating system CA store. (#4356)
Fixes #4338
2024-12-24 13:43:01 +01:00
Even Rouault 299c472fb5 Change 'step_direction' value 'inverse' to 'reverse' 2024-12-22 15:18:33 +01:00
Even Rouault 10781772e8 Database: add an optional step_direction column to the concatenated_operation_step table
and consequently bump database version structure to 1.5

Building a concatenated operation from its steps is a incredibly complex
logic, which requires:
- figuring out in which direction the step must be actually run
- set source/target CRS on conversions, that natively lack it, by
  propagating. This is done by propagating CRS from the neighbouring
  steps... when this is possible. If you chain directly too many conversions,
  we'll lack the information at some point. Hopefully for records we
  have, this is mostly just a theoretical concern (I believe, not
  totally sure...)
  All that is to satisfy consistency checks, that check that
  target_crs[op[n]] == source_crs[op[n+1]]. Although in some cases we do
  need to access the CRS. Typically for a map projection to know the
  ellipsoid shape. So the alternative would be to attach the ellipsoid
  shape as a parameter of a map projection (the good old +ellps
  parameter of PROJ.4 strings) rather than relying on the one of the base
  geographic CRS.
- sometimes insert an implicit Geographic<-->Geocentric conversion step
- other things I might not even suspect.

This change tries to slightly improve this by addressing the first issue
mentioned - figuring out the direction - by adding a step_direction column to the
concatenated_operation_step table. Obviously as currently the EPSG
dataset doesn't include such information (CC @RogerLott with which I've
recently discussed that issue), we must still allow a NULL value to mean
unknown. For the few records we maintain under our PROJ authority, we can
define it though. At least, this improves a bit the readability of our records.

While writing all this, and recalling code I had to write in past years
in the pipeline inference logic that need to synthetize intermediate CRS,
I'm strongly thinking to what you mentionned @busstoptaktik about the
limitations of the current model... Requiring that operation steps have
a CRS is a major practical annoyance.
2024-12-20 02:42:36 +01:00
Even Rouault 3421b04700 Database: bump PROJ_DATA.VERSION to 1.21 2024-12-17 18:06:42 +01:00
Even Rouault 8f04f84eea Merge pull request #4355 from jjimenezshaw/fi-geoids
Finnish geoid models in grid_alternatives.sql
2024-12-17 16:43:53 +01:00
Javier Jimenez Shaw 3959e8fb32 update md5 2024-12-17 15:26:40 +01:00
Javier Jimenez Shaw 90b615334b add Finnish geoid models to grid_alternatives.sql 2024-12-17 15:26:40 +01:00
Even Rouault e5e3a6bbab Merge pull request #4341 from rouault/GDA94_AHD_to_GDA2020_AVWS
createOperations(): fine tune for 'GDA94 + AHD height' to 'GDA2020 to AVWS height'
2024-12-17 15:08:44 +01:00
Even Rouault 067fe73abb Merge pull request #4353 from rouault/epsg_tin_shift
Take into account new EPSG methods 'Cartesian Grid Offsets by TIN Interpolation (JSON)' and 'Vertical Offset by TIN Interpolation (JSON)'
2024-12-17 14:46:43 +01:00
Even Rouault cc0a63c151 Merge pull request #4349 from rouault/EMBED_GRIDS_DIRECTORY
Add a CMake EMBED_GRIDS_DIRECTORY option to embed .tif/.json files in to libproj
2024-12-17 14:46:30 +01:00
Even Rouault e2129c5262 lib_proj.cmake: add a dependency to proj.db in the C23 code path 2024-12-17 02:17:23 +01:00
Even Rouault e7ef01b1de Take into account new EPSG methods 'Cartesian Grid Offsets by TIN Interpolation (JSON)' and 'Vertical Offset by TIN Interpolation (JSON)'
and remove custom transformations for Finland TIN base transformations
that were previously under the PROJ authority
2024-12-16 19:15:18 +01:00
Even Rouault deb31c9d3c AuthorityFactory::createCoordinateOperation(): consider accuracy = '999.0' as unknown 2024-12-16 19:15:16 +01:00
Even Rouault 387f442890 Merge pull request #4350 from rouault/epsg_11_024
Database: update to EPSG v11.025
2024-12-14 17:54:06 +01:00
Even Rouault 62754ba73f Database: update to EPSG v11.025 2024-12-14 13:09:45 +01:00
Even Rouault 48be4550cd Database: update to EPSG v11.024 2024-12-13 18:33:21 +01:00
Even Rouault 951962deb4 Merge pull request #4348 from rouault/fix_4347
Add support for 'Coordinate Frame rotation full matrix (geocen)' and …
2024-12-13 17:57:27 +01:00
Even Rouault 364972b45b Add a CMake EMBED_GRIDS_DIRECTORY option to embed .tif/.json files into libproj
and also generalize the existing EMBED_RESOURCE_FILES option to embed the ITRFxxxx
resource files.

```
.. option:: EMBED_GRIDS_DIRECTORY=<directory>

    .. versionadded:: 9.6

    Embed files from <directory> ending with .tif or .json in the PROJ library itself.

    The pointed directory can potentially be the full PROJ-data package (uncompressed).
    In that case, about 6 GB of free disk and 16 GB of RAM are required to build PROJ.

    When using this parameter, EMBED_RESOURCE_FILES must be set to ON.

    If the content of the directory changes, you need to run CMake again to
    update the list of files.
```
2024-12-13 15:38:53 +01:00
Even Rouault b572229544 Add support for 'Coordinate Frame rotation full matrix (geocen)' and 'Coordinate Frame rotation full matrix (geog2D)' methods
and import related records from EPSG.

Note that concatenated operation EPSG:10675 is not imported because
https://epsg.org/concatenated-operation_10675/BES2020-to-Saba-height-1.html is ill defined in EPSG 11.023
due to first step referencing BES2020 Saba geographic 2D (EPSG:10639), but source CRS of concatenated
operation referencing BES2020 Saba geographic 3D (EPSG:10638)

Fixes #4347
2024-12-11 18:43:53 +01:00
Even Rouault 14f508002a Merge pull request #4340 from rouault/PROJ_DB_SQL_EXPECTED_MD5_revision
PROJ_DB_SQL_EXPECTED_MD5: do not make it sensitive to PROJ_VERSION or…
2024-12-10 15:07:43 +01:00
Even Rouault a4ad891766 Merge pull request #4344 from rouault/METHOD_VERTICALGRID_ASC
Map EPSG method 'Vertical Offset by Grid Interpolation (asc)' to +proj=vgridshift
2024-12-10 15:07:24 +01:00
Even Rouault 17de573e32 Merge pull request #4345 from rouault/doc_service_provider
Doc: add a service provider page
2024-12-10 15:07:06 +01:00
Even Rouault d651a4fd8b Doc: add a service provider page
Copy&paste s/GDAL/PROJ/ adaptation from https://gdal.org/en/stable/community/service_providers.html
Only Spatialys listed as core contributor for now
2024-12-09 19:55:56 +01:00
Even Rouault cf2ee49d75 Map EPSG method 'Vertical Offset by Grid Interpolation (asc)' to +proj=vgridshift
Fixes #4342

Note that currently none of the .asc grids are in PROJ-data. Most of the
ones registered in the EPSG dataset are for EVRF2019 heights and are
managed by Euref. My past attempts of getting an open data license for
the grid from Euref have not been successful.
2024-12-09 15:17:39 +01:00
Even Rouault 2f38bbbc0a createOperations(): fine tune for 'GDA94 + AHD height' to 'GDA2020 to AVWS height' 2024-12-09 00:41:33 +01:00
Even Rouault 9782de4f41 PROJ_DB_SQL_EXPECTED_MD5: do not make it sensitive to PROJ_VERSION or other records in the metadata table
The intent was actually already to avoid making the md5sum sensitive to
PROJ_VERSION changes, but this was broken. Generalize that also to other
records in the metadata table, such as PROJ_DATA.VERSION, to simplify
the release process.
2024-12-07 14:51:37 +01:00
Even Rouault a33372b0cf Merge pull request #4339 from rouault/epsg_11_023
Database: update to EPSG v11.023, and related changes
2024-12-07 14:00:57 +01:00
Even Rouault 1fa2b337c4 Merge pull request #4337 from rouault/fix_4335
createOperations(): do Helmert transformation in 2D when one of source or target CRS is compound
2024-12-07 14:00:50 +01:00
Even Rouault 8946128fdb Database: update to EPSG v11.023 2024-12-05 22:04:53 +01:00
Even Rouault 4403aa0516 Take into account renaming of 'Geoid undulation' to 'Geoid height' parameter 2024-12-05 22:04:52 +01:00
Even Rouault 5334e3df3e Add support to map EPSG methods 'Geographic3D to GravityRelatedHeight' and 'Geographic3D to Geog2D+GravityRelatedHeight' (used for Saba Island) to PROJ +proj=affine +z_off 2024-12-05 21:36:42 +01:00
Even Rouault c35c8aeec5 exportToProj of 'Geocentric translation by Grid Interpolation (IGN)': make check of interpolation CRS robust to axis order difference in preparation for EPSG v11.023 update 2024-12-05 21:34:52 +01:00
Even Rouault 6d7c8c24b6 Merge pull request #4336 from mwtoews/tranverse-typos
Fix typo Tranverse->Transverse and many other fixes
2024-12-05 19:57:52 +01:00
Even Rouault b4c0550511 createOperations(): do Helmert transformation in 2D when one of source or target CRS is compound
Fixes #4335
2024-12-04 23:46:49 +01:00
Mike Taves 282e7fa7bc Fix typo Tranverse->Transverse and many other fixes 2024-12-05 11:29:32 +13:00
Even Rouault 2dc4914f08 Merge pull request #4334 from rouault/createFromPROJString_optims
createFromPROJString: avoid repeated openings of proj.db and proj.ini and lookup of 'epsg'
2024-12-02 14:54:05 +01:00
Even Rouault 7fbd2ceca8 Merge pull request #4333 from rouault/proj_trans_bounds_to_compound_crs
proj_trans_bounds(): make it work when target CRS is a CompoundCRS
2024-12-02 14:53:55 +01:00
Even Rouault 810afa0dce Merge pull request #4332 from wonder-sk/patch-1
Add Mergin Maps to PROJ users
2024-12-02 14:53:39 +01:00
Even Rouault dc289adeef Merge pull request #4331 from rouault/projjson_projected_crs_base_crs_type
PROJJSON export: for a Projected CRS, add an explicit type=GeographicCRS/GeodeticCRS members to the base_crs member
2024-12-02 14:53:21 +01:00
Kristian Evers 6a1e2dc5c8 Spell check: Allow 'Wdocumentation' as it is used in NEWS.rst 2024-12-01 12:50:07 +01:00
Kristian Evers 13608fef05 Update docs for 9.5.1 release 2024-12-01 12:36:00 +01:00
Even Rouault 9ab0f640fe pj_open_file(): cache result in PJ_CONTEXT structure
Helps marginally for https://github.com/MapServer/MapServer/issues/7189
2024-11-28 23:03:57 +01:00
Even Rouault c4b29f688c createFromPROJString: avoid creating a temporary PROJ context to limit number of proj.db openings
Helps marginally for https://github.com/MapServer/MapServer/issues/7189
2024-11-28 23:03:15 +01:00
Even Rouault d1fa64ff3e proj_trans_bounds(): make it work when target CRS is a CompoundCRS 2024-11-28 21:58:34 +01:00
Kristian Evers 911150486f Make sure to mention the correct EPSG version in NEWS
Version 10.022 was overlooked in the first attemp.

[skip ci]
2024-11-27 19:40:01 +01:00
Martin Dobias ca32395d42 Add Mergin Maps to PROJ users 2024-11-27 15:00:52 +01:00
Even Rouault 17fe008a83 PROJJSON export: for a Projected CRS, add an explicit type=GeographicCRS/GeodeticCRS members to the base_crs member
This can make consumption/validation of PROJJSON easier. This doesn't
affect forward/backward compatibility as the importer is tolerant about
presence or absence of base_crs.type, and the schema too.
2024-11-26 17:38:18 +01:00
Kristian Evers d0f0341b90 Merge pull request #4330 from rouault/HOWTO-RELEASE_PROJ_DB_SQL_EXPECTED_MD5
HOWTO-RELEASE.md: add a step to update PROJ_DB_SQL_EXPECTED_MD5 when version number is changed
2024-11-26 16:17:39 +01:00
Even Rouault 8f44ebed1f HOWTO-RELEASE.md: add a step to update PROJ_DB_SQL_EXPECTED_MD5 when version number is changed 2024-11-26 15:13:30 +01:00
Kristian Evers 86130c155a Update NEWS for 9.5.1 release 2024-11-26 08:43:02 +01:00
Even Rouault 10b0febf75 Merge pull request #4328 from rouault/fix_wkt1_esri_export_of_Cylindrical_Equal_Area
WKT1 ESRI export: fix wrong mapping of Lambert Cylindrical Equal Area to Behrmann
2024-11-25 20:16:49 +01:00
Even Rouault e0bd19659e WKT1 ESRI export: fix wrong mapping of Lambert Cylindrical Equal Area to Behrmann 2024-11-23 13:39:00 +01:00
Even Rouault 2d430667ce Change to create a 'stable' branch rather than a tag 2024-11-18 14:58:36 +01:00
Even Rouault 28f43005e0 Doc: add custom robots.txt 2024-11-18 14:58:36 +01:00
Even Rouault 5af093da62 Merge pull request #4324 from rouault/auto_tag_stable_HOWTO_RELEASE
Update HOWTO-RELEASE.md regarding auto_tag_stable.yml
2024-11-18 12:08:01 +01:00
Even Rouault 25ee5a5f00 Merge pull request #4326 from OSGeo/backport-4323-to-master
[Backport master] [9.5 branch ] Add .github/workflows/auto_tag_stable.yml
2024-11-18 12:07:54 +01:00
Even Rouault e8856d3ddb auto_tag_stable.yml: run git config 2024-11-18 11:54:39 +01:00
Even Rouault 12fcf290d0 auto_tag_stable.yml: try tuning to trigger a RtD build 2024-11-18 11:54:38 +01:00
Even Rouault 32b27e1878 Add .github/workflows/auto_tag_stable.yml
This workflow automatically updates and pushes the 'stable' tag
when commits are pushed to the branch pointed by
https://github.com/OSGeo/PROJ/settings/variables/actions/STABLE_BRANCH
2024-11-18 10:22:00 +00:00
Even Rouault bb24e728cc HOWTO-RELEASE.md: remove lines about RtD changes no longer needed 2024-11-16 18:32:53 +01:00
Even Rouault c936171f0e Merge pull request #4322 from seanm/Werror-pthread
Removed leftover setting of CMAKE_REQUIRED_FLAGS
2024-11-16 15:49:32 +01:00
Even Rouault 7824c19c69 Update HOWTO-RELEASE.md regarding auto_tag_stable.yml
Update the procedure to update the workflow that automatically refreshes the "stable" tag from commits in the current release branch.
2024-11-16 15:45:08 +01:00
Sean McBride a759224515 Removed leftover setting of CMAKE_REQUIRED_FLAGS
Back in 88d91f709c I removed a `check_c_source_compiles` to detect some pthread stuff and converted to std::mutex instead.

This stuff I believe I should have removed back then too.

The -Werror caused a problem in VTK, which still has the `check_c_source_compiles`, because a totally unrelated warning made the try-compile fail when it should have passed.
2024-11-14 16:22:32 -05:00
Even Rouault 863a75eed7 Merge pull request #4320 from rouault/fix_4319
Optimization: createOperations(): avoid database lookups for CRS (typically PROJ strings) using unknown datums
2024-11-14 11:36:24 +01:00
Even Rouault f37e6b988c Merge pull request #4318 from rouault/smarter_match_by_name
createObjectsFromName(): be more tolerant about N/S vs North/South, absence of zone or height
2024-11-11 20:59:31 +01:00
Even Rouault 38d215bd1d Optimization: createOperations(): avoid database lookups for CRS (typically PROJ strings) using unknown datums
Fixes #4319

With that improvement, the runtime of the following snippet goes from
25.4 second to 0.9 second:
```c
    for(int i = 0; i < 2000; ++i)
    {
        PJ_CONTEXT *C = proj_context_create();
        PJ *P = proj_create_crs_to_crs(C,
           "+proj=longlat +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +no_defs",
           "+proj=utm +zone=31 +ellps=GRS80 +units=m +no_defs", NULL);
        proj_destroy(P);
        proj_context_destroy(C);
    }
```
2024-11-11 20:17:04 +01:00
Even Rouault e25f8113c2 Add a UNKNOWN_BASED_ON constant 2024-11-11 20:17:04 +01:00
Even Rouault 09c2346661 DatabaseContext::getName(): add a memory cache 2024-11-11 19:52:35 +01:00
Even Rouault 8052252697 Add DatabaseContext::getQueryCounter() 2024-11-11 19:52:35 +01:00
Even Rouault 09e54a96e4 createObjectsFromName(): be more tolerant about N/S vs North/South, absence of zone or height
We want the following matches to be possible:

user entry            official name
------------------    ----------------
EGM96                 EGM96 height
WGS84 UTM31 north     WGS 84 / UTM zone 31N
2024-11-10 14:22:05 +01:00
Even Rouault 9f2289cfdc Merge pull request #4315 from rouault/hungarian_grids
Database: hu_bme Hungarian grids added
2024-11-08 17:11:16 +01:00
Even Rouault d71db11945 Database: update PROJ_DB_SQL_EXPECTED_MD5 2024-11-08 14:20:07 +01:00
Zoltan Siki 6cda60105a Database: hu_bme Hungarian grids added 2024-11-08 14:19:42 +01:00
Even Rouault 606e138617 Merge pull request #4312 from rouault/epsg_11_022
Database: update to EPSG v11.022
2024-11-05 23:32:45 +01:00
Even Rouault 830b390645 Update PROJ_DB_SQL_EXPECTED_MD5 2024-11-05 19:41:15 +01:00
Even Rouault 6ab8ec8ee0 Database: update to EPSG v11.022 2024-11-05 19:41:06 +01:00
Even Rouault 495c3ad760 Merge pull request #4310 from rouault/esri_arcgis_pro_3_4
Database: update ESRI to ArcGIS Pro 3.4
2024-11-05 19:35:52 +01:00
Even Rouault d8c86b52e4 Update PROJ_DB_SQL_EXPECTED_MD5 2024-11-04 23:56:09 +01:00
Even Rouault 25b4119077 Database: update ESRI to ArcGIS Pro 3.4 2024-11-04 23:55:58 +01:00
Even Rouault 48574191a4 Merge pull request #4290 from rouault/remove_include_ctest
CMake: use enable_testing() instead of include(CTest)
2024-11-04 22:48:48 +01:00
Even Rouault 64164dee4f Merge pull request #4301 from jjimenezshaw/thueringen
Add grid alternative for de_tlbg_thueringen_NTv2gridTH.tif
2024-11-03 15:30:51 +01:00
Even Rouault 9e5d951385 Update PROJ_DB_SQL_EXPECTED_MD5 2024-11-03 14:34:26 +01:00
Even Rouault 14a79de1fa Database: update PROJ_DATA.VERSION to 1.20 2024-11-03 14:33:06 +01:00
Even Rouault a0201cbc1c CI: fix Conda builds 2024-11-02 02:48:19 +01:00
Even Rouault 278757c209 Merge pull request #4306 from OSGeo/dependabot/github_actions/mamba-org/setup-micromamba-2
Bump mamba-org/setup-micromamba from 1 to 2
2024-11-01 21:08:03 +01:00
dependabot[bot] 4582c5a7fd Bump mamba-org/setup-micromamba from 1 to 2
Bumps [mamba-org/setup-micromamba](https://github.com/mamba-org/setup-micromamba) from 1 to 2.
- [Release notes](https://github.com/mamba-org/setup-micromamba/releases)
- [Commits](https://github.com/mamba-org/setup-micromamba/compare/v1...v2)

---
updated-dependencies:
- dependency-name: mamba-org/setup-micromamba
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-11-01 19:09:32 +00:00
Even Rouault 4d0838578b Merge pull request #4302 from rouault/fix_pyproj_705
Fail consistently on network error and grid transformations
2024-11-01 18:57:35 +01:00
Even Rouault 17b2c2b58f Defered grid loading: do not try to re-open a grid that previously failed to open from the same PJ* instance 2024-11-01 16:10:35 +01:00
Even Rouault ddfb7e7f50 Merge pull request #4304 from rouault/fix_Wshadow
Fix -Wshadow warnings between parammappings.cpp and singleoperation.cpp with unity builds
2024-11-01 15:30:58 +01:00
Even Rouault 909a675f81 Fix -Wshadow warnings between parammappings.cpp and singleoperation.cpp with unity builds 2024-11-01 14:48:41 +01:00
Even Rouault 99f89764b0 Fail consistently on network error and grid transformations
Currently when we need to use a remote grid that can't be opened, we
return HUGE_VAL coordinates values and a proj_errno = PROJ_ERR_OTHER_NETWORK_ERROR,
(I guess) as expected... But if we do following proj_trans() calls on the same
transformation object, the grid transformation is ignored and we
fallback to other methods (Helmert, ballpark, etc.).
Fix that by consistently returning the same error values as the initial
failed call.

Fixes https://github.com/pyproj4/pyproj/issues/705
2024-11-01 00:07:26 +01:00
Javier Jimenez Shaw d5e1204e38 Add grid alternative for de_tlbg_thueringen_NTv2gridTH.tif 2024-10-31 18:49:17 +01:00
Even Rouault de73f2416a Merge pull request #4297 from rouault/epsg_11_021
Database: update to EPSG v11.021
2024-10-30 13:39:21 +01:00
Even Rouault 3601b8d6a5 Merge pull request #4296 from dbs4261/patch-1
Fixed sql_filelist.cmake relative path issue
2024-10-30 13:39:12 +01:00
Even Rouault 2e827c7b36 Database: update to EPSG v11.021 2024-10-30 02:18:37 +01:00
Daniel Simon a20aa4af4c Fixed sql_filelist.cmake relative path issue
`CMAKE_CURRENT_SOURCE_DIR` is relative to the file that includes `sql_filelist.cmake` not relative to `sql_filelist.cmake` itself. This allows running the module from other portions of a cmake script, for example in a consuming project with FetchContent.
2024-10-29 15:50:45 -07:00
Even Rouault b2ae2aec73 rfc-8.rst: fix spelling warnings 2024-10-29 02:45:22 +01:00
Even Rouault 36328ee38f Merge pull request #4289 from rouault/proj_factors_perf_enhancements
proj_factors(): enhance speed when called repeatedly on same compound or projected CRS
2024-10-28 15:59:38 +01:00
Even Rouault 252b13c2aa Add RFC8 text: Embedding resource files into libproj (#4274) 2024-10-28 14:57:40 +01:00
Even Rouault 463d104a55 Merge pull request #4265 from rouault/embed
Add CMake options EMBED_RESOURCE_FILES and USE_ONLY_EMBEDDED_RESOURCE_FILES for proj.db and proj.ini embedding
2024-10-28 14:56:05 +01:00
Even Rouault 4ada7ae5d3 Merge pull request #4293 from jjimenezshaw/sterea-k0
[doc] add k_0 to sterea projection
2024-10-27 10:28:13 +01:00
Javier Jimenez Shaw d6a29bb938 [doc] add k_0 to sterea projection 2024-10-27 01:38:09 +02:00
Even Rouault 0f13d87b2c Merge pull request #4291 from agiudiceandrea/patch-1
Doc: fix typo in Peirce Quincuncial projection
2024-10-25 22:45:47 +02:00
Andrea Giudiceandrea da0356d3c4 Doc: fix typo in Peirce Quincuncial projection 2024-10-25 22:43:06 +02:00
Even Rouault a67091e21b CMake: use enable_testing() instead of include(CTest)
According to Craig Scott in https://discourse.cmake.org/t/is-there-any-reason-to-prefer-include-ctest-or-enable-testing-over-the-other/1905/2 ,
using include(CTest) adds unnecessary clutter that is only needed for
dashboard submission. enable_testing() is enough otherwise

"Port" of https://github.com/OSGeo/shapelib/pull/162
2024-10-25 21:21:10 +02:00
Even Rouault 7e945f807b proj_factors(): enhance speed when called repeatedly on same compound or projected CRS
by caching internal objects within internal state of provided P
2024-10-25 13:12:45 +02:00
Even Rouault 01194d8767 Merge pull request #4287 from ldesousa/patch-1
Corrects ISEA projection name in 9.5 release notes
2024-10-23 19:42:54 +02:00
Luís de Sousa aa57b6249a Corrects ISEA projection name in 9.5 release notes 2024-10-23 17:44:07 +01:00
Even Rouault 13c065a61d Merge pull request #4282 from rouault/fix_4281
Database: ingest deprecated ESRI names to be able to better import old WKT ESRI
2024-10-22 14:50:45 +02:00
Even Rouault 98974da7b7 Merge pull request #4280 from rouault/fast_proj_db_build
Speed-up dramatically proj.db build time.
2024-10-22 14:49:37 +02:00
Even Rouault a6f5fa7703 Database: ingest deprecated ESRI names to be able to better import old WKT ESRI
Fixes #4281
2024-10-18 19:14:24 +02:00
Even Rouault 842240d67b Speed-up dramatically proj.db build time.
Current proj.db build time is typically 50 to 60 seconds (and up to 7.5
hours on arm64 cross-compilation with full emulation!). Most of it is
due to running consistency checks. Those checks actually only need to run
once each time when we update the content of the database. When skipping
them, the build time is cut to 3 seconds or so.
So in data/CMakeLists.txt, let keep track of an expected md5sum
resulting from the concatenation of the data/sql/*.sql files. When
building proj.db, we check if the got and expected md5sum match. If they
do build proj.db by inserting the consistency check triggers after
having inserted data record. If there's a mismatch, do a one time build
with the triggers inserted before the data records, check that proj.db
builds fine with that, and if so, emit a CMake error message indicating
to the user that they must update the PROJ_DB_SQL_EXPECTED_MD5 variable
in data/CMakeLists.txt with the provided value. Next runs will go
through the fast build path, until content is updated again.
2024-10-16 23:18:35 +02:00
Even Rouault 54a7662dbc Merge pull request #4275 from rouault/epsg_11_018
Database: update to EPSG v11.019
2024-10-13 11:41:15 +02:00
Even Rouault 97da11b6b7 Null VerticalCRS to VerticalCRS: optimize as +proj=noop instead of +proj=geogoffset +dh=0 2024-10-10 23:36:41 +02:00
Even Rouault 8b891db1e8 Database: update to EPSG v11.019 2024-10-10 23:36:41 +02:00
Even Rouault 0a14c19a51 Also embed proj.ini if EMBED_RESOURCE_FILES=ON 2024-10-10 14:30:14 +02:00
Even Rouault 8c143c6ea9 Doc: document EMBED_RESOURCE_FILES and USE_ONLY_EMBEDDED_RESOURCE_FILES 2024-10-10 14:30:14 +02:00
Even Rouault 99d146b408 cmake/FileEmbed.cmake: improve code 2024-10-10 14:30:14 +02:00
Even Rouault 243745fbd3 CI: test -DEMBED_RESOURCE_FILES=ON 2024-10-10 14:30:14 +02:00
Even Rouault 36b84d7507 Make EMBED_RESOURCE_FILES work with non-C23 compilers 2024-10-10 14:30:14 +02:00
Even Rouault a29c62e602 memvfs.c: make it read-only 2024-10-10 14:30:14 +02:00
Even Rouault 2b2ecbb3e5 memvfs: avoid uintptr->ptr cast which is not compatible of CHERI architectures 2024-10-10 14:30:13 +02:00
Even Rouault 5c811d2f11 memvfs: make it work with 'projinfo --list-crs' or 'cct "this is a bogus CRS meant to trigger a syntax error in proj_create"'
Other changes in SQLiteHandle so that ATTACH DATABASE properly works
2024-10-10 14:30:13 +02:00
Even Rouault 108787c343 Add EMBED_RESOURCE_FILES and USE_ONLY_EMBEDDED_RESOURCE_FILES options 2024-10-10 14:30:13 +02:00
Even Rouault 49906f73a3 Merge pull request #4270 from rouault/sphinx_rtd_theme_3_0_0
Doc: use 'version_selector' instead of 'display_version' which is deprecated by sphinx-rtd-theme 3.0.0
2024-10-09 16:35:24 +02:00
Even Rouault eb25d7154c Doc: conf.py: use correct 'html_css_files' property 2024-10-07 16:04:36 +02:00
Even Rouault 58a7a14887 Doc: use 'version_selector' instead of 'display_version' which is deprecated by sphinx-rtd-theme 3.0.0 2024-10-07 16:04:35 +02:00
Even Rouault 4659ad1552 Merge pull request #4266 from rouault/fix_ci_fuzz_pr_4265
WKT importer: fix nullptr dereference on invalid VERTCS[]
2024-10-05 14:39:59 +02:00
Even Rouault 702847d729 Merge pull request #4267 from mohawk2/patch-1
Omit trailing blank line in `proj_create_crs_to_crs` portion of C quickstart
2024-10-04 15:12:09 +02:00
mohawk2 bc6d063c4a Omit trailing blank line in proj_create_crs_to_crs portion of C quickstart 2024-10-04 08:08:48 +00:00
Even Rouault e3b6bb2a55 WKT importer: fix nullptr dereference on invalid VERTCS[]
Was spotted by cifuzz in run https://github.com/OSGeo/PROJ/actions/runs/11166711328?pr=4265
2024-10-03 20:02:51 +02:00
Even Rouault 0134c14505 Merge pull request #4263 from rouault/clang_19_warnings
Fix clang-19 'warning: empty paragraph passed to '@throw' command [-Wdocumentation]'
2024-10-03 14:27:41 +02:00
Even Rouault 8d37366e30 Fix clang-19 'warning: empty paragraph passed to '@throw' command [-Wdocumentation]'
clang-19 -Wdocumentation is super pedantic and requires an explanation
for why we throw exceptions. You're so demanding clang-19! We are kind
enough to mention we throw... Doxygen doesn't even require us to justify
the circumstances in which we have to do that. Oh well, let's please you
to get peace back...
2024-10-03 00:23:59 +02:00
Even Rouault 0e2cb56b8d test_projinfo.yaml: update expected results (master only change) 2024-09-29 20:55:13 +02:00
Even Rouault d19ab643b9 Merge pull request #4255 from rouault/projinfo_time_dependent
projinfo: display whether an operation is time-dependent
2024-09-27 17:55:35 +02:00
Even Rouault 4297e098b3 Merge pull request #4259 from rouault/TIME_DEPENDENT_COORDINATE_FRAME
isTimeDependent(): do not mark 'static' Coordinate Frame helmert transformations as time-dependent, ...
2024-09-25 11:57:58 +02:00
Even Rouault ff907615d8 isTimeDependent(): do not mark 'static' Coordinate Frame helmert transformations as time-dependent, only time-dependent ones... 2024-09-25 03:00:38 +02:00
Even Rouault 41aa398777 Merge pull request #4254 from rouault/epsg_11_017
Database: update to EPSG v11.017
2024-09-24 18:59:31 +02:00
Even Rouault f16373327d Merge pull request #4252 from rouault/tweak_findsOpsInRegistryWithIntermediate
findsOpsInRegistryWithIntermediate(): restrict to using known source/target CRS that have the same originating authority
2024-09-24 18:59:24 +02:00
Clifford Yapp 2b3b06d8d1 Merge v9.5.0 to RELEASE 2024-09-24 10:27:25 -04:00
Even Rouault e2174f8292 README.md: dummy commit to trigger doc rebuild 2024-09-20 15:38:45 +02:00
Even Rouault de22c176a6 projinfo: display whether an operation is time-dependent 2024-09-18 11:37:41 +02:00
Even Rouault 4d29d46ec8 Database: update to EPSG v11.017 2024-09-17 20:23:23 +02:00
Even Rouault 78d5d84ce0 findsOpsInRegistryWithIntermediate(): restrict to using known source/target CRS that have the same originating authority
Fixes https://lists.osgeo.org/pipermail/proj/2024-September/011531.html
i.e.
```
projinfo -s EPSG:4269 -t EPSG:6318 --3d --spatial-test intersects
```

The fix consists in making sure that we recognize that the 3d-promoted
object EPSG:4269 (NAD83(86)) is still linked to EPSG, and thus discard
ESRI 3D objects in findsOpsInRegistryWithIntermediate()

Fixes a "regression" of https://github.com/OSGeo/PROJ/pull/4244
(one could argue which of the results is the best, given that NAD83(86)
as a 3D geographic CRS has no solid foundation)
2024-09-17 16:33:23 +02:00
Even Rouault ed0a29ced9 Simplify/clean use of getCandidateAuthorities() 2024-09-17 15:24:05 +02:00
Even Rouault 551471f3c0 Merge pull request #4249 from rouault/rtd_long_line
CI: Fix ReadTheDocs test for [ci skip] with multiline commit messages
2024-09-16 22:41:38 +02:00
Even Rouault 1e2c773deb Merge pull request #4251 from rouault/doc_spelling
Doc: fix typos and add a CI check to spot them
2024-09-16 22:41:26 +02:00
Even Rouault 615b184d25 Add .github/workflows/doc_checks.yml 2024-09-15 18:19:18 +02:00
Even Rouault 693620fe71 Doc: update spelling_wordlist.txt 2024-09-15 18:19:18 +02:00
Even Rouault 4356b4ece4 Doc: remove tab characters 2024-09-15 18:19:17 +02:00
Even Rouault 2af1ba45f6 Doc: fix typos 2024-09-15 18:19:17 +02:00
Even Rouault 49ebcf5c08 Merge pull request #4248 from ecere/master
affine.rst: Fixed second s21 that should say s22
2024-09-15 15:05:11 +02:00
Even Rouault 8032e9ba25 Merge pull request #4247 from rouault/update_gigs_5110
More strict syntax for test/gigs/5110.gie.failing (LAEA)
2024-09-15 15:04:26 +02:00
Kristian Evers ab75759697 Update version numbers etc in anticipation of 9.6.0 release 2024-09-15 14:38:48 +02:00
Kristian Evers 6d60e836f1 Update docs for 9.5.0 release 2024-09-15 14:35:14 +02:00
Daniel Baston b7178fa234 CI: Fix ReadTheDocs test for [ci skip] with multiline commit messages
git log will emit a blank line which passes the grep -v test and
prevents exiting.
2024-09-15 14:23:12 +02:00
Jerome St-Louis 19fd62d2b6 affine.rst: Fixed second s21 that should say s22 2024-09-14 22:37:38 -04:00
Even Rouault 83c91dd26f More strict syntax for test/gigs/5110.gie.failing (LAEA)
Current results are that we pass the simple one-time forward / reverse tests, but not
repeated 1000 times:

```
$ bin/gie ../test/gigs/5110.gie.failing
-------------------------------------------------------------------------------
Reading file '../test/gigs/5110.gie.failing'
-------------------------------------------------------------------------------
proj=pipeline step init=epsg:4258 inv step init=epsg:3035
-------------------------------------------------------------------------------
     FAILURE in 5110.gie.failing(116):
     roundtrip deviation: 105.138717 mm, expected: 6.000000 mm
     -----
     FAILURE in 5110.gie.failing(120):
     roundtrip deviation: 168.120679 mm, expected: 6.000000 mm
     -----
     FAILURE in 5110.gie.failing(124):
     roundtrip deviation: 344.822744 mm, expected: 6.000000 mm
     -----
     FAILURE in 5110.gie.failing(128):
     roundtrip deviation: 759.297462 mm, expected: 6.000000 mm
     -----
     FAILURE in 5110.gie.failing(132):
     roundtrip deviation: 1311.809746 mm, expected: 6.000000 mm
     -----
     FAILURE in 5110.gie.failing(140):
     roundtrip deviation: 344.822713 mm, expected: 6.000000 mm
     -----
     FAILURE in 5110.gie.failing(144):
     roundtrip deviation: 344.822789 mm, expected: 6.000000 mm
     -----
     FAILURE in 5110.gie.failing(148):
     roundtrip deviation: 344.822744 mm, expected: 6.000000 mm
     -----
     FAILURE in 5110.gie.failing(152):
     roundtrip deviation: 344.822853 mm, expected: 6.000000 mm
     -----
     FAILURE in 5110.gie.failing(156):
     roundtrip deviation: 344.822747 mm, expected: 6.000000 mm
-------------------------------------------------------------------------------
total: 23 tests succeeded,  0 tests skipped, 10 tests FAILED!
-------------------------------------------------------------------------------
```
2024-09-11 20:07:31 +02:00
Kristian Evers 0a407325fb Keep CITATION details up to date
- Bumped version number
- Updated affiliation for Thomas and Kristian, reflecting recent change
  in agency name
2024-09-09 12:40:12 +02:00
Kristian Evers 6ad9c25787 Release notes for 9.5.0 2024-09-09 12:38:28 +02:00
Kristian Evers 2fc72a5e0a Update man-pages from Sphinx-docs 2024-09-09 11:11:43 +02:00
Kristian Evers 602740ebca Update release date and version numbers
The original release date was pushed two weeks and a new PROJ-data
version is to be released.
2024-09-09 11:09:19 +02:00
Even Rouault 38dd7c2446 Refresh proj_symbol_rename.h 2024-09-08 14:06:33 +02:00
Even Rouault 4fccba3a61 Merge pull request #4244 from rouault/ETRF2000_ETRS89
createOperation(): tune so that ITRF2000->ETRS89 does not return only NKG grid based operations but also time-dependent Helmert
2024-09-05 15:58:48 +02:00
Even Rouault 529904c263 createOperation(): tune so that ITRF2000->ETRS89 does not return only NKG grid based operations but also time-dependent Helmert 2024-09-05 01:18:02 +02:00
Even Rouault 0100ad08e1 AuthorityFactory::createBetweenGeodeticCRSWithDatumBasedIntermediates(): avoid using intermediate CRS of ancient era when dealing with modern source/target CRS 2024-09-04 20:57:04 +02:00
Even Rouault b6bf25c2d5 Merge pull request #4241 from rouault/epsg_11_016
Database: update to EPSG 11.016
2024-09-02 12:34:30 +02:00
Even Rouault 2143a4ba7f Database: update to EPSG 11.016 2024-09-01 19:54:20 +02:00
Even Rouault a327e5238f CI: completely disable .travis.yml since arm64 builds are also broken now 2024-09-01 19:54:08 +02:00
Even Rouault e2fd35dfd8 Merge pull request #4231 from MechanicalSoftworks/forking-race-condition
Fix race condition surrounding DB reopening during fork
2024-08-31 16:30:37 +02:00
Even Rouault ad98ddfc95 Merge pull request #4238 from kbevers/gllat-glmsl
Add grid alternatives releated to GLLAT and GLMSL
2024-08-29 12:34:25 +02:00
Kristian Evers ba74cc981c Add grid alternatives releated to GLLAT and GLMSL 2024-08-29 08:56:36 +02:00
Even Rouault 298f7f6f96 Merge pull request #4237 from rouault/fix_4236
GeographicBoundingBox::create(): accept degenerate bounding box reduced to a point or a line
2024-08-27 15:14:02 +02:00
Even Rouault 903cfffd61 cs2cs and projinfo: emit warning when it looks like longitude and latitudes have been switched in --bbox 2024-08-27 14:15:05 +02:00
Even Rouault 85c6a0ec54 GeographicBoundingBox::create(): accept degenerate bounding box reduced to a point or a line
by extending it by the minimal amount to form a non-degenerate one.

Also throws when south > north

Fixes #4236
2024-08-27 14:15:05 +02:00
Even Rouault 58fca6dc51 Merge pull request #4235 from rouault/ITRF2020
Add data/ITRF2020 with ITRF2020 to ITRFother, and ITRF2020 plate motion models
2024-08-27 12:51:38 +02:00
Even Rouault 0c4b6a73ae Add data/ITRF2020 with ITRF2020 to ITRFother, and ITRF2020 plate motion models
Demo showing correctness/consistency with EPSG for ITRF2020 to ITRFother:

$ echo 2 49 0 | bin/cs2cs -d 10 ITRF2020 ITRF2014
2.0000000132	49.0000000042 -0.0042266957

$ echo 2 49 0 | PROJ_DATA=data bin/cct -d 10 +proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=cart +ellps=GRS80 +step +init=ITRF2020:ITRF2014 +step +inv +proj=cart +ellps=GRS80 +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
  2.0000000132   49.0000000042  -0.0042266957           inf

$ echo 2 49 0 | bin/cs2cs -d 10 ITRF2020 ITRF97
1.9999992955	49.0000000329 0.0239864234

$ echo 2 49 0 | PROJ_DATA=data bin/cct -d 10 +proj=pipeline +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=cart +ellps=GRS80 +step +init=ITRF2020:ITRF97 +step +inv +proj=cart +ellps=GRS80 +step +proj=unitconvert +xy_in=rad +xy_out=deg +step +proj=axisswap +order=2,1
  1.9999992955   49.0000000329  0.0239864234           inf
2024-08-27 00:48:34 +02:00
Even Rouault f43295a134 CI: fix Conda builds 2024-08-26 16:59:46 +02:00
Even Rouault 54913a4cbc Merge pull request #4234 from rouault/travis_disable_s390x
CI: disable Travis-CI s390x which has been broken for nearly one month now, and they still haven't fixed it
2024-08-26 15:32:41 +02:00
Even Rouault 77a00acc05 CI: disable Travis-CI s390x which has been broken for nearly one month now, and they still haven't fixed it 2024-08-26 15:23:27 +02:00
Lucas Zadrozny 6fcc657d7a Fix race condition surrounding DB reopening during fork 2024-08-20 20:53:32 +10:00
Even Rouault 2ce6c7a9b1 Merge pull request #4230 from jjimenezshaw/test-false-ne
Add minor test to Local Orthographic
2024-08-17 21:40:12 +02:00
Javier Jimenez Shaw 8cdb2ba744 Add minor test to Local Orthographic with non zero false easting and northing 2024-08-17 09:19:21 +02:00
Even Rouault 8a94b995ca Merge pull request #4229 from rouault/fine_tune_local_ortho
Fix parameter mappings of Local Orthographic, and re-import ESRI database with the mapping for this method
2024-08-16 23:32:48 +02:00
Even Rouault f9f8b7f0c5 Fix parameter mappings of Local Orthographic, and re-import ESRI database with the mapping for this method 2024-08-16 23:11:06 +02:00
Even Rouault c83e18e54a Merge pull request #4228 from jjimenezshaw/local-geographic
Add new Conversion "Local Orthographic"
2024-08-16 21:31:06 +02:00
Javier Jimenez Shaw 221b2d51ba Add new conversion Local Orthographic
with code 1130 from updated EPSG v11.015
with azimuth and scale factor in proj=ortho projection
2024-08-16 19:44:14 +02:00
Even Rouault 8cf1bafa36 Merge pull request #4227 from rouault/cppcheck_fixes
Fix very minor issues or workaround latest cppcheck false positives
2024-08-15 18:02:21 +02:00
Even Rouault c0a18c3855 Fix very minor issues or workaround latest cppcheck false positives 2024-08-15 16:26:28 +02:00
Even Rouault de10157706 Merge pull request #4221 from rouault/missing_time
Add PROJ_ERR_COORD_TRANSFM_MISSING_TIME and proj_coordoperation_requires_per_coordinate_input_time()
2024-08-15 12:05:07 +02:00
Even Rouault 1f9e46a46c Merge pull request #4226 from rouault/epsg_11_015
Database: update to EPSG 11.015
2024-08-15 12:04:54 +02:00
Even Rouault a3e17fb9f2 Database: update to EPSG 11.015 2024-08-14 23:09:41 +02:00
Even Rouault 4bf43e981a docs/docbuild/Dockerfile: add tex-gyre 2024-08-14 13:43:52 +02:00
Even Rouault 14e8e1565b Add proj_coordoperation_requires_per_coordinate_input_time() 2024-08-14 13:41:49 +02:00
Even Rouault d56f0dea58 Add PROJ_ERR_COORD_TRANSFM_MISSING_TIME, and use it +proj=deformation/defmodel 2024-08-14 13:38:54 +02:00
Even Rouault 892a313f85 Merge pull request #4225 from ecere/master
ISEA: Fix bug introduced in 825682a2ea
2024-08-14 13:38:05 +02:00
Even Rouault ae23ad5466 docs/docbuild/Dockerfile: add make 2024-08-14 12:52:54 +02:00
Jerome St-Louis 724878b97a ISEA: Fix bug introduced in 5f0aedf1e8
- Also added tests for `+orient=pole`
- step 1: double z = fabs(cosZ) < 1E-15 ? 0 : acos(cosZ); was wrong
- acos(0) is Pi/2, not 0
2024-08-14 06:50:20 -04:00
Even Rouault af475c6ee5 Merge pull request #4211 from ecere/master
ISEA Inverse projection (#3047)
2024-08-14 12:06:42 +02:00
Jerome St-Louis d1d8a5a75e ISEA: Save four trigonometric calls
- Avoid calling isea_rotate() in isea_tri_plane() to rotate
  coordinates in bottom triangles by 180 degrees.
2024-08-14 05:14:14 -04:00
Even Rouault 6803c5a0d5 Merge pull request #4224 from mwtoews/cmake-python3
CMake: replace Python3 with Python
2024-08-14 10:13:03 +02:00
Even Rouault 7e4da4d3b7 Merge pull request #4222 from mwtoews/container-upgrade
Dockerfile: fix warnings and other clean-ups
2024-08-14 10:11:45 +02:00
Jerome St-Louis 7874a3aa1b ISEA: Removing extraneous multiplications, unused code
- NOTE: There may have been an undocumented +rescale= parameter which
will no longer work
2024-08-14 00:13:02 -04:00
Jerome St-Louis 5f0aedf1e8 ISEA: Optimizations, unification and simplification
- Eliminating several redundant trigonometric function calls
- Single shared definition of dodecahedron vertices
  (centers of icosahedral triangular faces) for
  forward and inverse
- Shared data structure for forward and inverse
- Consistent use of 0-base index for triangular faces
2024-08-13 21:58:38 -04:00
Mike Taves 7bc9bac427 CMake: replace Python3 with Python 2024-08-14 13:04:54 +12:00
Mike Taves 4767406411 Dockerfile: fix warnings and other clean-ups 2024-08-14 11:11:12 +12:00
Jerome St-Louis 825682a2ea ISEA Inverse projection (#3047)
- Integrating code ported from Java to eC, then eC to C++ implementing the inverse ISEA projection
- Originally from Franz-Benjamin Mocnik's ISEA implementation found at
   https://github.com/mocnik-science/geogrid/blob/master/src/main/java/org/giscience/utils/geogrid/projections/ISEAProjection.java
   (MIT License)
- NOTE: The inverse only supports the default planar options
2024-08-13 17:49:44 -04:00
Even Rouault 64ece97813 Merge pull request #4220 from mwtoews/cmake-use-network
CMake: add TESTING_USE_NETWORK configure option
2024-08-13 19:04:30 +02:00
Javier Jimenez Shaw 0702d757f4 projinfo: 2 args equivalent to usage of -s and -t (#4218) 2024-08-13 19:01:28 +02:00
Mike Taves 038fe34203 CMake: add TESTING_USE_NETWORK configure option 2024-08-13 22:36:01 +12:00
Mike Taves d2b7ecde3c DOC: specify test requirements; add nlohmann/json to build reqs 2024-08-13 22:28:56 +12:00
WangWeiLin-MV bddac146b2 CMake: add option EMBED_PROJ_DATA_PATH (#4207) 2024-08-12 22:05:49 +02:00
Even Rouault e3f7098ba6 Fix formatting 2024-08-12 18:10:12 +02:00
Even Rouault 59ea0dac6f Merge pull request #4216 from rouault/fix_4215
Add missing include cstdint
2024-08-07 12:01:47 +02:00
Even Rouault 8b78ba4c18 Add missing include cstdint
Fixes #4215
2024-08-07 11:26:16 +02:00
Even Rouault a4593b4a91 Merge pull request #4213 from jjimenezshaw/vertica-method-1129
Process properly EPSG_CODE_METHOD_VERTICALGRID_GTG with code 1129
2024-08-01 16:24:28 +02:00
Javier Jimenez Shaw 5d173d8de9 process properly EPSG_CODE_METHOD_VERTICALGRID_GTG with code 1129 2024-08-01 15:39:36 +02:00
Even Rouault 6400b75371 Merge pull request #4208 from seanm/misc-warnings
Fixed misc warnings
2024-07-31 17:51:45 +02:00
79b4f28c10 [Backport master] Update utm.rst to show how TM and UTM are related (#4210)
Co-authored-by: 積丹尼 Dan Jacobson <jidanni@jidanni.org>
Co-authored-by: Kristian Evers <kristian@evers.dev>
2024-07-28 08:23:24 +12:00
Sean McBride 9e8cdb7244 Removed unused member functions
Warnings were:

warning: unused member function 'get_table' [-Wunused-member-function]

warning: unused member function 'clear' [-Wunused-member-function]

The string `get_table` appears nowhere else in the repository. The string `clear` does, being so generic, but things still compile after its removal, and these are tests, not public API.
2024-07-25 15:01:17 -04:00
Sean McBride f160acdb17 Fixed -Wunused-macros by conditionalizing to Cygwin only
Only define _GNU_SOURCE  on Cygwin.

warning was:

warning: macro is not used [-Wunused-macros]
2024-07-25 14:56:22 -04:00
Sean McBride f320fa7d60 Fixed -Wunused-template warning
This function is unused when building with ENABLE_TIFF=OFF.

The warning was:

warning: unused function template 'insertIntoHierarchy' [-Wunused-template]
2024-07-25 14:18:53 -04:00
Sean McBride e2a6662eca Fixed -Wcast-align warning, use memcpy instead
The warning was:

warning: cast from 'unsigned char *' to 'int *' increases required alignment from 1 to 4 [-Wcast-align]

An idiomatic solution is to use memcpy().
2024-07-25 14:17:29 -04:00
Sean McBride 45fca00fd2 Fixed -Wunused-macros warning; removed #define of PJ_DATUMS_
The string "PJ_DATUMS_" is nowhere else in the codebase, so presumably it is leftover junk.
2024-07-25 14:16:09 -04:00
Even Rouault 7d766a4ba1 Merge pull request #4200 from rouault/fix_4198
cct: emit error message and return error code when not being able to open input file
2024-07-21 14:59:57 +02:00
Even Rouault be9b42aa31 Merge pull request #4205 from rouault/fix_4202
Doc: prepare for ReadTheDocs Deprecation: Removal of Sphinx context injection at build time
2024-07-21 12:52:33 +02:00
Even Rouault 148292df28 Doc: prepare for ReadTheDocs Deprecation: Removal of Sphinx context injection at build time
Fixes #4202
2024-07-20 17:45:42 +02:00
積丹尼 Dan Jacobson cce46228bd optargpm.h: improve error message regarding mix of options starting with plus and minux (#4201)
Fixes #4199
2024-07-19 10:26:06 +02:00
Even Rouault e9557f1a03 cct: emit error message and return error code when not being able to open input file
Fixes #4198
2024-07-15 12:28:55 +02:00
Even Rouault 4bee401ad4 Merge pull request #4196 from jmckenna/output-name-summary
CMake: update output name summary (useful for Windows builds)
2024-07-11 20:00:05 +02:00
Jeff McKenna b6ffa835b6 update output name summary for CMake 2024-07-11 14:12:15 -03:00
Even Rouault d6311ab9bc Merge pull request #4167 from rouault/fix_4151
CMake: for Windows builds, defaults PROJ DLL to be just 'proj_${PROJ_MAJOR_VERSION}.dll'
2024-07-10 11:42:51 +02:00
Even Rouault 872a8d105f CMake: for Windows builds, defaults PROJ DLL to be just 'proj_${PROJ_MAJOR_VERSION}.dll'
instead of "proj_${PROJ_MAJOR_VERSION}_${PROJ_MINOR_VERSION}.dll"

This is configurable (for all platforms) by setting the new
PROJ_OUTPUT_NAME Make Variable

On MinGW, the APPEND_SOVERSION option can be set to ON, to add a "-${PROJ_SOVERSION}"
suffix to the PROJ shared library name.

Fixes #4151
2024-07-09 15:41:48 +02:00
Even Rouault eb12b9e3e8 Merge pull request #4189 from rouault/epsg_11_012
Database: update to EPSG 11.012
2024-07-08 21:06:40 +03:00
Even Rouault b5271a541a Merge pull request #4192 from rouault/fix_4191
Docs: add a note to explain EXE_SQLITE3 must of the host architecture
2024-07-08 21:06:30 +03:00
Even Rouault e97b0aeb02 Docs: add a note to explain EXE_SQLITE3 must of the host architecture
Fixes #4191
2024-07-07 10:27:38 +02:00
Even Rouault 0117b31c4a Database: update to EPSG 11.012 2024-07-06 13:24:35 +02:00
Even Rouault 979f20516e Merge pull request #4187 from OSGeo/dependabot/github_actions/docker/build-push-action-6
build(deps): bump docker/build-push-action from 5 to 6
2024-07-01 21:56:04 +02:00
dependabot[bot] a9f12ca4ca build(deps): bump docker/build-push-action from 5 to 6
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 5 to 6.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v5...v6)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-07-01 19:51:07 +00:00
Even Rouault ef281eb8f4 Merge pull request #4183 from rouault/decrease_exceptions
Limit number of C++ exceptions thrown & caught internally
2024-07-01 20:02:59 +02:00
Even Rouault 88a4c89a9d Merge pull request #4185 from jjimenezshaw/google-verification
[Doc] add google-site-verification meta tag in index.rst
2024-07-01 20:02:44 +02:00
Javier Jimenez Shaw 009bf58001 [Doc] add google-site-verification meta tag in index.rst 2024-07-01 19:45:59 +02:00
Tom Willow de8118616a Fix: not apply -Wextra-semi for gcc version<8 (#4184) 2024-06-29 17:33:22 +02:00
Even Rouault a9620afb75 Merge pull request #4181 from rouault/wkt1_oracle_albers_conical_equal_area
WKT import: add support for Oracle WKT 'Albers_Conical_Equal_Area' spelling
2024-06-26 19:34:21 +02:00
Even Rouault beaa1219a3 Add a mode to Transformation::getTOWGS84Parameters() to not throw exceptions 2024-06-26 19:32:55 +02:00
Even Rouault 793b7f2e1b pj_obj_create(): avoid C++ exception to be thrown when trying to export a dummy conversion to a PROJ string 2024-06-26 19:32:23 +02:00
Even Rouault 26685c3b27 Code reformatting 2024-06-26 19:30:35 +02:00
Clifford Yapp 47410920e0 Match 9.4.1 tag contents 2024-06-25 09:45:10 -04:00
Clifford Yapp 27be1f0c29 Update PROJ to v9.4.1 2024-06-25 09:42:55 -04:00
Even Rouault 932b66a363 WKT import: add support for Oracle WKT 'Albers_Conical_Equal_Area' spelling
Fixes https://lists.osgeo.org/pipermail/qgis-user/2024-June/054599.html
2024-06-25 00:09:54 +02:00
Even Rouault d73e829df9 Merge pull request #4180 from rouault/coverity_perf_warnings
Fix Coverity Scan performance warnings (CID 463080, 463079, 463078, 463077)
2024-06-24 23:42:17 +02:00
Even Rouault c4e09c04a5 Fix Coverity Scan performance warnings (CID 463080, 463079, 463078, 463077) 2024-06-23 20:35:09 +02:00
Even Rouault 4aa16151b9 Merge pull request #4179 from rouault/epsg_11_009
Database: update to EPSG v11.009
2024-06-20 18:50:49 +02:00
Even Rouault 4b20027f31 Database: update to EPSG v11.009 2024-06-20 16:41:41 +02:00
Even Rouault 480ccd618e CRS::createBoundCRSToWGS84IfPossible(): update it to work with CRS with 2 usages, with one extent containing a smaller one, like the EPSG 11.009 updated UTM ETRS89 CRS 2024-06-20 16:41:33 +02:00
Even Rouault 2495779d62 Merge pull request #4177 from joukewitteveen/patch-1
Support default context as nullptr in coordinateTransform
2024-06-20 13:03:27 +02:00
Even Rouault cc3ecaebb4 helmert.rst: fix rotation matrix formula (fixes #4178) 2024-06-20 13:02:55 +02:00
Even Rouault 36815b4bea Merge pull request #4176 from rouault/fix_4175
createOperations: make it work when transforming from/to a CompoundCRS with a DerivedVerticalCRS with ellipsoidal height
2024-06-20 01:06:30 +02:00
Jouke Witteveen 1b684bce2f coordinateTransformer: support default context as nullptr
In #3705, coordinateTransformer was added with documentation stating the
default context will be used when null is given as a context. This did
not work because the context was not sanitized.
2024-06-19 20:30:49 +02:00
Even Rouault 53be9fb273 createOperations: make it work when transforming from/to a CompoundCRS with a DerivedVerticalCRS with ellipsoidal height
Such CompoundCRS is strictly speaking not OGC Topic 2 conformant, but
can make sense from a practical point of view.

Fixes #4175
2024-06-18 23:33:57 +02:00
Even Rouault 90e148d509 Merge pull request #4174 from rouault/fix_4173
+proj=gridshift: make projected grids work with PROJ_NETWORK=ON
2024-06-18 13:08:48 +02:00
Even Rouault 68c678bd42 Merge pull request #4172 from rouault/toWGS84AutocorrectWrongValues
Add toWGS84AutocorrectWrongValues() method and use it in PROJ.4 and WKT1 CRS import
2024-06-18 13:08:40 +02:00
Even Rouault d978fdc0e9 Merge pull request #4171 from rouault/cs2cs_no_double_parse
cs2cs: create proj_create() only once for source/target CRS
2024-06-18 13:08:28 +02:00
Even Rouault 44e45b9b5f +proj=gridshift: make projected grids work with PROJ_NETWORK=ON
Fixes #4173
2024-06-17 19:35:15 +02:00
Even Rouault cceff3e49e Add toWGS84AutocorrectWrongValues() method and use it in PROJ.4 and WKT1 CRS import
This adds an heuristics to detect, aud autocorrect, wrong sign in rotation terms of
TOWGS84 clause wrongly imported from a Coordinate Frame rotation, such
as the ones currently emitted by epsg dot io.

Refs #4170
2024-06-15 17:46:17 +02:00
Even Rouault 1e3307012e cs2cs: create proj_create() only once for source/target CRS 2024-06-15 17:43:23 +02:00
Even Rouault 5b6867612d Merge pull request #4169 from rouault/intersects_comments
Add code comments in GeographicBoundingBox::Private::intersects()/intersections()
2024-06-10 22:44:47 +02:00
Even Rouault 2ebf62c8db Merge pull request #4168 from rouault/fix_4154
BoundCRS::exportToPROJ(): handle case of NADCON conus grid
2024-06-10 22:44:31 +02:00
Even Rouault d467ecb758 Merge pull request #4166 from rouault/fix_wrong_utm_zone_south
Fix wrong EPSG conversion code for UTM south
2024-06-10 22:44:15 +02:00
Even Rouault ee912165d3 Add code comments in GeographicBoundingBox::Private::intersects()/intersections() 2024-06-08 23:40:17 +02:00
Even Rouault 926bbd2064 BoundCRS::exportToPROJ(): handle case of NADCON conus grid
Fixes #4154
2024-06-05 19:21:18 +02:00
Even Rouault 41be4092fd Fix -Wdocumentation warning 2024-06-05 17:12:11 +02:00
Even Rouault 8b7c1b9ca0 WKT/PROJJSON import: correct wrong EPSG code for UTM South conversions 2024-06-05 17:12:01 +02:00
Even Rouault 9c1d1ea0aa Fix wrong EPSG conversion code for UTM south
When generating a Conversion object for a UTM south conversion (for
example when importing from PROJ.4 or WKT1), we currently use a wrong
offset.

Fixes https://gis.stackexchange.com/questions/482037/what-is-epsg17056
2024-06-05 17:12:01 +02:00
Even Rouault e0e14829a4 Merge pull request #4162 from rouault/howto_release_zenodo
HOWTO-RELEASE: add a step to check GitHub Zeonodo integration
2024-06-05 01:29:13 +02:00
Even Rouault 4ac06aa6d8 Merge pull request #4163 from jjimenezshaw/missing-pj_grid_info
[doc] add missing var name for PJ_GRID_INFO.filename
2024-06-05 00:07:55 +02:00
Javier Jimenez Shaw 7c83292d59 [doc] add missing var name for PJ_GRID_INFO.filename 2024-06-04 23:54:21 +02:00
Even Rouault 10e0e705ac HOWTO-RELEASE: add a step to check GitHub Zeonodo integration 2024-06-04 16:24:22 +02:00
Even Rouault 64bef2b488 Merge pull request #4158 from rouault/fix_4156
docker.yml: re-instate pushing Docker 'proj' image for non-master builds
2024-06-03 19:36:23 +02:00
erykoff 929f94609a Fix imoll and imoll_o zone calculations to correct inverse transformations near the "seams". (#4159)
Fixes #4155

* Fix x zone boundaries when doing inverse imoll transform.

* Fix x zone boundaries when doing inverse imoll_o transform.

* Add roundtrip tests for imoll near the "seams".

* Add roundtrip tests for imoll_o near the "seams".
2024-06-03 19:35:44 +02:00
Even Rouault 5083bad941 docker.yml: re-instate pushing Docker 'proj' image for non-master builds
Fixes #4156
Reverts d9df80600f
2024-06-02 20:00:27 +02:00
Kristian Evers 82af82809d Bump proj-data version in docs configuration 2024-05-29 13:39:47 +02:00
Kristian Evers d1b458c5de Update download and news entries in docs 2024-05-29 12:53:13 +02:00
Kristian Evers 3b7a6a9b2e Update NEWS for 9.4.1
More or less a duplicate commit of similar additions in the 9.4 branch
but due to the markdown-conversion of NEWS and other files a separate
commit is done for the sake of simplicity.
2024-05-27 21:27:58 +02:00
Kristian Evers 875a485fa5 Bump PROJ-data version in metadata.sql 2024-05-27 21:08:24 +02:00
Kristian Evers 266a825cdf Bump PROJ-data version in metadata.sql 2024-05-27 21:07:53 +02:00
Kristian Evers 4c2da03c22 Update NEWS for 9.4.1 release 2024-05-27 21:05:33 +02:00
Kristian Evers c62e0fec07 Update man-pages from Sphinx-docs 2024-05-27 20:51:46 +02:00
Kristian Evers 89a5f5918d Update version numbers and date for 9.4.1 release 2024-05-27 20:44:06 +02:00
Even Rouault ad3e44134f Merge pull request #4150 from OSGeo/backport-4149-to-9.4
[Backport 9.4] Improve detection of compatible/incompatible celestial bodies
2024-05-24 17:57:28 +02:00
Even Rouault 38f218da43 createOperations(): improve detection of compatible/incompatible celestial bodies (fixes #4148) 2024-05-24 13:54:28 +00:00
Even Rouault 35a343fb30 WKT/PROJJSON importer: improve heuristics to guess the celestial body name by using the ellipsoid name (fixes #4148) 2024-05-24 13:54:28 +00:00
Even Rouault 99a51d25e4 Merge pull request #4149 from rouault/fix_4148
Improve detection of compatible/incompatible celestial bodies
2024-05-24 15:53:50 +02:00
Even Rouault ed11397490 createOperations(): improve detection of compatible/incompatible celestial bodies (fixes #4148) 2024-05-24 04:26:56 +02:00
Even Rouault 4097baf8e3 WKT/PROJJSON importer: improve heuristics to guess the celestial body name by using the ellipsoid name (fixes #4148) 2024-05-24 04:11:48 +02:00
Even Rouault ea00f187f7 Merge pull request #4146 from rouault/fix_coverity_460619
[Lint] WKTParser::Private: refactor code a bit in the hope to fix false-positive 'Untrusted value as argument' Coverity Scan warning
2024-05-13 00:04:27 +02:00
Even Rouault 1d4a155d33 [Lint] WKTParser::Private: refactor code a bit in the hope to fix false-positive 'Untrusted value as argument' Coverity Scan warning
Should hopefully fix CID 460619, 460620, 460621

Coverity Scan suddenly complains about propertyCount_ not being
properly being validated (which is wrong). Let's take the opportunity to
use a bit more C++ish style in the hope it will shut down that false
positive.
2024-05-12 21:21:09 +02:00
Even Rouault 5fb1688f1d Merge pull request #4145 from rouault/update_proj_symbol_rename
[9.4] proj_symbol_rename.h: update with current symbols
2024-05-10 16:56:59 +02:00
Even Rouault 74f4ed6213 Merge pull request #4144 from rouault/proj_context_set_user_writable_directory
API: add proj_context_set_user_writable_directory()
2024-05-10 16:56:54 +02:00
Even Rouault 1facc74a54 Merge pull request #4143 from OSGeo/backport-4138-to-9.4
[Backport 9.4] Database: update ESRI dataset to ArcGIS Pro 3.3
2024-05-10 16:56:45 +02:00
Even Rouault 68ab87e203 Update proj_symbol_rename.h 2024-05-09 23:38:54 +02:00
Even Rouault dda95a08d0 API: add proj_context_set_user_writable_directory()
Fixes #4142
2024-05-09 23:38:54 +02:00
Even Rouault 9baec73c01 proj_symbol_rename.h: update with current symbols 2024-05-09 21:48:24 +02:00
Even Rouault 994217540f Database: update ESRI dataset to ArcGIS Pro 3.3
Update to
https://github.com/Esri/projection-engine-db-doc/commit/3bbc1daccab58f82b6981ad81716ab3bf7670f82
/ tag v3.3.0

Fixes #4137
2024-05-09 19:14:51 +00:00
Even Rouault 5e9c999b5d Merge pull request #4139 from OSGeo/backport-4124-to-9.4
[Backport 9.4] DerivedProjectedCRS: deal with lack of explicit CS in BASEPROJCRS in WKT
2024-05-09 21:08:51 +02:00
Even Rouault f00f01dd11 Merge pull request #4141 from OSGeo/backport-4140-to-9.4
[Backport 9.4] Add grid alternatives related to DKLAT, DKMSL and GLLMSL
2024-05-09 21:08:33 +02:00
Even Rouault e353e08800 Merge pull request #4138 from rouault/esri_arcgis_pro_3_3
Database: update ESRI dataset to ArcGIS Pro 3.3
2024-05-09 21:08:23 +02:00
Kristian Evers 403c18c507 Grid grid-alternative types for DVR90 grids
Were set to `hgridshift` but should in fact på `geoid_like`.
2024-05-08 21:17:14 +00:00
Kristian Evers 11b3248919 Add grid alternatives related to DKLAT, DKMSL and GLLMSL 2024-05-08 21:17:14 +00:00
Even Rouault 1d0354fd7b Merge pull request #4140 from kbevers/dk-grid-updates
Add grid alternatives related to DKLAT, DKMSL and GLLMSL
2024-05-08 23:16:52 +02:00
Kristian Evers 6342f19b21 Grid grid-alternative types for DVR90 grids
Were set to `hgridshift` but should in fact på `geoid_like`.
2024-05-08 14:38:26 +02:00
Kristian Evers 881bff1249 Add grid alternatives related to DKLAT, DKMSL and GLLMSL 2024-05-08 14:37:42 +02:00
Mike Taves bb094d7174 Improve CLI testing (#4131) 2024-05-08 22:43:44 +12:00
Even Rouault d9df80600f docker.yml: only push packages for master builds 2024-05-08 02:08:59 +02:00
Even Rouault 23d50be12e Remove docker.yml [ci skip] 2024-05-08 02:07:24 +02:00
Even Rouault ee6a519fc5 DerivedProjetedCRS WKT export: emit a BASEPROJCRS.CS node in situations where there's ambiguity
Cf https://github.com/OSGeo/gdal/issues/9732#issuecomment-2072508672
2024-05-07 22:53:24 +00:00
Even Rouault 76735470c9 WKT2 grammar: allow a DERIVEDPROJCRS.BASEPROJCRS.CS node
Current WKT grammar (as of WKT2 18-010r11) does not allow a
BASEPROJCRS.CS node, but there are situations where this is
ambiguous and we want to allow one.
Cf https://github.com/OSGeo/gdal/issues/9732#issuecomment-2072508672
2024-05-07 22:53:24 +00:00
Even Rouault bf6a413739 DerivedProjectedCRS WKT import: workaround lack of explicit CS in BASEPROJCRS
Current WKT2 grammar doesn't allow an explicit CS (Coordinate System) in the BASEPROJCRS of
a DERIVEDPROJCRS. This leads to ambiguities when instanciating the
BASEPROJCRS. Cf https://github.com/OSGeo/gdal/issues/9732#issuecomment-2072508672
for a longer analysis

When importing such a DerivedProjectedCRS, we apply the following
strategy to try to reconstrut the CS of the baseProjCRS:
- if the baseProjCRS has an ID[], do a datebase lookup for this object,
  and if found, use its CS
- otherwise, do a database lookup from the name of the baseProjCRS, and
  if found, use its CS
- otherwise, browse through the PARAMETERs of the CONVERSION of the
  BASEPROJCRS, and if there is at least one such PARAMETER that has a
  linear unit, and if all PARAMETERs with a linear unit have the same
  one, then use it to reconstruct a Easting/Northing CartesianCS.
- otherwise, fallback to current behaviour, that is return a
  Easting/Northing CartesianCS with metre unit.

Fixes https://github.com/OSGeo/gdal/issues/9732
2024-05-07 22:53:24 +00:00
Even Rouault a715623148 Merge pull request #4124 from rouault/fix_gdal_9732
DerivedProjectedCRS: deal with lack of explicit CS in BASEPROJCRS in WKT
2024-05-08 00:52:51 +02:00
Even Rouault a42e1bab90 Merge pull request #4136 from OSGeo/backport-4134-to-9.4
[Backport 9.4] projinfo.rst: re-add '-s'
2024-05-08 00:36:40 +02:00
Even Rouault 4dddaaa482 Merge pull request #4135 from OSGeo/backport-4133-to-9.4
[Backport 9.4] bindings.rst: Add link to Perl bindings
2024-05-08 00:36:33 +02:00
Even Rouault 189b7a7ce9 Database: update ESRI dataset to ArcGIS Pro 3.3
Update to
https://github.com/Esri/projection-engine-db-doc/commit/3bbc1daccab58f82b6981ad81716ab3bf7670f82
/ tag v3.3.0

Fixes #4137
2024-05-08 00:34:36 +02:00
Even Rouault dbe5f772c0 projinfo.rst: re-add '-s' accidentally removed in 4ac2cfb25e 2024-05-06 11:30:28 +00:00
Even Rouault b59c4b5db3 Merge pull request #4134 from rouault/doc_projinfo_s
projinfo.rst: re-add '-s'
2024-05-06 13:30:05 +02:00
Arne Johannessen be567d8bbe Add link to Perl bindings 2024-05-06 11:15:04 +00:00
Arne Johannessen daeddc86ea Sort language bindings alphabetically 2024-05-06 11:15:04 +00:00
Even Rouault 3b1109dae3 Merge pull request #4133 from johannessen/perl-bindings
bindings.rst: Add link to Perl bindings
2024-05-06 13:12:53 +02:00
Even Rouault 6213ba0723 projinfo.rst: re-add '-s' accidentally removed in 4ac2cfb25e 2024-05-06 13:00:43 +02:00
Arne Johannessen 97cee1427b Add link to Perl bindings 2024-05-06 07:13:43 +02:00
Arne Johannessen 46cbc63a5f Sort language bindings alphabetically 2024-05-06 07:11:17 +02:00
Even Rouault ac88137ce9 Merge pull request #4132 from rouault/epsg_11_008
Database: update to EPSG v11.008
2024-05-02 02:05:11 +02:00
Even Rouault cdcdfceabc Database: update to EPSG v11.008 2024-05-02 00:36:19 +02:00
Even Rouault 8f29b8f48b test/fuzzers/build.sh: fix with latest ossfuzz update [ci skip] 2024-04-30 15:54:38 +02:00
Even Rouault 5a95429114 Merge pull request #4127 from rouault/stripVerticalComponent_alias_demoteTo2D
CRS::stripVerticalComponent(): Redirect it to demoteTo2D(std::string(), nullptr)
2024-04-29 16:13:11 +02:00
Even Rouault f3fa0e0594 Merge pull request #4129 from rouault/mac13
CI: switch from macos-latest to macos-13 to get x64 builds
2024-04-29 16:12:43 +02:00
Even Rouault 7bbb045109 mac.yml: select macos-13 for x64 builds 2024-04-27 19:16:33 +02:00
Even Rouault ced90ad8d5 adams_ws2.gie: disable test that fails on MacOS 13 2024-04-27 19:16:33 +02:00
Even Rouault 3c47abf8fd conda.yml: use macos-12 due to test failure 2024-04-27 18:57:50 +02:00
Even Rouault 04d9f210cd CI: conda.yml: change macos-latest to macos-13 2024-04-27 18:19:28 +02:00
Even Rouault 6e2b5b5c8f Revert ".github/workflows/docker.yml: (temporarily?) build proj-docs as proj-docs-2404"
This reverts commit 34a9a57654.

The ghcr.io/osgeo/proj-docs-2404 has been pushed, but for some reason it
can't be pulled by the GDAL job. So just use the original
ghcr.io/osgeo/proj-docs name
2024-04-27 16:50:36 +02:00
Even Rouault ad74ee2326 Revert "docker.yml: fix inverted elements"
This reverts commit 7ab4e5f52e.
2024-04-27 15:30:17 +02:00
Even Rouault 7ab4e5f52e docker.yml: fix inverted elements 2024-04-27 15:28:19 +02:00
Even Rouault ff0833ab50 Merge pull request #4128 from rouault/proj-docs-update
Update proj-docs Docker image to Ubuntu 24.04
2024-04-27 14:26:54 +02:00
Even Rouault d3cb3fb2f5 CRS::stripVerticalComponent(): redirect it to demoteTo2D(std::string(), nullptr)
stripVerticalComponent() was implemented in the initial commit of the PROJ 6 / GDAL
Barn SRS effort, but was not used internally at that time. Just as a potential
useful method for future users

Later we needed promoteTo3D(), and soon after the reverse operation, but
we (likely) forgot about the existence of stripVerticalComponent(). Hence
a new demoteTo2D() method, which is more capable than the initial
stripVerticalComponent().
2024-04-26 20:23:59 +02:00
Even Rouault 34a9a57654 .github/workflows/docker.yml: (temporarily?) build proj-docs as proj-docs-2404 2024-04-26 19:48:24 +02:00
Even Rouault 3635a00d62 docbuild/Dockerfile: update to Ubuntu 24.04, and remove no longer pins of a few packages 2024-04-26 19:48:24 +02:00
Even Rouault 332af8b1ad Fixes to make doc building work with Doxygen 1.9.8 2024-04-26 19:48:24 +02:00
Even Rouault 082e8484a1 Merge pull request #4126 from OSGeo/backport-4125-to-9.4
[Backport 9.4] PROJJSON specification and license: recall copyright and license
2024-04-25 17:36:01 +02:00
Even Rouault cc427d4fdd PROJJSON specification and license: recall copyright and license 2024-04-25 15:23:40 +00:00
Even Rouault 2f542b4ae8 Merge pull request #4125 from rouault/projjson_copyright_license
PROJJSON specification and license: recall copyright and license
2024-04-25 17:21:12 +02:00
Even Rouault 6e27046710 PROJJSON specification and license: recall copyright and license 2024-04-24 23:09:23 +02:00
Even Rouault c873334faf DerivedProjetedCRS WKT export: emit a BASEPROJCRS.CS node in situations where there's ambiguity
Cf https://github.com/OSGeo/gdal/issues/9732#issuecomment-2072508672
2024-04-23 17:53:55 +02:00
Even Rouault 6f85439a70 WKT2 grammar: allow a DERIVEDPROJCRS.BASEPROJCRS.CS node
Current WKT grammar (as of WKT2 18-010r11) does not allow a
BASEPROJCRS.CS node, but there are situations where this is
ambiguous and we want to allow one.
Cf https://github.com/OSGeo/gdal/issues/9732#issuecomment-2072508672
2024-04-23 17:53:06 +02:00
Even Rouault 38330b6729 DerivedProjectedCRS WKT import: workaround lack of explicit CS in BASEPROJCRS
Current WKT2 grammar doesn't allow an explicit CS (Coordinate System) in the BASEPROJCRS of
a DERIVEDPROJCRS. This leads to ambiguities when instanciating the
BASEPROJCRS. Cf https://github.com/OSGeo/gdal/issues/9732#issuecomment-2072508672
for a longer analysis

When importing such a DerivedProjectedCRS, we apply the following
strategy to try to reconstrut the CS of the baseProjCRS:
- if the baseProjCRS has an ID[], do a datebase lookup for this object,
  and if found, use its CS
- otherwise, do a database lookup from the name of the baseProjCRS, and
  if found, use its CS
- otherwise, browse through the PARAMETERs of the CONVERSION of the
  BASEPROJCRS, and if there is at least one such PARAMETER that has a
  linear unit, and if all PARAMETERs with a linear unit have the same
  one, then use it to reconstruct a Easting/Northing CartesianCS.
- otherwise, fallback to current behaviour, that is return a
  Easting/Northing CartesianCS with metre unit.

Fixes https://github.com/OSGeo/gdal/issues/9732
2024-04-23 17:53:06 +02:00
Javier Jimenez Shaw 860eb9ecee CI: avoid failure if .ccache doesn't exist 2024-04-18 17:24:21 +02:00
Even Rouault 4e6daa43fd Merge pull request #4121 from OSGeo/backport-4120-to-9.4
[Backport 9.4] ConcatenatedOperation::fixStepsDirection(): handle case where conversion is chained with transformation that must be reversed
2024-04-18 17:23:01 +02:00
Even Rouault f570b9f702 ConcatenatedOperation::fixStepsDirection(): handle case where conversion is chained with transformation that must be reversed
Fixes https://github.com/OSGeo/PROJ/issues/4116
2024-04-17 16:47:32 +00:00
Even Rouault 08ee492d73 Merge pull request #4120 from rouault/fix_4116
ConcatenatedOperation::fixStepsDirection(): handle case where conversion is chained with transformation that must be reversed
2024-04-17 18:45:28 +02:00
Even Rouault 432479678b Merge pull request #4119 from OSGeo/backport-4117-to-master
[Backport master] Update cct.rst warning of DMS dangers
2024-04-16 22:20:02 +02:00
Even Rouault 091bed1599 ConcatenatedOperation::fixStepsDirection(): handle case where conversion is chained with transformation that must be reversed
Fixes https://github.com/OSGeo/PROJ/issues/4116
2024-04-16 22:05:57 +02:00
積丹尼 Dan Jacobson 5ee843a828 Update cct.rst warning of DMS dangers
Proof:
```
echo 12.5 55       | cct -z0 -t0 +proj=utm +zone=32 +ellps=GRS80
echo 12d30\'0\" 55 | cct -z0 -t0 +proj=utm +zone=32 +ellps=GRS80
echo 12 55         | cct -z0 -t0 +proj=utm +zone=32 +ellps=GRS80
  723842.2602   6100394.7568        0.0000        0.0000
  691875.6321   6098907.8250        0.0000        0.0000
  691875.6321   6098907.8250        0.0000        0.0000
```
2024-04-16 19:05:33 +00:00
Even Rouault b0e38e6e03 Merge pull request #4114 from OSGeo/backport-4113-to-9.4
[Backport 9.4] proj_create()/proj_create_from_database(): recall CRS AUTH:CODE in error message
2024-04-16 20:22:44 +02:00
Even Rouault 279f7573cf Merge pull request #4117 from jidanni/patch-41
Update cct.rst warning of DMS dangers
2024-04-16 20:22:23 +02:00
積丹尼 Dan Jacobson 06602365d6 Update cct.rst warning of DMS dangers
Proof:
```
echo 12.5 55       | cct -z0 -t0 +proj=utm +zone=32 +ellps=GRS80
echo 12d30\'0\" 55 | cct -z0 -t0 +proj=utm +zone=32 +ellps=GRS80
echo 12 55         | cct -z0 -t0 +proj=utm +zone=32 +ellps=GRS80
  723842.2602   6100394.7568        0.0000        0.0000
  691875.6321   6098907.8250        0.0000        0.0000
  691875.6321   6098907.8250        0.0000        0.0000
```
2024-04-14 10:38:23 +08:00
Even Rouault 1f670e8ee5 proj_create()/proj_create_from_database(): recall CRS AUTH:CODE in error message
Fixes #4112
2024-04-06 17:23:59 +00:00
Even Rouault 356e255022 Merge pull request #4113 from rouault/fix_4112
proj_create()/proj_create_from_database(): recall CRS AUTH:CODE in error message
2024-04-06 19:23:32 +02:00
Even Rouault 4bc2bc67ac proj_create()/proj_create_from_database(): recall CRS AUTH:CODE in error message
Fixes #4112
2024-04-05 20:04:10 +02:00
Even Rouault 589e01ea78 Merge pull request #4111 from kbevers/backport-nkg-unique-names
Backport NKG unique names
2024-04-04 17:34:33 +02:00
Even Rouault 92de8aa956 nkg.sql: fix remaining duplicated transformation names 2024-04-04 08:51:26 +02:00
Kristian Evers 2beb416e24 Make NKG Transformation names unique
A consequence of new database constrains introduced in #4071.
2024-04-04 08:50:29 +02:00
Even Rouault f4af2778eb Merge pull request #4108 from rouault/grammarErrorList
Add a WKTParser::grammarErrorList() method so that proj_create_from_wkt() can behave as documented
2024-04-02 20:44:45 +02:00
Even Rouault 8f7ae0e7b2 Merge pull request #4080 from rouault/consistency_checks_triggers
Database: rework a bit consistency checks triggers
2024-04-02 20:44:27 +02:00
Even Rouault 45f5694ae3 consistency_checks_triggers.sql: remove NKG exceptions related to unicity check of operation name 2024-04-02 19:23:54 +02:00
Even Rouault d6abd11fed nkg.sql: fix remaining duplicated transformation names 2024-04-02 19:23:54 +02:00
Even Rouault 59b194f1ab consistency_checks_triggers.sql: check that transformations with Geog3D to Geog2D+GravityRelatedHeight/Depth family of methods are properly registered 2024-04-02 14:21:50 +02:00
Even Rouault 42a97f9a97 consistency_checks_triggers.sql: add consistency check for 1st step of a concatenated operation 2024-04-02 14:21:50 +02:00
Even Rouault c1adccff36 Database: move final consistency checks on transformations as insert time triggers 2024-04-02 14:21:50 +02:00
Even Rouault b927c03a0b Database: move insertion triggers implementing consistency checks in a dedicated file
Can make it easier to disable them to speed the proj.db speed process
during some development scenarios.
2024-04-02 14:21:50 +02:00
Even Rouault ef3b9b86e4 Database: proj_db_table_defs.sql: remove no longer needed exception for EPSG:5375 "SIRGAS-Chile to WGS 84 (1)" 2024-04-02 14:21:06 +02:00
Kristian Evers 83ac84d944 Merge pull request #4098 from kbevers/unique-nkg-names
Make NKG Transformation names unique
2024-04-02 11:12:11 +00:00
Kristian Evers 36d75d30dd Make NKG Transformation names unique
A consequence of new database constrains introduced in #4071.
2024-04-02 12:38:04 +02:00
Even Rouault 7c97e3391d Add a WKTParser::grammarErrorList() method so that proj_create_from_wkt() can behave as documented 2024-03-28 18:46:41 +01:00
Even Rouault 72e6dbab11 Merge pull request #4107 from OSGeo/backport-4106-to-9.4
[Backport 9.4] Retry "Connection reset by peer"
2024-03-27 13:38:08 +01:00
Peter A. Jonsson 65fd97da33 Retry "Connection reset by peer"
Building the GDAL image can fail with:

Downloading https://cdn.proj.org/fr_ign_RAF18b.tif... (132 / 423)
Downloading https://cdn.proj.org/fr_ign_RAF20.tif... (133 / 423)
Downloading https://cdn.proj.org/fr_ign_RAGTBT2016.tif... (134 / 423)
Cannot open https://cdn.proj.org/fr_ign_RAGTBT2016.tif: OpenSSL SSL_read: Connection reset by peer, errno 104

so add the connection reset by peer
to the list of things that get a retry
time.
2024-03-27 11:44:52 +00:00
Even Rouault 70d4d32230 Merge pull request #4106 from pjonsson/retry-reset-by-peer
Retry "Connection reset by peer"
2024-03-27 12:42:36 +01:00
Peter A. Jonsson 7230712660 Retry "Connection reset by peer"
Building the GDAL image can fail with:

Downloading https://cdn.proj.org/fr_ign_RAF18b.tif... (132 / 423)
Downloading https://cdn.proj.org/fr_ign_RAF20.tif... (133 / 423)
Downloading https://cdn.proj.org/fr_ign_RAGTBT2016.tif... (134 / 423)
Cannot open https://cdn.proj.org/fr_ign_RAGTBT2016.tif: OpenSSL SSL_read: Connection reset by peer, errno 104

so add the connection reset by peer
to the list of things that get a retry
time.
2024-03-27 11:30:35 +01:00
Even Rouault 2ff88c7bca Merge pull request #4094 from rouault/cartesian_grid_offsets
Implement EPSG:9656 'Cartesian Grid Offsets' operation method, and import related records
2024-03-25 22:58:25 +01:00
Even Rouault e99882b596 Merge pull request #4093 from rouault/epsg_11_007
Database: update to EPSG v11.007, and other updates
2024-03-24 14:15:39 +01:00
Even Rouault 31ffa2b836 Merge pull request #4087 from rouault/faster_geodetic
Speed-up +proj=cart +inv
2024-03-24 14:15:11 +01:00
Even Rouault f9a967c9f8 Merge pull request #4105 from OSGeo/backport-4104-to-9.4
[Backport 9.4] Update roundtrip example in help text for cct
2024-03-24 14:13:52 +01:00
Kristian Evers 1ddece0683 Update roundtrip expample in help text for cct
Closes #4101
2024-03-24 11:46:43 +00:00
Kristian Evers ab4f65dccd Merge pull request #4104 from kbevers/cct-help
Update roundtrip expample in help text for cct
2024-03-24 11:46:19 +00:00
Kristian Evers 78cc41d49c Update roundtrip expample in help text for cct
Closes #4101
2024-03-24 10:46:34 +01:00
Mike Taves 071f7310b3 DOC: consistency via markdownlint; move AUTHORS to AUTHORS.md (#4096) 2024-03-21 23:36:45 +13:00
Even Rouault a3110b73bc Merge pull request #4095 from OSGeo/backport-4089-to-master
[Backport master] Doc: add note warning that stere/sterea are different things and …
2024-03-20 00:09:43 +01:00
Even Rouault 9aebac7dca Doc: add note warning that stere/sterea are different things and clarify their relationship with EPSG's Oblique Stereographic 2024-03-19 17:39:25 +00:00
Even Rouault 389f5619fe Merge pull request #4089 from rouault/doc_stere_sterea
Doc: add note warning that stere/sterea are different things and …
2024-03-19 18:34:24 +01:00
Even Rouault b1927ea29d Database: avoid now useless exception for 'NAD83(CSRS)v2 to NAD83(CSRS)v3 (1)' duplicate entry 2024-03-19 17:35:34 +01:00
Even Rouault c1957fddc7 windows.yml: make sure to run tests under bash so that a failure causes an error 2024-03-19 12:45:12 +01:00
Even Rouault 4d64a35d93 Implement EPSG:9656 'Cartesian Grid Offsets' operation method, and import related records 2024-03-19 12:42:54 +01:00
Even Rouault 7eb1c3a57e Recognize EPSG:1079 'New Zealand Deformation Model' and map it to +proj=defmodel, removing custom entries from other_transformation_custom.sql 2024-03-19 10:52:22 +01:00
Even Rouault 67f3402301 Operation Geographic3D Offset By Velocity Grid: use geodetic datum anchor epoch, now that NAD83(CSRS)vX datums have one since EPSG v11.007 2024-03-19 10:52:22 +01:00
Even Rouault f1b4e7237f Database: update to EPSG v11.007 2024-03-19 10:52:22 +01:00
Javier Jimenez Shaw 4f635b1376 [Doc] Rename NEWS and HOWTO-RELEASE to *.md (#4066)
* mv NEWS to NEWS.md

* mv HOWTO-RELEASE to HOWTO-RELEASE.md

* better formatting for replace command

* udpate CMakeLists.txt with HOWTO-RELEASE.md

* remove the indentation of the subsections: sed -i -e 's/^ //' NEWS.md

* Use markdown styles for sections

* Sections case consistent

* markdown: format alerts as blocks for readibility

* markdown: make lists of 'thanks to' more readable

* Remove README from the source dist
2024-03-18 22:32:55 +01:00
Even Rouault 17cd2d0ddd Merge pull request #4090 from OSGeo/backport-4079-to-9.4
[Backport 9.4] DatabaseContext::lookForGridInfo(): do not trigger network activity …
2024-03-18 01:52:16 +01:00
Even Rouault 863fa4aa75 Doc: add note warning that stere/sterea are different things and clarify their relationship with EPSG's Oblique Stereographic 2024-03-18 00:57:39 +01:00
Even Rouault 60f20de1bc Merge pull request #4091 from jjimenezshaw/mingw_w64-user-fail
[CI]: avoid failure in mingw_w64_build if .ccache doesn't exist
2024-03-16 21:00:10 +01:00
Even Rouault 2d22cf6810 geocentric_radius(): save a sqrt() 2024-03-16 20:59:49 +01:00
Even Rouault 36da998184 geocentric_radius(): reduce number of additions and multiplications 2024-03-16 20:24:35 +01:00
Even Rouault 73ebe8e68c +proj=cart +inv: use P->ra 2024-03-16 19:46:15 +01:00
Even Rouault 27561c1ac8 Speed-up +proj=cart +inv 2024-03-16 19:46:14 +01:00
Javier Jimenez Shaw e09d028053 CI: avoid failure if .ccache doesn't exist 2024-03-16 19:26:58 +01:00
Even Rouault ff8032df3f Merge pull request #4086 from rouault/backport_epsg_11_006
[Backport 9.4] Database: update to EPSG v11.006
2024-03-16 17:33:19 +01:00
Even Rouault 82ae265466 DatabaseContext::lookForGridInfo(): do not trigger network activity in PROJ_GRID_AVAILABILITY_KNOWN_AVAILABLE mode when all grids are known (fixes #4075) 2024-03-16 12:20:45 +00:00
Even Rouault b8354ebd8f Merge pull request #4079 from rouault/fix_4075
DatabaseContext::lookForGridInfo(): do not trigger network activity …
2024-03-16 13:18:09 +01:00
Even Rouault 0caf671083 projjson.rst: update reference to v0.7 schema (refs #4088) 2024-03-15 00:14:01 +01:00
Even Rouault 5f725fb720 projjson.rst: update reference to v0.7 schema (refs #4088) 2024-03-15 00:13:36 +01:00
Even Rouault 3925116eb2 DatabaseContext::lookForGridInfo(): do not trigger network activity in PROJ_GRID_AVAILABILITY_KNOWN_AVAILABLE mode when all grids are known (fixes #4075) 2024-03-14 18:11:06 +01:00
Javier Jimenez Shaw b31692e678 Database: update to EPSG v11.006 2024-03-14 18:09:06 +01:00
Even Rouault e6a051431a Merge pull request #4085 from jjimenezshaw/epsg-11.006
Database: update to EPSG v11.006
2024-03-14 18:03:45 +01:00
Javier Jimenez Shaw 49be0c2ae6 Database: update to EPSG v11.006 2024-03-14 17:23:40 +01:00
Javier Jimenez Shaw 385b9cecc9 do not create file builtin_authorities.sql 2024-03-14 17:23:32 +01:00
Even Rouault 294228ebbd Merge pull request #4083 from OSGeo/backport-4081-to-9.4
[Backport 9.4] Update geod.rst to reduce head scratching
2024-03-12 01:07:35 +01:00
Even Rouault 5a7e2bf60c Merge pull request #4082 from OSGeo/backport-4081-to-master
[Backport master] Update geod.rst to reduce head scratching
2024-03-12 01:07:31 +01:00
積丹尼 Dan Jacobson 76f4c9776e Update geod.rst to reduce head scratching 2024-03-11 09:56:26 +00:00
積丹尼 Dan Jacobson c92f159e8d Update geod.rst to reduce head scratching 2024-03-11 09:56:24 +00:00
Even Rouault ef7eb8c67a Merge pull request #4074 from rouault/pj_const
Make a few more functions that accept a 'PJ*' to actually acccept a 'const PJ*'
2024-03-09 14:30:37 +01:00
Even Rouault 7bda4e1890 Make a few more functions that accept a 'PJ*' to actually acccept a 'const PJ*' 2024-03-09 13:36:54 +01:00
Even Rouault 4d4f646ab0 Merge pull request #4071 from rouault/db_unique_names
Database: add constraint for unicity of CRS and operation names
2024-03-09 13:26:52 +01:00
Even Rouault 642b527652 Database: restrict the checks on name unicity to the 'official' authorities provided by upstream PROJ 2024-03-07 22:54:17 +01:00
Even Rouault a30fccfb51 Database: allow duplicate entry for 'ETRS89 to ETRS89 + Baltic 1957 height (1)' 2024-03-07 18:54:23 +01:00
Even Rouault ca6d01167a Merge pull request #4073 from rouault/fix_4070
HOWTO-RELEASE: mention updating the RTD global wildcard redirect (fixes #4070)
2024-03-07 18:53:51 +01:00
Even Rouault be66924fe8 Database: add constraint for unicity of CRS and operation names
More exactly on projected_crs, vertical_crs, compound_crs,
helmert_transformation, grid_transformation, other_transformation and
concatenated_operation tables.

Bump database layout version to 1.4
2024-03-07 18:45:53 +01:00
Even Rouault 1a5b48382e HOWTO-RELEASE: mention updating the RTD global wildcard redirect (fixes #4070) 2024-03-07 18:37:49 +01:00
Clifford Yapp 6106b16701 Update RELEASE to v9.4.0 2024-03-06 11:37:37 -05:00
Kristian Evers 23dc37959f Fix indentation error in docs/source/conf.py 2024-03-01 19:40:08 +01:00
Kristian Evers afeffdb734 Update sphinx config for RTD 2024-03-01 18:13:51 +01:00
Kristian Evers 3c7e4ee328 Bump versions numbers etc in preperation for version 9.5.0 2024-03-01 18:10:01 +01:00
Kristian Evers 7cd00d0b2c Update html docs for 9.4.0 2024-03-01 17:56:59 +01:00
Kristian Evers df8df3bc1b Update documentation for 9.3.1 release 2024-03-01 17:56:50 +01:00
Kristian Evers a05a9e2305 Update html docs for 9.4.0 2024-03-01 17:55:55 +01:00
Kristian Evers a259213ad5 Update documentation for 9.3.1 release 2024-03-01 17:37:43 +01:00
Kristian Evers 97c343cc1e Update PROJ-data version in docs 2024-02-26 17:07:02 +01:00
Kristian Evers cdcbfc1bcb Update CITATION files for 9.4.0 release 2024-02-26 17:05:25 +01:00
Kristian Evers 6b9dca8200 Update NEWS for 9.4.0 2024-02-26 17:03:21 +01:00
Kristian Evers a50ab98a28 Update man-pages from Sphinx-docs 2024-02-26 16:36:37 +01:00
Kristian Evers a67ff1206e Update man-pages from Sphinx-docs 2024-02-26 16:33:50 +01:00
Even Rouault 30847acfab Merge pull request #4064 from rouault/ci_conda_osx_arm64
CI: add support for Conda osx_arm64 builds
2024-02-25 21:11:46 +01:00
Even Rouault d3296b7f9b CI: add support for Conda osx_arm64 builds
Now that
https://github.com/conda-incubator/setup-miniconda/releases/tag/v3.0.2
has been released with support for them.
2024-02-25 21:09:57 +01:00
Even Rouault 170ea48ea5 Merge pull request #4063 from jjimenezshaw/pt-geoid
Add pt_dgt_GeodPT08.tif grid_alternative for Portuguese geoid model GeodPT08.dat
2024-02-25 12:02:15 +01:00
Javier Jimenez Shaw 44f0e89c67 Add pt_dgt_GeodPT08.tif to grid_alternatives.sql 2024-02-25 11:48:15 +01:00
Even Rouault 6ff93cbc8d Merge pull request #4062 from rouault/epsg_11_004
Database: update to EPSG v11.004
2024-02-25 11:11:16 +01:00
Even Rouault 86e023e36c codeql.yml: add 'sudo apt-get update' 2024-02-25 11:10:15 +01:00
Even Rouault 564d2b2fe0 Database: update to EPSG v11.004 2024-02-24 19:36:32 +01:00
Mike Taves b57acc864a Add more compiler warning flags (#4061)
* Add more compiler warning flags for GNU and Clang

* Resolve -Wdocumentation -Wno-documentation-deprecated-sync

* Resolve -Wzero-as-null-pointer-constant
2024-02-21 20:37:16 +01:00
Even Rouault 498d409835 Merge pull request #4059 from rouault/weffc++
Enable -Weffc++ for gcc and clang
2024-02-20 12:53:26 +01:00
Even Rouault 375a7c5e34 Enable -Weffc++ for gcc and clang 2024-02-20 11:58:15 +01:00
Even Rouault 81fecbc243 Another -Weffc++ warning fix 2024-02-20 11:50:23 +01:00
Even Rouault 26fb427e8d Fix -Weffc++ warnings 2024-02-20 11:35:59 +01:00
Even Rouault a3e5715132 Merge pull request #4058 from OSGeo/backport-4048-to-master
[Backport master] Update omerc.rst to show directly and indirectly given azimuth connection
2024-02-19 16:37:34 +01:00
Even Rouault 3638065ebe Merge pull request #4057 from OSGeo/backport-4049-to-master
[Backport master] Update omerc.rst to express two points connection
2024-02-19 16:37:29 +01:00
Even Rouault 99071b1946 Merge pull request #4044 from rouault/customizations_czechia
Tune concatenated operation instanciation, reference CR2005 geoid for Czechia and add (disabled by default) records for Czechia S-JTSK/05 based transformations
2024-02-19 16:20:10 +01:00
Even Rouault 94209fc1e5 Database: add transformations_czechia_extra.sql for transformations based on S-JTSK/05
For now this file is not integrated in the default build, due to
licensing of grid cz_cuzk_table_yx_3_v1710_east_north.tif being not clarified (work in progress with CUZK).
Thoat grid can be generated with the script https://github.com/OSGeo/PROJ-data/blob/master/cz_cuzk/convert_table_yx_3_v1710.py
2024-02-19 15:47:44 +01:00
Even Rouault 529114740e Database: add transformations_czechia.sql with CR2005 geoid for ETRS89 to Baltic 1957 height 2024-02-19 15:47:43 +01:00
Even Rouault b01d96698a customizations.sql: improve condition to create Geog3D->VertCRS transformation from Geog3D->Geog2D+VertCRS 2024-02-19 15:47:43 +01:00
Even Rouault 4ad46c60bf ConcatenatedOperation::fixStepsDirection(): invert first and last steps when needed 2024-02-19 14:50:25 +01:00
積丹尼 Dan Jacobson 097af607c7 Update omerc.rst to show directly and indirectly given azimuth connection
We must finally show the user the connection between the two input forms.
2024-02-19 13:26:26 +00:00
積丹尼 Dan Jacobson 4a83a67816 Update omerc.rst to express two points connection
We make sure the user understands how the two point and one point models interact.
2024-02-19 13:26:01 +00:00
積丹尼 Dan Jacobson e69395a761 Update omerc.rst to add vital caveat about the two-point method
It is imperative that users be informed about the vast difference of the two point method, undocumented till today!

See also
https://gis.stackexchange.com/questions/323570/proj-oblique-mercator-specifying-two-points-on-central-line/337169#337169
2024-02-19 09:44:30 +01:00
Kristian Evers 356496f7b6 Merge pull request #4055 from OSGeo/backport-4054-to-master
[Backport master] Update migration.rst
2024-02-17 09:46:31 +01:00
Carl Godkin f258dea390 Update migration.rst
Typo in "reimplemented in PROJ 6" example used "clrs66" in one case instead of "clrk66" so example didn't actually work.

I'd recommend #include <cmath> for the top too to pick up HUGE_VAL, but that isn't vital.

Thanks!
2024-02-17 08:19:09 +00:00
Mike Taves 6e0c182537 Freeze hard-coded prime meridians and note they are no longer updated (#4042)
* Legacy hard-coded prime meridians are no longer updated
* Expand docs for angular units, add another prime meridian example
2024-02-16 09:18:43 +13:00
Even Rouault 7e50b16b02 Merge pull request #4047 from jjimenezshaw/proj-ns-macro
Use NS_PROJ macro instead of osgeo::proj
2024-02-10 12:45:54 +01:00
Javier Jimenez Shaw ad81dd9c55 Use NS_PROJ macro instead of osgeo::proj Closes #4046 2024-02-10 11:18:44 +01:00
Even Rouault 364708dbb0 Merge pull request #4038 from rouault/gridshift_projected
+proj=gridshift: enhance to support grids referenced in projected CRS, and with easting_offset/northing_offset corrections
2024-02-09 13:53:38 +01:00
Even Rouault e36f581012 geodetictiffgrids.rst spec: enhance to support grids referenced in projected CRS, and with easting_offset/northing_offset corrections 2024-02-06 15:34:34 +01:00
Even Rouault b74adbdafa +proj=gridshift: enhance to support grids referenced in projected CRS, and with easting_offset/northing_offset corrections 2024-02-06 15:34:34 +01:00
Even Rouault af8a4edc4e Merge pull request #4034 from rouault/projstringformatter_krovak
PROJString formatter optimizer: simplify pipelines doing [Modified]Krovak (South West) <--> [Modified]Krovak (East North)…
2024-02-06 00:43:45 +01:00
Even Rouault d24bd04309 PROJString formatter optimizer: simplify pipelines doing [Modified]Krovak (South West) <--> [Modified]Krovak (East North) by just doing an axis swap 2024-02-03 16:45:32 +01:00
Even Rouault a3b225fc9e Fix typo in comment 2024-02-03 13:08:32 +01:00
Even Rouault 704767f84f Merge pull request #4021 from rouault/mod_krovak
Add +proj=mod_krovak projection method for Modified Krovak that applies to S-JTSK/05 in the Czech Republic
2024-02-03 00:20:11 +01:00
Kristian Evers 1391fce4e5 Fix example 3 in cct.rst
Closes #4017
2024-02-02 12:15:12 +01:00
Even Rouault 828a4722ca Add +proj=mod_krovak projection method for Modified Krovak that applies to S-JTSK/05 in the Czech Republic
Validated with the test point given in EPSG Guidance Note 7-2

Also validated with CUZK online calculator at https://geoportal.cuzk.cz/(S(g4ipaut0ckzb5lellu153lvf))/Default.aspx?head_tab=sekce-01-gp&mode=TextMeta&text=wcts&menu=19

Unfortunately this calculator does not offer 'elementary'
transformations, and cannot just validate Modified Krovak alone.
The best we can do is to use ETRS89 <--> S-JTSK/05 / Krovak modified,
which involves a Helmert transformation as well for the datum
transformation.

* Validation of reverse modified Krovak:

  Online calculator:
  - Souřadnice/input: -5568990.91 -6050538.71 100
  - Source CRS: S-JTSK/05 + Bpv (-Y-XH /east-north)
  - Destination CRS: ETRS89 (BLh / DEG)
  - Výsledek/result: 50.208297081 16.848326835 143.762

  With PROJ:
  echo -5568990.91 -6050538.71 100 | bin/cs2cs -d 9 EPSG:5516 EPSG:4937 --3d
  50.208297081 16.848326833 143.143233569

  Note the different on longitude is totally neglectable: 0.1 mm, as computed by:

  $ echo 50.208297081 16.848326835 50.208297081 16.848326833 | bin/geod -F "%.4f" -I +ellps=GRS80
  -90d 90d 0.0001

  and that when outputing Krovak modified, the online calculator displays Y/X with
  a precision of 1 cm.

  The difference on Z is significant, but can be explained from the fact that
  the online calculator using Baltic Height for S-JTSK/05 and thus apply a
  Baltic Height<-->ETRS89 geoid that we don't apply here.

* Validation of forward Krovak using same point:

  Online calculator:
  - Souřadnice/input: 50.208297081 16.848326835 143.762
  - Source: ETRS89 (BLh / DEG)
  - Destination: S-JTSK/05 + Bpv (-Y-XH /east-north)
  - Výsledek/result: -5568990.91 -6050538.71 100

  With PROJ:
  $ echo 50.208297081 16.848326835 143.762 | bin/cs2cs -d 2 EPSG:4937 EPSG:5516 --3d
  -5568990.91 -6050538.71 100.62
2024-02-01 23:21:23 +01:00
Even Rouault 50e8dd72bc Merge pull request #4028 from OSGeo/dependabot/github_actions/conda-incubator/setup-miniconda-3
build(deps): bump conda-incubator/setup-miniconda from 2 to 3
2024-02-01 02:10:48 +01:00
Even Rouault b5399f5d65 Merge pull request #4027 from OSGeo/dependabot/github_actions/docker/setup-buildx-action-3
build(deps): bump docker/setup-buildx-action from 2 to 3
2024-02-01 02:10:34 +01:00
Even Rouault b92ffadc18 Merge pull request #4026 from OSGeo/dependabot/github_actions/docker/login-action-3
build(deps): bump docker/login-action from 2 to 3
2024-02-01 02:10:21 +01:00
Even Rouault e47fea99d4 Merge pull request #4025 from OSGeo/dependabot/github_actions/docker/build-push-action-5
build(deps): bump docker/build-push-action from 4 to 5
2024-02-01 02:10:13 +01:00
Even Rouault e0894effd4 Merge pull request #4024 from OSGeo/dependabot/github_actions/actions/stale-9
build(deps): bump actions/stale from 8 to 9
2024-02-01 02:10:01 +01:00
dependabot[bot] cb66c3702c build(deps): bump conda-incubator/setup-miniconda from 2 to 3
Bumps [conda-incubator/setup-miniconda](https://github.com/conda-incubator/setup-miniconda) from 2 to 3.
- [Release notes](https://github.com/conda-incubator/setup-miniconda/releases)
- [Changelog](https://github.com/conda-incubator/setup-miniconda/blob/main/CHANGELOG.md)
- [Commits](https://github.com/conda-incubator/setup-miniconda/compare/v2...v3)

---
updated-dependencies:
- dependency-name: conda-incubator/setup-miniconda
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-31 23:45:56 +00:00
dependabot[bot] 80a4925be4 build(deps): bump docker/setup-buildx-action from 2 to 3
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-31 23:45:52 +00:00
dependabot[bot] 997ef2fce1 build(deps): bump docker/login-action from 2 to 3
Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-31 23:45:49 +00:00
dependabot[bot] a9731217ac build(deps): bump docker/build-push-action from 4 to 5
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4 to 5.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-31 23:45:45 +00:00
dependabot[bot] ba2f2a2598 build(deps): bump actions/stale from 8 to 9
Bumps [actions/stale](https://github.com/actions/stale) from 8 to 9.
- [Release notes](https://github.com/actions/stale/releases)
- [Changelog](https://github.com/actions/stale/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/stale/compare/v8...v9)

---
updated-dependencies:
- dependency-name: actions/stale
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-01-31 23:45:40 +00:00
Even Rouault 905c9a6c2d Merge pull request #4023 from mwtoews/update-actions
CI: upgrade versions for various actions/*
2024-02-01 00:45:09 +01:00
Even Rouault c9cbcf97cb Merge pull request #4022 from rouault/ci_permissions
CI: add missing permissions section to .yml files
2024-01-31 23:24:33 +01:00
Mike Taves 3eeb0a22e2 Add dependabot for future github-actions updates 2024-02-01 11:00:27 +13:00
Mike Taves f4d4bc7edf CI: upgrade versions for various actions/* 2024-02-01 10:32:31 +13:00
Even Rouault be7d344571 CI: add missing permissions section to .yml files
OpenSSF Scorecard report complains about the lack of it:
https://securityscorecards.dev/viewer/?uri=github.com/OSGeo/PROJ ('Token-Permissions')
2024-01-31 21:18:54 +01:00
Even Rouault 3cc757fb8a Merge pull request #4020 from rouault/ci_mac_arm64
CI: add a M1 ARM64 MacOS runner
2024-01-31 10:40:45 +01:00
Even Rouault 107c80adaf Merge pull request #4019 from rouault/move_experimental_to_stable
Move content of proj_experimental.h to proj.h
2024-01-31 10:40:35 +01:00
Mike Taves b6ccd389f2 Ensure directory exists for PROJ_DB_CACHE_DIR 2024-01-31 13:40:55 +13:00
Even RouaultandHoward Butler 81b1368981 CI: add a M1 ARM64 MacOS runner
Co-authored-by: Howard Butler <hobu.inc@gmail.com>
2024-01-30 22:55:29 +01:00
Even Rouault a54fe6cdf6 test/gie/builtins.gie: relax a bit tolerance on +proj=vandg test for Mac M1 ARM64 2024-01-30 22:55:23 +01:00
Even Rouault 22d15f60a8 proj_create_conversion_tunisia_mining_grid(): fix mixed-up deprecation / since tags 2024-01-30 22:41:35 +01:00
Even Rouault 4bc8a5a049 Doc: reference C API that used to be proj_experimental.h 2024-01-30 03:09:58 +01:00
Even Rouault c3032fb3b3 Move content of proj_experimental.h to proj.h
Those functions have been used for ages by GDAL 3.X. They are not so much
"experimental" nowadays.

No backward compatibility issue as proj_experimental.h includes proj.h
2024-01-29 21:02:48 +01:00
Even Rouault fee3ebbd24 Merge pull request #4018 from rouault/database_esri
Database (ESRI): use the deprecation table instead of the supersession table for deprecated ESRI CRS (as done with EPSG objects)
2024-01-29 20:15:32 +01:00
Even Rouault e31195ffaf Merge pull request #4014 from rouault/pipeline_error_msg
Pipeline instanciation: better error message when an inverse operation is needed in forward path and not available
2024-01-29 18:50:23 +01:00
Even Rouault 9866bef281 Database (ESRI): do not add an entry in deprecated table for a deprecated CRS that would be obsoleted by a deprecated EPSG CRS 2024-01-29 18:34:47 +01:00
Even Rouault 48ca579724 Database (ESRI): use the deprecation table instead of the supersession table for deprecated ESRI CRS (as done with EPSG objects) 2024-01-29 18:34:38 +01:00
積丹尼 Dan Jacobson 03a4ee47bf pipeline.rst: add example for +inv 2024-01-28 16:17:36 +01:00
積丹尼 Dan Jacobson ac439d5e02 proj: add a hint in error message about using cct when relevant (#4016)
Fixes #4013.
2024-01-28 15:47:49 +01:00
Even Rouault c9c133d847 Merge pull request #4011 from OSGeo/backport-4010-to-master
[Backport master] projections.rst: specify that +a and +b are always in metres
2024-01-27 16:04:51 +01:00
Even Rouault 8aa3f4bdf0 Pipeline instanciation: better error message when an inverse operation is needed in forward path and not available
and fix a copy-paste error where fwd4d was tested instead of inv4d

Before:
```
$ echo 0 0 | bin/cs2cs +proj=isea +to +proj=longlat
pipeline: Pipeline: A forward operation couldn't be constructed
```

Now:
```
$ echo 0 0 | bin/cs2cs +proj=isea +to +proj=longlat
pipeline: Pipeline: Inverse operation for isea is not available
```

Slightly related to https://github.com/OSGeo/gdal/issues/9149
2024-01-27 15:58:41 +01:00
Even Rouault 47f84dc78a proj_get_area_of_use_ex(): remove non relevant sentence from documentation 2024-01-25 20:05:43 +01:00
Even Rouault 5c7bf5332e projections.rst: specify that +a and +b are always in metres 2024-01-24 22:22:18 +00:00
Even Rouault 5920e29983 Merge pull request #4009 from rouault/fix_4008
tpeqd: use numerically stable formula for computing the central angle from (phi_1, lam_1) to (phi_2, lam_2) (fixes #4008)
2024-01-22 19:29:28 +01:00
Even Rouault 7cc20dd627 tpeqd: use numerically stable formula for computing the central angle from (phi_1, lam_1) to (phi_2, lam_2) (fixes #4008) 2024-01-19 19:29:08 +01:00
Even Rouault f377ffa7d6 Merge pull request #4007 from mwtoews/cmake-sqlite3-built-in
CMake: Replace custom FindSqlite3 with FindSQLite3 built-in
2024-01-18 14:20:48 +01:00
Mike Taves 8e3dd24cac CMake: Replace custom FindSqlite3 with FindSQLite3 built-in 2024-01-18 12:02:32 +13:00
Even Rouault ac0b9fc001 Merge pull request #4006 from mwtoews/cmake-fetchcontent-googletest
CMake: use FetchContent to get googletest-1.12.1
2024-01-17 19:38:51 +01:00
Mike Taves 7160e0a052 CMake: use FetchContent to get googletest-1.12.1 2024-01-17 22:50:32 +13:00
Even Rouault 078eaa4db2 scripts/cppcheck.sh: tune for latest cppcheck 2024-01-17 00:47:49 +01:00
Even Rouault d55ee2aea0 Remove unused private members 2024-01-17 00:47:39 +01:00
Even Rouault a18091862a Add 'explicit' keyword for constructor 2024-01-17 00:47:08 +01:00
Even Rouault e8af2479a4 SingleOperation::exportToPROJStringGeneric(): fix wrong test/copy-error (master only) 2024-01-17 00:37:11 +01:00
Even Rouault dc8485e1f8 Merge pull request #4003 from rouault/epsg_11_003
Database: update to EPSG v11.003
2024-01-16 09:00:16 +01:00
Even Rouault 343b4fe9e7 Merge pull request #4005 from dg0yt/patch-1
Use find_dependency(SQLite3)
2024-01-16 09:00:06 +01:00
Kai Pastor efc6c95b69 Use find_dependency(SQLite3)
Amends #3987.
2024-01-16 06:11:28 +01:00
Even Rouault ce816acdb4 Database: update to EPSG v11.003 2024-01-15 21:14:52 +01:00
Even Rouault 86c4e753e5 Merge pull request #4002 from rouault/coverity
Fix Coverity performance inefficiencies warnings
2024-01-15 19:32:50 +01:00
Erixen Cruz 8cfeba743e CMake: link to explicit SQLite3 target (#3987) 2024-01-15 19:32:35 +01:00
Even Rouault 0bf4edea44 Fix Coverity performance inefficiencies warnings 2024-01-14 19:36:16 +01:00
Even Rouault 1a4e78e6aa proj_create_crs_to_crs_from_pj(): simplify code 2024-01-14 19:25:48 +01:00
Mike Taves 95db9aa0ec Increase CMake minimum version from 3.9 to 3.16 (#3997) 2024-01-14 13:11:35 +01:00
Even Rouault a50673d196 Merge pull request #3998 from rouault/codeql
Add CodeQL static analyzer, and fix related warnings
2024-01-11 12:12:42 +01:00
Kristian Evers 35ea077f51 Merge pull request #3999 from jidanni/patch-2
Update eqc.rst
2024-01-11 07:18:56 +01:00
積丹尼 Dan Jacobson 60a1a2366d Update eqc.rst
Grammar.
2024-01-11 10:58:48 +08:00
Even Rouault 812f2339e0 emess(): avoid potential unsafe uses 2024-01-10 12:51:29 +01:00
Even Rouault aae23e4119 DatabaseContext::Private::attachExtraDatabases(): fix false-positive CodeQL cpp/sql-injection 2024-01-10 12:51:29 +01:00
Even Rouault ffc9f62c30 io.cpp: avoid CodeQL cpp/integer-multiplication-cast-to-long false positives 2024-01-10 12:51:28 +01:00
Even Rouault 91471929c4 Avoid CodeQL cpp/tainted-format-string warnings 2024-01-10 12:51:28 +01:00
Even Rouault 82ff0fe045 geod: fix potential use of invalid formatting string being passed to fprintf() on an invalid input file 2024-01-10 12:51:28 +01:00
Even Rouault e3887e020d cs2cs: fix potential use of invalid formatting string being passed to fprintf() on an invalid input file 2024-01-10 12:51:28 +01:00
Even Rouault dfdb4f486e Add .github/workflows/codeql.yml 2024-01-10 12:51:28 +01:00
Even Rouault 53b8bd4bae test/fuzzers/build.sh: actually build curl without libpsl 2024-01-10 12:51:18 +01:00
Even Rouault d9ca25cd75 test/fuzzers/build.sh: add missing -lunistring -lidn2 2024-01-10 12:39:21 +01:00
Even Rouault 5f2288eb1e test/fuzzers/build.sh: add missing -lpsl 2024-01-10 12:33:20 +01:00
Even Rouault e69770bf68 test/fuzzers/build.sh: fix curl build 2024-01-10 12:29:07 +01:00
Javier Jimenez Shaw 5587e5747f Merge pull request #3993 from jjimenezshaw/lost-resouce-links
[doc]: remove unneeded or broken links in resource_files.rst
2024-01-09 17:41:29 +01:00
Javier Jimenez Shaw 41ee7cf6dc [doc]: remove unneeded or broken links in resource_files.rst 2024-01-09 15:49:50 +01:00
Even Rouault ee1b7621f0 Merge pull request #3991 from OSGeo/rouault-patch-3
projjson.rst: point to spatialreference.org
2024-01-09 14:37:42 +01:00
Even Rouault 92628b3436 Merge pull request #3990 from rouault/createOperationsCompoundToGeog_tune
createOperationsCompoundToGeog(): tune selection logic when --grid-check known_available is specified
2024-01-09 14:37:22 +01:00
Even Rouault 8b1a5bde1c projjson.rst: point to spatialreference.org 2024-01-09 01:29:32 +01:00
Even Rouault 9697f59a0e createOperationsCompoundToGeog(): tune selection logic when --grid-check known_available is specified 2024-01-08 17:34:41 +01:00
Even Rouault fac122d8fd Merge pull request #3988 from rouault/epsg_11_002
update to EPSG 11.002,  add a anchor_epoch column to geodetic_datum and vertical_datum tables
2024-01-08 13:41:55 +01:00
Even Rouault 2428e7d4ec Merge pull request #3989 from rouault/coverity_perf_warnings
Fix most Coverity Scan performance warnings
2024-01-08 12:57:48 +01:00
Even Rouault 172d785c29 verticalOffsetByVelocity transformation: use vertical datum anchor epoch 2024-01-08 12:56:11 +01:00
Even Rouault ad4d5ea85a Add a anchor_epoch column to geodetic_datum and vertical_datum tables 2024-01-08 12:56:11 +01:00
Even Rouault 7232d5e5e5 Fix most Coverity Scan performance warnings 2024-01-07 20:52:09 +01:00
Even Rouault 438e30bfa5 Database: update to EPSG 11.002 2024-01-07 15:33:24 +01:00
Even Rouault ba8b2a7fd9 Map ESRI Azimuthal_Equidistant to EPSG:1125 2024-01-07 15:33:24 +01:00
Even Rouault 7ce0c84f65 Conversion::createAzimuthalEquidistant(): map it to EPSG_CODE_METHOD_AZIMUTHAL_EQUIDISTANT 2024-01-07 15:33:23 +01:00
Even Rouault 40bf8dc75e Add EPSG:1125 Azimuthal Equidistant projection 2024-01-07 15:33:23 +01:00
Kristian Evers ef276d39d9 Merge pull request #3986 from kbevers/update-dvr90
Add new DVR90 grids to grid alternatives
2024-01-04 23:57:04 +01:00
Kristian Evers 5498e6838e Update grid_alternatives with new DVR90 grids 2024-01-04 21:29:39 +01:00
Even Rouault c801307298 Merge pull request #3985 from rouault/biquadratic_inverse
+proj=gridshift: do not apply iteration in the reverse path with +interpolation=biquadratic
2024-01-04 21:11:23 +01:00
Kristian Evers eaebbe289a Remove non-EPSG DVR90 transformation from DB
This grid transformation is now available from the EPSG-database and can
now be removed.
2024-01-04 20:19:19 +01:00
Even Rouault c7d41bb876 +proj=gridshift: do not apply iteration in the reverse path with +interpolation=biquadratic
As NOAA NCAT transformation tool does.
Otherwise we may get convergence errors on points that are close to the boundary of
cells or half-cells.
2024-01-03 14:18:14 +01:00
Even Rouault 5ebe855f43 proj.h: add PROJ_ERR_COORD_TRANSFM_NO_CONVERGENCE error code 2024-01-03 14:14:45 +01:00
Even Rouault b302a91ace Merge pull request #3984 from rouault/doxygen_1_10
Doxyfile: avoid warning with Doxygen 1.10
2023-12-31 12:15:26 +01:00
Even Rouault 044f499f70 Doxyfile: avoid warning with Doxygen 1.10 2023-12-30 20:42:27 +01:00
Even Rouault f743ac7f4f Merge pull request #3982 from OSGeo/backport-3981-to-master
[Backport master] Fix `projsync --system-directory` command in install guide
2023-12-21 13:49:25 +01:00
DeflateAwning fe4c2ed7d0 Fix projsync --system-directory command in install guide
Also added a comma
2023-12-20 21:17:55 +00:00
Even Rouault 657c69c693 Merge pull request #3979 from rouault/ccache_warning
cmake/Ccache.cmake: raise cmake_minimum_required() as newer CMake versions warn that support for CMake < 3.5 is going to be dropped at some later point
2023-12-09 00:15:45 +01:00
Even Rouault 389226065b cmake/Ccache.cmake: raise cmake_minimum_required() as newer CMake versions warn that support for CMake < 3.5 is going to be dropped at some later point 2023-12-08 19:19:44 +01:00
Even Rouault f6f763f1fb Merge pull request #3978 from rouault/database_no_kv_CD_above_Ell_ETRS89_v2023b
Database: add entry in grid_alternatives for ChartDatum_above_Ellipsod_EUREF89_v2023b.bin / no_kv_CD_above_Ell_ETRS89_v2023b.tif
2023-12-08 08:54:28 +01:00
Even Rouault f33434ba6c Merge pull request #3974 from gitartpiano/master
if(WIN32) add shell32 and ole32 libraries in lib_proj.cmake
2023-12-08 08:49:32 +01:00
Even Rouault f5303791bb Database: add entry in grid_alternatives for ChartDatum_above_Ellipsoid_EUREF89_v2023b.bin / no_kv_CD_above_Ell_ETRS89_v2023b.tif
The transformation had been added in EPSG 11.001

```
$ echo 61.101 4.484  | PROJ_DATA=data:/home/even/proj/PROJ-data/no_kv PROJ_DEBUG=2 bin/cs2cs EPSG:4258+9672 EPSG:4937
pj_open_lib(proj.ini): call fopen(data/proj.ini) - succeeded
pj_open_lib(proj.db): call fopen(data/proj.db) - succeeded
pj_open_lib(ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin): call fopen(/home/even/proj/PROJ-data/no_kv/ChartDatum_above_Ellipsoid_EUREF89_v2021b.bin) - failed
pj_open_lib(no_kv_CD_above_Ell_ETRS89_v2023b.tif): call fopen(/home/even/proj/PROJ-data/no_kv/no_kv_CD_above_Ell_ETRS89_v2023b.tif) - succeeded
pj_open_lib(no_kv_CD_above_Ell_ETRS89_v2021a.tif): call fopen(/home/even/proj/PROJ-data/no_kv/no_kv_CD_above_Ell_ETRS89_v2021a.tif) - succeeded
pj_open_lib(no_kv_CD_above_Ell_ETRS89_v2023b.tif): call fopen(/home/even/proj/PROJ-data/no_kv/no_kv_CD_above_Ell_ETRS89_v2023b.tif) - succeeded
pj_open_lib(no_kv_CD_above_Ell_ETRS89_v2021a.tif): call fopen(/home/even/proj/PROJ-data/no_kv/no_kv_CD_above_Ell_ETRS89_v2021a.tif) - succeeded
Using coordinate operation Inverse of ETRS89 to CD Norway depth (4)
pj_open_lib(no_kv_CD_above_Ell_ETRS89_v2023b.tif): call fopen(/home/even/proj/PROJ-data/no_kv/no_kv_CD_above_Ell_ETRS89_v2023b.tif) - succeeded
61d6'3.6"N	4d29'2.4"E 44.496
```
2023-12-08 00:29:03 +01:00
Jochem-L decf6afd80 Update horner.rst (#3964)
Update horner.rst with improved description of polynomium coefficient order
2023-12-05 09:57:25 +01:00
Kristian Evers 68487a394c Merge pull request #3975 from OSGeo/busstoptaktik-patch-1
Improve error message in axisswap
2023-12-04 20:05:12 +01:00
Thomas Knudsen 6cd2331874 Improve error message in axisswap
The test for parameters in axisswap actually is a bit convoluted, but
in essence it checks both whether ANY of the 'axis' and 'order'
parameters are given, and whether BOTH are given.

Hence, the error message

"order and axis parameters are mutually exclusive"

is misleading in the case where none of the two is given.
The updated message:

"must provide EITHER 'order' OR 'axis' parameter"

is intended to cover both cases in an informative way
2023-12-04 17:16:30 +01:00
gitartpiano 2ee202f045 if(WIN32) add shell32 and ole32 libraries in lib_proj.cmake
to fix missing symbols at link time for windows target as described in https://github.com/OSGeo/PROJ/issues/2983
2023-12-04 08:24:23 -06:00
Even Rouault 167e99d2b9 Merge pull request #3973 from rouault/epsg_11_001
Database: update to EPSG 11.001, and update PROJ_DATA.VERSION to 1.17
2023-12-02 00:11:07 +01:00
Kristian Evers 0f2922e1bb Update documentation for 9.3.1 release 2023-12-01 20:22:25 +01:00
Even Rouault ffce4a6b08 Database: reference RAC23.mnt --> fr_ign_RAC23.tif, and update PROJ_DATA.VERSION to 1.17 2023-11-30 20:19:34 +01:00
Even Rouault 2b33272531 Database: update to EPSG 11.001 2023-11-30 19:49:55 +01:00
Even Rouault 8b22f81820 Merge pull request #3962 from rouault/cmake_UNITY_BUILD
Make build compatible of -DCMAKE_UNITY_BUILD=ON for faster builds
2023-11-29 19:03:51 +01:00
Even Rouault ce39a398b4 Merge pull request #3972 from jjimenezshaw/no-copy-axisdirection
Remove copy and move constructors from AxisDirection
2023-11-29 18:32:31 +01:00
Javier Jimenez Shaw ac372038f5 remove copy and move constructors from AxisDirection 2023-11-29 16:59:50 +01:00
Even Rouault 7786334ada Merge pull request #3971 from OSGeo/busstoptaktik-patch-1
Repair logging messages in axisswap
2023-11-27 16:45:43 +01:00
Even Rouault 1de33f552f Merge pull request #3969 from rouault/ci_docker_set_output
docker.yml: replace depecated 'echo ::set-output name=KEY::VALUE' with echo 'name=value' >> $GITHUB_OUTPUT
2023-11-27 16:45:32 +01:00
Thomas Knudsen 4704ef816d Repair logging messages in axisswap
With this commit, `axisswap` no longer presents itself as `swapaxis` in the logging messages.
2023-11-27 14:08:55 +01:00
Kristian Evers 89d06fa487 Update NEWS for 9.3.1 2023-11-26 17:49:26 +01:00
Kristian Evers d24521611e Update NEWS for 9.3.1 2023-11-26 16:55:53 +01:00
Even Rouault 6ab266821e Merge pull request #3970 from fedeliallalinea/install-geotiff
Database: added ability to install *.tif if present in data
2023-11-26 16:41:07 +01:00
Kristian Evers bd00bf31b5 Update man-pages from Sphinx-docs 2023-11-26 16:22:00 +01:00
Kristian Evers b3dcb78bef Update man-pages from Sphinx-docs 2023-11-26 16:12:34 +01:00
Kristian Evers 64a7e2ec1a Update version numbers for 9.3.1 release 2023-11-26 16:10:51 +01:00
Marco Genasci afccfb609d Database: added ability to install *.tif if present in data 2023-11-26 08:40:45 +01:00
Even Rouault 2e948326e2 docker.yml: replace depecated 'echo ::set-output name=KEY::VALUE' with echo 'name=value' >> $GITHUB_OUTPUT 2023-11-25 20:25:35 +01:00
Even Rouault 24922a0146 Merge pull request #3968 from OSGeo/backport-3966-to-9.3
[Backport 9.3] DatabaDatabase: update to EPSG 10.098
2023-11-24 15:59:28 +01:00
Even Rouault 21eaf1e305 Merge pull request #3967 from OSGeo/backport-3965-to-9.3
[Backport 9.3] Database: ESRI: fix wrong definition of Geographic 3D CRS that were imported as 2D
2023-11-24 15:10:50 +01:00
Even Rouault 553c96329f DatabaDatabase: update to EPSG 10.098 2023-11-24 12:57:27 +00:00
Even Rouault 495a84cb21 Database: ESRI: fix wrong definition of Geographic 3D CRS that were imported as 2D 2023-11-24 12:57:02 +00:00
Kristian Evers 6fe5e9605b Merge pull request #3966 from rouault/epsg_10_098
DatabaDatabase: update to EPSG 10.098
2023-11-24 13:57:01 +01:00
Kristian Evers 994da9f3f8 Merge pull request #3965 from rouault/fix_esri_geographic3D
Database: ESRI: fix wrong definition of Geographic 3D CRS that were imported as 2D
2023-11-24 13:56:40 +01:00
Even Rouault e964ecf6fa DatabaDatabase: update to EPSG 10.098 2023-11-24 12:48:50 +01:00
Even Rouault 6903a61f85 Database: ESRI: fix wrong definition of Geographic 3D CRS that were imported as 2D 2023-11-24 12:37:39 +01:00
Even Rouault 3edd0f26d0 install.rst: document CMAKE_UNITY_BUILD 2023-11-23 16:10:50 +01:00
Even Rouault d7caaab477 Remove now useless '#define PJ_LIB_' 2023-11-23 14:40:46 +01:00
Even Rouault 92762140d7 Merge pull request #3961 from OSGeo/backport-3960-to-9.3
[Backport 9.3] horner: allow arbitrary input type of coordinate
2023-11-23 04:58:20 +01:00
Even Rouault 850c6abf7e windows.yml: test -DCMAKE_UNITY_BUILD=ON 2023-11-23 03:18:15 +01:00
Even Rouault 8e98497b15 travis/install.sh: test -DCMAKE_UNITY_BUILD=ON 2023-11-23 03:18:15 +01:00
Even Rouault 35ddd24dc6 Various fixes to make cmake -DCMAKE_UNITY_BUILD=ON work 2023-11-23 03:18:14 +01:00
Even Rouault 8a997a76e9 lru_cache.hpp: avoid conflict with osgeo::proj::operation::k 2023-11-23 03:04:29 +01:00
Even Rouault 3c83daa6f0 tests: tune/disable CMAKE_UNITY_BUILD 2023-11-23 02:36:43 +01:00
Even Rouault e5fcda6ede apps/CMakeLists.txt: disable CMAKE_UNITY_BUILD 2023-11-23 02:36:21 +01:00
Even Rouault af74bc1954 horner: allow arbitrary input type of coordinate
Avoids workaround of https://lists.osgeo.org/pipermail/proj/2023-November/011167.html
to be able to deal with geographic coordinates
2023-11-22 13:18:32 +00:00
Even Rouault 25f93fc8ec Merge pull request #3960 from rouault/horner_whatever
horner: allow arbitrary input type of coordinate
2023-11-22 14:04:19 +01:00
Even Rouault b65b88a77a horner: allow arbitrary input type of coordinate
Avoids workaround of https://lists.osgeo.org/pipermail/proj/2023-November/011167.html
to be able to deal with geographic coordinates
2023-11-21 21:21:32 +01:00
Even Rouault 9ac24b04a6 Merge pull request #3958 from OSGeo/backport-3957-to-9.3
[Backport 9.3] Make sure test of 1f9b636b0a is actually run
2023-11-19 23:24:30 +01:00
Even Rouault 548823527b Make sure test of 1f9b636b0a is actually run 2023-11-19 20:36:47 +00:00
Even Rouault f759fe597a Merge pull request #3957 from rouault/testvarious_fix
Make sure test of 1f9b636b0a is actually run
2023-11-19 21:34:27 +01:00
Even Rouault 36bb10c0d4 Merge pull request #3956 from OSGeo/backport-3955-to-9.3
[Backport 9.3] Move static NameSpace::GLOBAL definition in static.cpp to avoid 'static initialization fiasco' (fixes various Coverity warnings)
2023-11-19 21:06:28 +01:00
Even Rouault 4935b6f87e Make sure test of 1f9b636b0a is actually run 2023-11-19 20:19:51 +01:00
Even Rouault 72de8f757c Fix importing '+proj=topocentric ... +type=crs' by using a geocentric CRS as the base CRS
Fixes https://lists.osgeo.org/pipermail/proj/2023-October/011153.html
2023-11-19 20:18:03 +01:00
Even Rouault 5106abdd64 Move static NameSpace::GLOBAL definition in static.cpp to avoid 'static initialization fiasco' (fixes various Coverity warnings) 2023-11-19 19:10:33 +00:00
Even Rouault 72f9084602 Merge pull request #3955 from rouault/coverity_GLOBAL_INIT_ORDER
Move static NameSpace::GLOBAL definition in static.cpp to avoid 'static initialization fiasco' (fixes various Coverity warnings)
2023-11-19 20:10:07 +01:00
Even Rouault d1314c06d8 Move static NameSpace::GLOBAL definition in static.cpp to avoid 'static initialization fiasco' (fixes various Coverity warnings) 2023-11-19 19:47:03 +01:00
Even Rouault c0a118f46d Merge pull request #3954 from rouault/backport_pr_3952
[Backport 9.3] pj_get_suggested_operation(): tune it to give correct result for RGAF09 to RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height transformation
2023-11-17 13:05:10 +01:00
Even Rouault 93a42eb2d9 pj_get_suggested_operation(): tune it to give correct result for RGAF09 to RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height transformation 2023-11-17 11:13:21 +01:00
Even Rouault b124309904 Merge pull request #3952 from rouault/guadeloupe_transformation
pj_get_suggested_operation(): tune it to give correct result for RGAF09 to RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height transformation
2023-11-17 10:41:18 +01:00
Even Rouault 1f9b636b0a pj_get_suggested_operation(): tune it to give correct result for RGAF09 to RRAF 1991 / UTM zone 20N + Guadeloupe 1988 height transformation 2023-11-17 00:05:04 +01:00
Even Rouault d33156974b Merge pull request #3950 from OSGeo/backport-3949-to-9.3
[Backport 9.3] proj_factor: fix when input is a compound CRS of a projected CRS, and…
2023-11-14 19:37:13 +01:00
Even Rouault dc01f9c4ff proj: projection factors: fix when input is a compound CRS of a projected CRS, and a projected CRS whose datum has a non-Greenwich prime meridian 2023-11-13 21:44:17 +00:00
Even Rouault e04c6a6c64 proj_factor: fix when input is a compound CRS of a projected CRS, and a projected CRS whose datum has a non-Greenwich prime meridian 2023-11-13 21:44:17 +00:00
Even Rouault 15389b39c7 Merge pull request #3949 from rouault/proj_factor_fix
proj_factor: fix when input is a compound CRS of a projected CRS, and…
2023-11-13 21:10:23 +01:00
Even Rouault ab34bf583e Merge pull request #3944 from OSGeo/backport-3941-to-9.3
[Backport 9.3] Database: resync ESRI objects with https://github.com/Esri/projectionengine-db-doc at tag v3.2.0
2023-11-11 15:11:18 +01:00
Even Rouault 3e33c27c17 proj: projection factors: fix when input is a compound CRS of a projected CRS, and a projected CRS whose datum has a non-Greenwich prime meridian 2023-11-10 20:27:36 +01:00
Even Rouault 6f9fd55e38 proj_factor: fix when input is a compound CRS of a projected CRS, and a projected CRS whose datum has a non-Greenwich prime meridian 2023-11-10 18:27:07 +01:00
Even Rouault a29c310785 Merge pull request #3943 from OSGeo/backport-3940-to-9.3
[Backport 9.3] createOperations(): fix bad PROJ pipeline when converting between Geog3D with non-metre height to CompoundCRS
2023-11-04 23:11:05 +01:00
Even Rouault aaad5eb851 [Backport 9.3] createOperations(): Fix possible null dereference on invalid WKT input (#3946) 2023-11-04 23:10:54 +01:00
drons e9c0e8c805 createOperations(): Fix possible null dereference on invalid WKT input (#3945) 2023-11-04 22:58:08 +01:00
Even Rouault 93fdba660b Formatting fix [ci skip] 2023-11-04 22:22:29 +01:00
Even Rouault bf9f3470b7 Database: resync ESRI objects with https://github.com/Esri/projection-engine-db-doc at tag v3.2.0 (fixes #3939) 2023-11-03 10:20:42 +00:00
Even Rouault 21244f7db8 Merge pull request #3941 from rouault/database_esri_arcgis_pro_3_2
Database: resync ESRI objects with https://github.com/Esri/projectionengine-db-doc at tag v3.2.0
2023-11-03 10:55:41 +01:00
Even Rouault 3b0008a353 createOperations(): fix bad PROJ pipeline when converting between Geog3D with non-metre height to CompoundCRS (fixes #3938) 2023-11-03 09:55:33 +00:00
Even Rouault 0ab04d4c7d Vertical unit conversion: improve output for ft <--> us-ft 2023-11-03 09:55:33 +00:00
Even Rouault f939fb7f29 PROJString exporter: more unitconvert related simplifications 2023-11-03 09:55:33 +00:00
Even Rouault 3f23e8b6c8 Merge pull request #3940 from rouault/fix_3938
createOperations(): fix bad PROJ pipeline when converting between Geog3D with non-metre height to CompoundCRS
2023-11-03 10:55:05 +01:00
Olli Raisa dc184bdae5 SSL_OPTIONS: set SSL options on Curl library (#3936) 2023-11-02 21:10:55 +01:00
Even Rouault 9e65f53f89 Database: resync ESRI objects with https://github.com/Esri/projection-engine-db-doc at tag v3.2.0 (fixes #3939) 2023-11-02 19:08:30 +01:00
Even Rouault 0a9417f9c0 createOperations(): fix bad PROJ pipeline when converting between Geog3D with non-metre height to CompoundCRS (fixes #3938) 2023-11-02 18:38:31 +01:00
Even Rouault f6765ed2cb Vertical unit conversion: improve output for ft <--> us-ft 2023-11-02 18:31:37 +01:00
Even Rouault d38713d334 PROJString exporter: more unitconvert related simplifications 2023-11-02 18:31:36 +01:00
Even Rouault 19b1a160ef Merge pull request #3934 from OSGeo/backport-3929-to-9.3
[Backport 9.3] createOperations(): fix issue with a obscure case involving CompoundCRS of unknown horizontal datum + boundCRS of vertical
2023-10-30 17:21:34 +01:00
Even Rouault 16c00d783f Merge pull request #3933 from OSGeo/backport-3926-to-9.3
[Backport 9.3] WKT1 parser: in non-strict mode, accept missing UNIT[] in GEOGCS, GEOCCS, PROJCS and VERT_CS elements (fixes #3925)
2023-10-30 17:21:23 +01:00
Even Rouault 44b6fc36d7 createOperations(): fix issue with a obscure case involving CompoundCRS of unknown horizontal datum + boundCRS of vertical (fixes #3927) 2023-10-27 19:50:25 +00:00
Even Rouault 618d905ee6 WKT1 parser: in non-strict mode, accept missing UNIT[] in GEOGCS, GEOCCS, PROJCS and VERT_CS elements (fixes #3925) 2023-10-27 19:49:55 +00:00
Even Rouault 576fbc42fd Merge pull request #3929 from rouault/fix_3927
createOperations(): fix issue with a obscure case involving CompoundCRS of unknown horizontal datum + boundCRS of vertical
2023-10-27 21:49:25 +02:00
Even Rouault a16aca4553 Merge pull request #3926 from rouault/fix_3925
WKT1 parser: in non-strict mode, accept missing UNIT[] in GEOGCS, GEOCCS, PROJCS and VERT_CS elements (fixes #3925)
2023-10-27 21:49:10 +02:00
Even Rouault 224577966b Merge pull request #3931 from OSGeo/backport-3930-to-9.3
[Backport 9.3] Add Pix4D in users.rst - Proprietary licensed software
2023-10-20 16:54:13 +02:00
Javier Jimenez Shaw 35b7aa6073 Add Pix4D in users.rst - Proprietary licensed software 2023-10-20 14:42:08 +00:00
Even Rouault e8711e659f Merge pull request #3930 from jjimenezshaw/pix4d-private-org
Add Pix4D in users.rst - Proprietary licensed software
2023-10-20 16:41:36 +02:00
Javier Jimenez Shaw 933b8465a1 Add Pix4D in users.rst - Proprietary licensed software 2023-10-20 16:25:55 +02:00
Javier Jimenez Shaw 09419f0895 allow LOCAL_CS with 3 axes 2023-10-19 21:41:30 +02:00
Even Rouault 68b42846c1 Merge pull request #3928 from jjimenezshaw/local_cs-3-axes
Allow LOCAL_CS with 3 axes
2023-10-19 21:31:15 +02:00
Even Rouault 33faa04d01 createOperations(): fix issue with a obscure case involving CompoundCRS of unknown horizontal datum + boundCRS of vertical (fixes #3927) 2023-10-19 20:51:17 +02:00
Javier Jimenez Shaw ef508846c1 allow LOCAL_CS with 3 axes 2023-10-19 19:10:28 +02:00
Even Rouault 4626ce6f5b WKT1 parser: in non-strict mode, accept missing UNIT[] in GEOGCS, GEOCCS, PROJCS and VERT_CS elements (fixes #3925) 2023-10-19 15:46:13 +02:00
Even Rouault 055ff78639 Merge pull request #3924 from rouault/topocentric_projstring_import
Fix importing '+proj=topocentric ... +type=crs' by using a geocentric CRS as the base CRS
2023-10-19 14:52:57 +02:00
Even Rouault 451a2a48d3 Fix importing '+proj=topocentric ... +type=crs' by using a geocentric CRS as the base CRS
Fixes https://lists.osgeo.org/pipermail/proj/2023-October/011153.html
2023-10-18 18:40:28 +02:00
Even Rouault 944f622ed8 Merge pull request #3921 from rouault/cs_symbolic_names
Cleanup: use constants for strings of WKT coordinate system types
2023-10-16 12:27:54 +02:00
Even Rouault d0d4d94920 Cleanup: use constants for strings of WKT coordinate system types 2023-10-15 17:54:12 +02:00
Javier Jimenez Shaw 91b1f4d952 Add GCG2016 German geoid model file in sql (#3920)
* Add GCG2016 German geoid model file in sql

* update PROJ_DATA.VERSION to 1.16
2023-10-14 21:16:38 +02:00
Javier Jimenez Shaw 3920d63767 Add GCG2016 German geoid model file in sql (#3920)
* Add GCG2016 German geoid model file in sql

* update PROJ_DATA.VERSION to 1.16
2023-10-14 21:14:12 +02:00
Even Rouault eda031a714 Merge pull request #3919 from OSGeo/backport-3918-to-9.3
[Backport 9.3] GeographicBoundingBox::intersects(): avoid infinite recursion and stack overflow on invalid bounding boxes
2023-10-13 18:40:41 +02:00
Even Rouault a871ac530b GeographicBoundingBox::intersects(): avoid infinite recursion and stack overflow on invalid bounding boxes
Very similar to bugfix of 8409e8e03e
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60084
2023-10-12 19:33:48 +00:00
Even Rouault 61003c9550 Merge pull request #3918 from rouault/fix_ossfuzz_60084
GeographicBoundingBox::intersects(): avoid infinite recursion and stack overflow on invalid bounding boxes
2023-10-12 21:33:19 +02:00
Even Rouault 0b51b1bd51 GeographicBoundingBox::intersects(): avoid infinite recursion and stack overflow on invalid bounding boxes
Very similar to bugfix of 8409e8e03e
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=60084
2023-10-12 19:18:05 +02:00
Even Rouault aa110d8785 Merge pull request #3917 from OSGeo/backport-3912-to-9.3
[Backport 9.3] Database: update to EPSG 10.096
2023-10-03 15:01:29 +02:00
Even Rouault 584e97a70b Merge pull request #3916 from OSGeo/backport-3911-to-9.3
[Backport 9.3] Test suite: fix to make it pass with ENABLE_TIFF=OFF (fixes #3900)
2023-10-02 10:28:15 +02:00
Even Rouault 2b06a219b9 Merge pull request #3915 from OSGeo/backport-3910-to-9.3
[Backport 9.3] createOperations(): fix GeogCRS 3D with TOWGS84 to geocentric CRS (fixes #3909)
2023-10-02 10:28:02 +02:00
Even Rouault f64db67b02 [Backport 9.3] Doc: give all EPSG potential names for lon_0/lat_0/x_0/y_0 (fixes #3904) (#3914) 2023-10-02 10:27:46 +02:00
Even Rouault c714f1e6e3 Database: update to EPSG 10.096 2023-10-02 08:27:41 +00:00
Even Rouault 2040e685f5 [Backport master] Update faq.rst to mention geod (#3913)
See https://github.com/OSGeo/PROJ/issues/2644
2023-10-02 10:27:29 +02:00
Even Rouault c95bd70001 Merge pull request #3912 from rouault/epsg_10_096
Database: update to EPSG 10.096
2023-10-02 10:27:12 +02:00
Even Rouault 435e752fad CI: add testing for -DENABLE_TIFF=OFF 2023-09-30 13:37:47 +00:00
Even Rouault f0b6dcd4f9 Test suite: fix to make it pass with ENABLE_TIFF=OFF (fixes #3900) 2023-09-30 13:37:47 +00:00
Even Rouault 1b2b98a393 createOperations(): fix GeogCRS 3D with TOWGS84 to geocentric CRS (fixes #3909) 2023-09-30 13:37:19 +00:00
Even Rouault cfdfa3df45 Merge pull request #3911 from rouault/fix_3900
Test suite: fix to make it pass with ENABLE_TIFF=OFF (fixes #3900)
2023-09-30 15:33:23 +02:00
Even Rouault 5c98f2603f Merge pull request #3910 from rouault/fix_3909
createOperations(): fix GeogCRS 3D with TOWGS84 to geocentric CRS (fixes #3909)
2023-09-30 15:33:16 +02:00
Even Rouault 8d8066e015 Doc: give all EPSG potential names for lon_0/lat_0/x_0/y_0 (fixes #3904) (#3905) 2023-09-30 15:32:17 +02:00
積丹尼 Dan Jacobson 7ffc601575 Update faq.rst to mention geod (#3895)
See https://github.com/OSGeo/PROJ/issues/2644
2023-09-30 15:31:51 +02:00
Even Rouault c679e304dc Database: update to EPSG 10.096 2023-09-30 15:30:17 +02:00
Even Rouault 81ac095b2a CI: add testing for -DENABLE_TIFF=OFF 2023-09-28 17:15:34 +02:00
Even Rouault ed942abd7e Test suite: fix to make it pass with ENABLE_TIFF=OFF (fixes #3900) 2023-09-28 17:08:09 +02:00
Even Rouault 641af0e046 Merge pull request #3903 from OSGeo/backport-3901-to-master
[Backport master] Update projections.rst
2023-09-28 16:40:37 +02:00
Even Rouault 202de09be0 Merge pull request #3899 from OSGeo/backport-3897-to-9.3
[Backport 9.3] Add Javier as PSC member [skip ci]
2023-09-28 16:40:31 +02:00
Even Rouault 76d622f3c9 Merge pull request #3898 from OSGeo/backport-3896-to-master
[Backport master] Update cct.rst
2023-09-28 16:40:26 +02:00
Even Rouault 8cd3f02879 Merge pull request #3894 from OSGeo/backport-3893-to-master
[Backport master] helmert.rst: remove outdated :since: and deprecation
2023-09-28 16:40:11 +02:00
Even Rouault 90b02adbae createOperations(): fix GeogCRS 3D with TOWGS84 to geocentric CRS (fixes #3909) 2023-09-28 11:41:35 +02:00
積丹尼 Dan Jacobson 4475caf689 Update projections.rst
S/he means meters.
2023-09-24 11:44:14 +00:00
Even Rouault 5de9fe397e Merge pull request #3901 from jidanni/patch-22
Update projections.rst
2023-09-24 13:43:49 +02:00
積丹尼 Dan Jacobson 92de07cc7f Update projections.rst
S/he means meters.
2023-09-24 05:26:07 -05:00
Javier Jimenez Shaw 3f97f63a94 Add Javier as PSC member [skip ci] 2023-09-20 10:14:19 +00:00
積丹尼 Dan Jacobson 39181110cc Update cct.rst
Grammar.
2023-09-20 10:13:06 +00:00
Kristian Evers 744021af84 Merge pull request #3896 from jidanni/patch-11
Improve grammar in cct.rst
2023-09-20 12:12:24 +02:00
Even Rouault 55b1832a27 Merge pull request #3897 from jjimenezshaw/jjimenezshw-in-psc
Add Javier as PSC member [skip ci]
2023-09-20 11:39:56 +02:00
Javier Jimenez Shaw f92e32a51f Add Javier as PSC member [skip ci] 2023-09-20 11:33:35 +02:00
積丹尼 Dan Jacobson 0c97ca4fb6 Update cct.rst
Grammar.
2023-09-20 04:15:50 -05:00
Even Rouault f57c3ffc3c Fix potential null pointer dereferences (master only, CID 417218 and 417219) 2023-09-17 20:44:39 +02:00
Even Rouault 57e6408ff3 helmert.rst: remove outdated :since: and deprecation
versions 5.0 and 5.2 are ancient. No need to add to the cognitive load of the reader
2023-09-17 15:39:45 +00:00
Even Rouault 1b2d6e5118 Merge pull request #3893 from OSGeo/rouault-patch-3
helmert.rst: remove outdated :since: and deprecation
2023-09-17 17:39:17 +02:00
Even Rouault d4ebd920c1 Merge pull request #3884 from rouault/pointmotionoperation
Add support for transformations involving coordinate epoch changes (PointMotionOperation), mostly for Canadian NAD83(CSRS) case
2023-09-15 11:41:13 +02:00
Even Rouault c4d97b407c helmert.rst: remove outdated :since: and deprecation
versions 5.0 and 5.2 are ancient. No need to add to the cognitive load of the reader
2023-09-14 20:50:19 +02:00
Even Rouault bee4a90322 Implement 'Vertical Offset by velocity grid (NRCan byn)' method 2023-09-14 20:13:25 +02:00
Even Rouault b5d33ab92d Vertical Offset by Grid Interpolation (NRCan byn) operations: reverse the sign of the value of the grid 2023-09-14 19:35:24 +02:00
Even Rouault 0c39032a87 createOperations(): fix 'ITRF2014 to NAD83(CSRS)v7' type of operations, i.e. when the point motion operation is on the end, and also make sure that the time-dependent Helmert transformation receives coordinates in the right epoch 2023-09-14 19:35:24 +02:00
Even Rouault e69c31972e C API: add proj_crs_has_point_motion_operation() 2023-09-14 19:35:24 +02:00
Even Rouault 1b1f3c7457 createOperations(): tune for 'NAD83_CSRS_1997_xxxx_HT2_1997 to NAD83_CSRS_1997_yyyy_CGVD2013_1997' or 'NAD83_CSRS_2002_xxxx_HT2_2002 to NAD83_CSRS_2002_yyyy_CGVD2013_2002' 2023-09-14 19:35:24 +02:00
Even Rouault 0b48c6d9ee createOperations(): fix NAD83_CSRS_1997_MTMxx_HT2_1997 to NAD83_CSRS_2010_UTMyy_CGVD2013_2010 2023-09-14 19:35:24 +02:00
Even Rouault b50b522bb7 createOperations(): pass coordinate epochs internally in a cleaner way 2023-09-14 19:35:23 +02:00
Even Rouault 0ba3c09b6a createOperations(): compoundToCompound: tune behaviour when one of the vertical CRS has a geoid model 2023-09-14 19:35:23 +02:00
Even Rouault d1b58d9a94 CoordinateOperationFactory::Private::createOperationsWithDatumPivot(): use candidateSrcGeod and candidateDstGeod of same type in priority 2023-09-14 19:35:23 +02:00
Even Rouault 502c99d321 Implement 'Geographic3D Offset by velocity grid (NRCan byn)' transformation method (e.g for NAD83(CSRS)v7 to NAD83(CSRS)v3) 2023-09-14 19:35:23 +02:00
Even Rouault f6bcc680f7 Merge pull request #3892 from OSGeo/backport-3888-to-9.3
[Backport 9.3] proj.db opening: allow opening with a URI (typically for memvfs) (fixes #3887)
2023-09-14 10:37:24 +02:00
Even Rouault cac2dd1309 Merge pull request #3891 from OSGeo/backport-3889-to-9.3
[Backport 9.3] setargv.obj is not available on uwp
2023-09-14 10:37:12 +02:00
Even Rouault c7588b02cd proj.db opening: allow opening with a URI (typically for memvfs) (fixes #3887) 2023-09-13 21:29:34 +00:00
Even Rouault 5c680a53ab Merge pull request #3888 from rouault/fix_3887
proj.db opening: allow opening with a URI (typically for memvfs) (fixes #3887)
2023-09-13 21:48:17 +02:00
Leander Schulten ef0d659014 setargv.obj is not available on uwp 2023-09-13 18:05:51 +00:00
Even Rouault 53e67739ff Merge pull request #3886 from OSGeo/backport-3878-to-9.3
[Backport 9.3] cs2cs: fix handling of input coordinates in grad (fixes #3800)
2023-09-13 19:24:21 +02:00
Even Rouault 992edc5846 Merge pull request #3885 from OSGeo/backport-3877-to-9.3
[Backport 9.3] Doc: projections.rst: document Order of applications of parameters (fixes #3875)
2023-09-13 19:24:10 +02:00
Even Rouault bc4aa41e0d Merge pull request #3889 from autoantwort/uwp
setargv.obj is not available on uwp
2023-09-13 19:24:00 +02:00
Leander Schulten baa4c61c1d setargv.obj is not available on uwp 2023-09-10 16:16:32 +02:00
Even Rouault 2297392e62 proj.db opening: allow opening with a URI (typically for memvfs) (fixes #3887) 2023-09-08 11:50:56 +02:00
Even Rouault 303df3071f GeographicCRS::_isEquivalentTo(): follow-up fix for #3879 to avoid behaviour breakage in GDAL 2023-09-07 11:13:19 +02:00
Even Rouault 140b9914e8 GeographicCRS::_isEquivalentTo(): follow-up fix for #3879 to avoid behaviour breakage in GDAL 2023-09-07 11:13:02 +02:00
Even Rouault 4c1621747c Fix GIGS 5102.2 (fixes #3800) 2023-09-06 22:36:00 +00:00
Even Rouault 274e16027b cs2cs: fix handling of input coordinates in grad (fixes #3800) 2023-09-06 22:36:00 +00:00
Even Rouault 85ec28f5ab Doc: projections.rst: document Order of applications of parameters (fixes #3875) 2023-09-06 22:35:32 +00:00
Even Rouault 4d31e759f6 Doc: add source_file extension (borrowed from GDAL, credits to @dbaston) 2023-09-06 22:35:32 +00:00
Even Rouault 93868c1a08 Merge pull request #3883 from OSGeo/backport-3879-to-9.3
[Backport 9.3] isEquivalentTo(): make a datum name 'unknown' equivalent to another one
2023-09-07 00:33:14 +02:00
Even Rouault fd5caa1879 Merge pull request #3882 from OSGeo/backport-3880-to-9.3
[Backport 9.3] Ellipsoid::_isEquivalentTo(): fix so that an ellipsoid of semi-major …
2023-09-07 00:33:06 +02:00
Even Rouault 9f99f305db Merge pull request #3881 from OSGeo/backport-3876-to-9.3
[Backport 9.3] CoordinateOperationFactory: deal with CompoundToCompound with a horizontal similarity transformation and a ballpark vertical (fixes #3854)
2023-09-07 00:32:59 +02:00
Even Rouault 10bd12999f Merge pull request #3878 from rouault/fix_3800
cs2cs: fix handling of input coordinates in grad (fixes #3800)
2023-09-07 00:32:53 +02:00
Even Rouault 7d2ccc8090 Merge pull request #3877 from rouault/fix_3875
Doc: projections.rst: document Order of applications of parameters (fixes #3875)
2023-09-07 00:32:42 +02:00
Even Rouault 6018751b79 CoordinateOperationFactory: make sure to preserve interpolation CRS when substituting source/target CRS 2023-09-06 14:41:08 +02:00
Even Rouault 9bfb7cbe8d createOperations(): compoundToCompound: tune behaviour with point motion operation 2023-09-06 14:41:07 +02:00
Even Rouault 9ef831843c Database: add a NRCAN authority with CoordinateMetadata records 2023-09-06 14:41:07 +02:00
Even Rouault cd0805e3f4 createOperations(): take into account GEOIDMODEL[] referenced by ID 2023-09-06 14:41:07 +02:00
Even Rouault f4716110cf createFromUserInput(): make it recognize urn:ogc:def:coordinateMetadata:AUTH_NAME::CODE syntax 2023-09-06 14:41:07 +02:00
Even Rouault ded4eccffe WKT/PROJJSON importer: allow to build CoordinateMetadata with CRS like NAD83(CSRS)v7 2023-09-06 14:41:07 +02:00
Even Rouault 4e76830b45 Database: add a 'coordinate_metadata' table and a AuthorityFactory::createCoordinateMetadata() method
Bump database layout version to 1.3
2023-09-06 14:41:07 +02:00
Even Rouault 9983c6ef08 cs2cs: add --s_epoch and --t_epoch 2023-09-06 14:41:07 +02:00
Even Rouault 4ac2cfb25e projinfo: add --s_epoch and --t_epoch 2023-09-06 14:41:07 +02:00
Even Rouault 284d15ef7d Database: add 'CGVD28 height to CGVD2013a(2010) height' with NAD83(CSRS)v7 as interpolation CRS 2023-09-06 14:41:06 +02:00
Even Rouault a9716560f0 projinfo: allow CoordinateMetadata <--> CoordinateMetadata transformations 2023-09-06 14:41:06 +02:00
Even Rouault 26936c1fbb proj_create_operations(): allow CoordinateMetadata <--> CoordinateMetadata transformations 2023-09-06 14:41:06 +02:00
Even Rouault a53a5a107f createOperations(): use point motion operations for change of epoch between CoordinateMetadata 2023-09-06 14:41:06 +02:00
Even Rouault 419cf4d6e1 Use single implementation of getRoundedEpochInDecimalYear() 2023-09-06 14:32:54 +02:00
Even Rouault 627d942558 createFromUserInput(): allow 'EPSG:XXXX @ YYYY' 2023-09-05 22:33:53 +02:00
Even Rouault d683fcf069 proj_crs_promote_to_3D(): make it work on CoordinateMetadata as well 2023-09-05 22:33:53 +02:00
Even Rouault e27c8a2604 Add AuthorityFactory::getPointMotionOperationsFor() and allow a CoordinateMetadata to be built for CRS that are not officially dynamic but have a PointMotionOperation 2023-09-05 22:33:52 +02:00
Even Rouault 2ef8221ba6 Add AuthorityFactory::createGeodeticCRSFromDatum() utility class, adapted/moved from coordinateoperationfactory logic 2023-09-05 22:33:52 +02:00
Even Rouault 3606ddb689 PointMotionOperation: implement constructor, import/export WKT and PROJJSON, and instanciation from database 2023-09-05 22:33:52 +02:00
Even Rouault 882376e2c4 isEquivalentTo(): make a datum name 'unknown' equivalent to another one
Fixes https://lists.osgeo.org/pipermail/proj/2023-September/011126.html
2023-09-05 09:21:28 +00:00
Even Rouault 99cf763666 Merge pull request #3879 from rouault/datum_unknown
isEquivalentTo(): make a datum name 'unknown' equivalent to another one
2023-09-05 10:13:07 +02:00
Even Rouault 069e46384f Ellipsoid::_isEquivalentTo(): fix so that an ellipsoid of semi-major axis A (and non-zero inv flattening) isn't equivalent to a sphere of radius A...
or to another ellipsoid of same semi-major axis but defined from a semi-minor axis and not inverse flattening

Discovered when debugging corner cases of https://github.com/OSGeo/PROJ/pull/3879 ...
2023-09-05 08:11:39 +00:00
Even Rouault b9051b8b74 proj_crs_to_crs(): tune ordering of operations based on areas, and also for operations with unknown accuracy (fixes #3854) 2023-09-05 08:11:16 +00:00
Even Rouault e3c1e923d0 CoordinateOperationFactory: deal with CompoundToCompound with a horizontal similarity transformation and a ballpark vertical (fixes #3854) 2023-09-05 08:11:16 +00:00
Even Rouault bc8cbd8276 Improve debugging code 2023-09-05 08:11:16 +00:00
Even Rouault 58394985c3 Merge pull request #3880 from rouault/fix_ellipsoid_isequivalentto
Ellipsoid::_isEquivalentTo(): fix so that an ellipsoid of semi-major …
2023-09-05 10:11:04 +02:00
Even Rouault d750d686fa Merge pull request #3876 from rouault/fix_3854
CoordinateOperationFactory: deal with CompoundToCompound with a horizontal similarity transformation and a ballpark vertical (fixes #3854)
2023-09-05 10:10:45 +02:00
Even Rouault b10ac5e7b9 Ellipsoid::_isEquivalentTo(): fix so that an ellipsoid of semi-major axis A (and non-zero inv flattening) isn't equivalent to a sphere of radius A...
or to another ellipsoid of same semi-major axis but defined from a semi-minor axis and not inverse flattening

Discovered when debugging corner cases of https://github.com/OSGeo/PROJ/pull/3879 ...
2023-09-03 23:39:28 +02:00
Even Rouault ea1a88513f isEquivalentTo(): make a datum name 'unknown' equivalent to another one
Fixes https://lists.osgeo.org/pipermail/proj/2023-September/011126.html
2023-09-03 23:18:55 +02:00
Even Rouault 87ae438191 Fix GIGS 5102.2 (fixes #3800) 2023-09-03 22:16:00 +02:00
Even Rouault b2435aa4e0 cs2cs: fix handling of input coordinates in grad (fixes #3800) 2023-09-03 22:15:59 +02:00
Even Rouault f39b406b58 Doc: projections.rst: document Order of applications of parameters (fixes #3875) 2023-09-03 21:48:46 +02:00
Even Rouault 94f0795ef7 Doc: add source_file extension (borrowed from GDAL, credits to @dbaston) 2023-09-03 21:48:14 +02:00
積丹尼 Dan Jacobson 707dd9ff80 Always use the cleanest examples.
Move repetitive default into text explanation.

P.S., maybe one day even consider changing the
default +ellps=GRS80 to +ellps=WGS84... but no big deal...
2023-09-03 21:14:20 +02:00
Howard Butlerand積丹尼 Dan Jacobson 7b3b638b6f Doc updates from jidanni (#3858)
* Update nzmg.rst

Here I am taking a guess at which grid this is referring to and thus trying to make it clearer.

* Update transformation.rst

Note: I have only mentioned that the +'s went away.

Apparently the author is using +init files here, and showing only their contents.

However even if the user placed the example snippets seen in the boxes into files in the current directory,
there is no complete working example!

I am saying that earlier in this book, the user was able to run the examples shown.

But now if the user wishes to continue running them, he has to put the +'s back,

or use some special syntax that you haven't shown yet in a complete working example!

* Always use the cleanest examples.

Move repetitive default into text explanation.

P.S., maybe one day even consider changing the
default +ellps=GRS80 to +ellps=WGS84... but no big deal...

* Update docs/source/apps/proj.rst

* Update x_0.rst

These are meters and one cannot just use e.g., +units to change it.

* Remove redundant optional default parameters!

We get the exact same answer without the clutter that doesn't make things any more clearer.

* 50 U.S. isn't grammatical

P.S., perhaps add a reference to where this projection came from.

* Remove parameter that is default anyway

Make example less cluttered.

* Update cart.rst

Simplify via defaults.

* Can remove default parameter.

Shorten string by removing redundancies.

* Update som.rst showing relation of the two lines

Mentioning how the two lines are related.

* Update rhealpix.rst

Got rid of
- default -f setting

Eliminated ellipse emphasis and just used the default.

* Update geoc.rst

Defaults shown clear as day at the bottom of the page already.

* Update topocentric.rst

Wipe off items that aren't the focus of the issue and don't affect outcome here.

* Update unitconvert.rst

Use and explain defaults.
One day this page should mention what the default time etc. units are too.

* Update set.rst

Simplify by removing default parameters.

* Update push.rst

Eliminate default reuse, getting same calculation.

* Update xyzgridshift.rst

Don't repeat defaults.

* Update vertoffset.rst

GRS80 already implied and documented.

* Update hgridshift.rst

Reduce chance of too wide example going off the screen!

* Update geogoffset.rst

Add '+' to match rest of book.

* Update differences.rst

Add actual EOF notation.

* Update helmert.rst

Reduce horizontal scrolling, at least on desktop.

Also one day maybe add '+' before each... or maybe not.

* Update defmodel.rst

Example causes scrolling horizontally, even on desktop.

* Update bertin1953.rst

Remove src.

* Update cass.rst

- Less horizontal scrolling, which was seen even on desktop.
- Zapped default meter parameter.

* Update s2.rst

Clean off testing residue.

Perhaps one day also hyperlink
"Quadrilateralized Spherical Cube"
page.

* Update tmerc.rst

Trimming defaults reduces horizontal scrolling.

* Update y_0.rst

These are meters and one cannot just use e.g., +units to change it.

* Update unitconvert.rst

Mention defaults.
I only listed the ones I know.
The rest I didn't list.

---------

Co-authored-by: 積丹尼 Dan Jacobson <jidanni@jidanni.org>
2023-09-03 21:14:20 +02:00
Even Rouault 8b4fa7dbb9 Merge pull request #3764 from jidanni/patch-2
Always use the cleanest examples.
2023-09-03 21:03:56 +02:00
Howard Butlerand積丹尼 Dan Jacobson d700e42ada Doc updates from jidanni (#3858)
* Update nzmg.rst

Here I am taking a guess at which grid this is referring to and thus trying to make it clearer.

* Update transformation.rst

Note: I have only mentioned that the +'s went away.

Apparently the author is using +init files here, and showing only their contents.

However even if the user placed the example snippets seen in the boxes into files in the current directory,
there is no complete working example!

I am saying that earlier in this book, the user was able to run the examples shown.

But now if the user wishes to continue running them, he has to put the +'s back,

or use some special syntax that you haven't shown yet in a complete working example!

* Always use the cleanest examples.

Move repetitive default into text explanation.

P.S., maybe one day even consider changing the
default +ellps=GRS80 to +ellps=WGS84... but no big deal...

* Update docs/source/apps/proj.rst

* Update x_0.rst

These are meters and one cannot just use e.g., +units to change it.

* Remove redundant optional default parameters!

We get the exact same answer without the clutter that doesn't make things any more clearer.

* 50 U.S. isn't grammatical

P.S., perhaps add a reference to where this projection came from.

* Remove parameter that is default anyway

Make example less cluttered.

* Update cart.rst

Simplify via defaults.

* Can remove default parameter.

Shorten string by removing redundancies.

* Update som.rst showing relation of the two lines

Mentioning how the two lines are related.

* Update rhealpix.rst

Got rid of
- default -f setting

Eliminated ellipse emphasis and just used the default.

* Update geoc.rst

Defaults shown clear as day at the bottom of the page already.

* Update topocentric.rst

Wipe off items that aren't the focus of the issue and don't affect outcome here.

* Update unitconvert.rst

Use and explain defaults.
One day this page should mention what the default time etc. units are too.

* Update set.rst

Simplify by removing default parameters.

* Update push.rst

Eliminate default reuse, getting same calculation.

* Update xyzgridshift.rst

Don't repeat defaults.

* Update vertoffset.rst

GRS80 already implied and documented.

* Update hgridshift.rst

Reduce chance of too wide example going off the screen!

* Update geogoffset.rst

Add '+' to match rest of book.

* Update differences.rst

Add actual EOF notation.

* Update helmert.rst

Reduce horizontal scrolling, at least on desktop.

Also one day maybe add '+' before each... or maybe not.

* Update defmodel.rst

Example causes scrolling horizontally, even on desktop.

* Update bertin1953.rst

Remove src.

* Update cass.rst

- Less horizontal scrolling, which was seen even on desktop.
- Zapped default meter parameter.

* Update s2.rst

Clean off testing residue.

Perhaps one day also hyperlink
"Quadrilateralized Spherical Cube"
page.

* Update tmerc.rst

Trimming defaults reduces horizontal scrolling.

* Update y_0.rst

These are meters and one cannot just use e.g., +units to change it.

* Update unitconvert.rst

Mention defaults.
I only listed the ones I know.
The rest I didn't list.

---------

Co-authored-by: 積丹尼 Dan Jacobson <jidanni@jidanni.org>
2023-09-03 20:58:07 +02:00
Even Rouault 89943df4ad proj_crs_to_crs(): tune ordering of operations based on areas, and also for operations with unknown accuracy (fixes #3854) 2023-09-03 19:37:39 +02:00
Even Rouault ed367b8b74 CoordinateOperationFactory: deal with CompoundToCompound with a horizontal similarity transformation and a ballpark vertical (fixes #3854) 2023-09-03 19:36:54 +02:00
Even Rouault 2e7ebe095d Improve debugging code 2023-09-03 19:35:48 +02:00
Even Rouault e5169f9af1 Merge pull request #3874 from OSGeo/backport-3873-to-9.3
[Backport 9.3] ESRI WKT import: normalize GCS_unknown to unknown and D_unknown to unknown (fixes #3871)
2023-09-03 16:03:33 +02:00
Mike Taves 73e11c543a Update CITATION.cff 2023-09-03 20:55:49 +12:00
Mike Taves c76f17f63c Update CITATION.cff 2023-09-03 20:55:04 +12:00
Even Rouault f3d54fa0be ESRI WKT import: normalize GCS_unknown to unknown and D_unknown to unknown (fixes #3871) 2023-09-02 08:14:05 +00:00
Even Rouault 8a2cf2d9a8 Merge pull request #3873 from rouault/fix_3871
ESRI WKT import: normalize GCS_unknown to unknown and D_unknown to unknown (fixes #3871)
2023-09-02 10:06:43 +02:00
Even Rouault 9b553e227a Merge pull request #3872 from OSGeo/backport-3869-to-9.3
[Backport 9.3] Fix build error with MSVC 2019 in /std:c++20 on NN_NO_CHECK()
2023-09-02 10:06:31 +02:00
Even Rouault 8d52b30588 ESRI WKT import: normalize GCS_unknown to unknown and D_unknown to unknown (fixes #3871) 2023-09-01 19:59:20 +02:00
Even Rouault e372d23d9b windows.yml: test C++20 compilation 2023-09-01 17:32:46 +00:00
Even Rouault a7bdb77d57 NN_NO_CHECK() macro: fix it to work with MSVC 2019 in /std:c++20 mode
(fixes #3868)

For some weird reason, the previous definition of the macro didn't work
when used from lambdas.
2023-09-01 17:32:46 +00:00
Even Rouault 4a14240a60 Merge pull request #3869 from rouault/fix_3868
Fix build error with MSVC 2019 in /std:c++20 on NN_NO_CHECK()
2023-09-01 19:32:16 +02:00
Even Rouault e4a2a492f3 Merge pull request #3870 from OSGeo/backport-3867-to-9.3
[Backport 9.3] ITRF2008: fix wrong sign for 'dry' parameter of EURA and EURA_T
2023-09-01 19:09:23 +02:00
Kristian Evers 5cecc48556 docs: update git branch and date 2023-09-01 14:22:11 +02:00
Even Rouault ea3c7e84eb ITRF2008: fix wrong sign for 'dry' parameter of EURA and EURA_T 2023-09-01 12:01:47 +00:00
Even Rouault c9e7856c3d Merge pull request #3867 from rouault/fix_ITRF2008_EURA
ITRF2008: fix wrong sign for 'dry' parameter of EURA and EURA_T
2023-09-01 13:56:59 +02:00
Even Rouault 8490a5d680 windows.yml: test C++20 compilation 2023-09-01 12:17:10 +02:00
Even Rouault a6b8135d58 NN_NO_CHECK() macro: fix it to work with MSVC 2019 in /std:c++20 mode
(fixes #3868)

For some weird reason, the previous definition of the macro didn't work
when used from lambdas.
2023-09-01 12:17:10 +02:00
Kristian Evers c540bd2f2f Bump version numbers in preparation for 9.4.0 release 2023-09-01 12:11:40 +02:00
Kristian Evers c530dad029 Update website for 9.3.0 release 2023-09-01 12:01:09 +02:00
Kristian Evers 0f7751b2a9 Update website for 9.3.0 release 2023-09-01 12:00:48 +02:00
Even Rouault 6e98ed7cad ITRF2008: fix wrong sign for 'dry' parameter of EURA and EURA_T 2023-08-31 22:29:07 +02:00
Even Rouault 08f394ea30 Merge pull request #3866 from OSGeo/backport-3864-to-9.3
[Backport 9.3] JSON export: avoid non-significant decimal digits in version field (fixes #3863)
2023-08-29 17:10:25 +02:00
Even Rouault 847423fe42 JSON import: reduce number of significant decimal digits when parsing id.version field (fixes #3863, reworks previous commit) 2023-08-28 15:23:24 +00:00
Even Rouault 19cda6a061 JSON export: avoid non-significant decimal digits in version field (fixes #3863) 2023-08-28 15:23:24 +00:00
Even Rouault ec93f34660 Merge pull request #3864 from rouault/fix_3863
JSON export: avoid non-significant decimal digits in version field (fixes #3863)
2023-08-28 17:21:55 +02:00
Even Rouault 83878d6ed5 JSON import: reduce number of significant decimal digits when parsing id.version field (fixes #3863, reworks previous commit) 2023-08-28 14:57:35 +02:00
Even Rouault 0220add53f JSON export: avoid non-significant decimal digits in version field (fixes #3863) 2023-08-28 12:38:30 +02:00
Kristian Evers 4f0376ba6b Update NEWS for 9.3.0 2023-08-27 20:42:00 +02:00
Kristian Evers a86add9a03 Update man-pages from Sphinx-docs 2023-08-27 20:16:49 +02:00
Kristian Evers 615ea826a4 Update man-pages from Sphinx-docs 2023-08-27 20:13:46 +02:00
Kristian Evers db78a84304 Merge pull request #3861 from jjimenezshaw/fix-doc-docker-ubuntu-22.04
Fix doc docker ubuntu 22.04
2023-08-27 18:46:07 +02:00
Javier Jimenez Shaw 2cec0e4ee7 Doc docker: remove conflictive dependency awscli 2023-08-27 14:09:23 +02:00
Javier Jimenez Shaw c8da8d2ab0 Doc docker: limit sphinxcontrib-spelling version. Breaking changes in v8 2023-08-27 12:48:23 +02:00
Kristian Evers 423100c720 Merge pull request #3860 from jjimenezshaw/doc-paper-site-calibration
Mention derived projected in operations_computation
2023-08-26 21:35:28 +02:00
Kristian Evers b940d6d869 Merge pull request #3859 from jjimenezshaw/docker-ubuntu-22.04
Docker: update base image to ubuntu:22.04
2023-08-26 21:34:45 +02:00
Javier Jimenez Shaw 3a7a86b9a0 Mention derived projected in operations_computation 2023-08-26 13:40:30 +02:00
Javier Jimenez Shaw a0b49bc823 Docker: update base image to ubuntu:22.04 [ci skip] 2023-08-26 12:49:31 +02:00
積丹尼 Dan Jacobson 994f5c7075 Update y_0.rst (#3797)
These are meters and one cannot just use e.g., +units to change it.
2023-08-24 15:51:57 -05:00
Even Rouault b132ad6879 Merge pull request #3857 from rouault/fix_warning_cs2cs_emulation_setup
Fix false-positive compiler warning
2023-08-24 14:29:44 +02:00
Even Rouault 8b36c193fd Fix false-positive compiler warning
Fixes the following false-positive warning of gcc (Ubuntu 11.4.0-1ubuntu1~22.04)
11.4.0 in -m32 mode:
```
/home/even/proj/proj/src/4D_api.cpp: In function 'int cs2cs_emulation_setup(PJ*)':
/home/even/proj/proj/src/4D_api.cpp:949:64: warning: '%s' directive output between 9 and 2147483645 bytes may cause result to exceed 'INT_MAX' [-Wformat-truncation=]
  949 |                  "break_cs2cs_recursion     proj=helmert exact %s "
      |
```
2023-08-24 12:17:10 +02:00
Even Rouault 5d9df6442c Merge pull request #3852 from rouault/HT2_grids
Database: grid_alternatives: reference new HT2 Canadian grids ...
2023-08-19 15:11:01 +02:00
Even Rouault d2a3436630 Database: grid_alternatives: reference new HT2 Canadian grids added per https://github.com/OSGeo/PROJ-data/pull/106 2023-08-18 19:18:42 +02:00
Even Rouault 8b0029e6db Merge pull request #3851 from rouault/wkt1_esri_8353
WKT1 ESRI import/export: fix GCS name for EPSG:8353 S-JTSK_[JTSK03]_Krovak_East_North
2023-08-17 18:14:28 +02:00
Even Rouault 57a1eabe99 WKT1 ESRI import/export: fix GCS name for EPSG:8353 S-JTSK_[JTSK03]_Krovak_East_North 2023-08-17 17:12:58 +02:00
Even Rouault c5c7e64b8a Merge pull request #3849 from rouault/fix_3848
bonne: fix inverse map projection computations when lat_1 < 0 (fixes #3848)
2023-08-11 13:56:52 +02:00
Even Rouault 28e6194bfd bonne: fix inverse map projection computations when lat_1 < 0 (fixes #3848)
The fixes are directly following hints of Snyder's "Map projections: A
working manual"
2023-08-11 11:09:57 +02:00
Even Rouault 0372c81511 Merge pull request #3847 from rouault/epsg_10_094
Database: update to EPSG 10.094
2023-08-11 01:58:42 +02:00
Even Rouault a654e42074 Merge pull request #3846 from rouault/proj_alter_id_fix
proj_alter_id(): make it replace an existing ID instead of appending a new one
2023-08-10 00:46:05 +02:00
Even Rouault d5c5cf4112 Database: update to EPSG 10.094 2023-08-08 13:01:47 +02:00
Javier Jimenez Shaw 1a0a28d2da Use NS_PROJ namespace (fixes #3842, master only) (#3843) 2023-08-08 12:56:57 +02:00
Even Rouault 9da8ae5197 Merge pull request #3841 from snowman2/guess
BUG: Handle prefix whitespace when guessing WKT dialiect
2023-08-08 12:55:42 +02:00
Even Rouault a47da33335 proj_alter_id(): make it replace an existing ID instead of appending a new one 2023-08-08 12:40:41 +02:00
Alan Snow d2794d70ee BUG: Handle prefix whitespace when guessing WKT dialiect 2023-07-27 15:53:33 -05:00
Javier Jimenez Shaw fde3d58e4a Add option in proj CLI to use a CRS (#3825)
To easily apply proj on the projection of a projected CRS, this PR adds the option `-C`.
It follows the same logic as in function proj_factors, that is to compute the projection from the CRS to the geographic underlying CRS.

Example of usage:

```
echo -110.16666 31 | proj -C EPSG:26948 -V 
#Transverse Mercator
#	Cyl, Sph&Ell
#	approx
# +proj=tmerc +lat_0=31 +lon_0=-110.166666666667 +k=0.9999 +x_0=213360 +y_0=0
# +ellps=GRS80
#Final Earth figure: ellipsoid
#  Major axis (a): 6378137.000
#  1/flattening: 298.257222
#  squared eccentricity: 0.006694380023
Longitude: 110d9'59.976"W [ -110.16666 ]
Latitude:  31dN [ 31 ]
Easting (x):   213360.64
Northing (y):  0.00
Meridian scale (h) : 0.99990000  ( -0.01 % error )
Parallel scale (k) : 0.99990000  ( -0.01 % error )
Areal scale (s):     0.99980001  ( -0.02 % error )
Angular distortion (w): 0.000
Meridian/Parallel angle: 90.00000
Convergence : 0d0'0.012" [ 0.00000343 ]
Max-min (Tissot axis a-b) scale error: 0.99990 0.99990
```
2023-07-26 09:20:27 +02:00
Even Rouault 9052f4c2ea Merge pull request #3838 from rouault/ossfuzz_fix
Ossfuzz fixes
2023-07-25 19:46:14 +02:00
Even Rouault 25f7722aaf Merge pull request #3835 from rouault/fix_3832
PROJ_DEBUG: make ON an alias of 2, and OFF of 1 (fixes #3832)
2023-07-25 19:46:01 +02:00
Even Rouault c8f28e402b CoordinateOperation::targetCoordinateEpoch(): use std::move() to avoid copy (CID 406913) 2023-07-24 16:14:21 +02:00
Even Rouault 7c80355921 ConcatenatedOperation::fixStepsDirection(): fix logic error (Coverity CID 416067) 2023-07-24 16:13:29 +02:00
Even Rouault 25367b686b Merge pull request #3834 from rouault/workaround_mapserver_6915
Avoid C++ exceptions to be thrown (and caught) when parsing strings like '+proj=longlat +datum=WGS84 +type=crs'
2023-07-20 20:44:45 +02:00
Even Rouault ef78412c31 PROJ_DEBUG: make ON an alias of 2, and OFF of 1 (fixes #3832)
and emits a stderr message when the value specified isn't understood
2023-07-20 11:23:20 +02:00
Even Rouault 1b14212a3c pj_hgrid_apply_internal(): use pj_log() infrastructure 2023-07-20 01:39:52 +02:00
Even Rouault c5b3d6b350 Avoid C++ exceptions to be thrown (and caught) when parsing strings like '+proj=longlat +datum=WGS84 +type=crs'
This makes it more friendly with debuggers under Windows, and should
help workarounding https://github.com/MapServer/MapServer/issues/6915
(note however that the issue in that ticket is more a 'system level'
issue than a PROJ bug)
2023-07-20 01:15:11 +02:00
Even Rouault 6d10acffad Merge pull request #3831 from rouault/fix_geoapi_links
Doc: fix links to geoapi
2023-07-19 19:35:57 +02:00
Even Rouault fcd26062ae Merge pull request #3826 from rouault/fix_3824
proj_factors(): make it work with projected CRS with non-metre unit and/or northing/easting axis order (fixes #3824)
2023-07-19 19:35:50 +02:00
Even Rouault de1183e5c1 Doc: fix links to geoapi 2023-07-19 00:06:23 +02:00
Even Rouault 681d389098 Merge pull request #3830 from rouault/fix_3828
Projected CRS identification: fix crash when the base CRS is a non-geographic geodetic CRS (fixes #3828)
2023-07-18 22:52:56 +02:00
Even Rouault b436980840 Projected CRS identification: fix crash when the base CRS is a non-geographic geodetic CRS (fixes #3828) 2023-07-18 12:29:14 +02:00
Even Rouault f5d206ced4 Merge pull request #3827 from rouault/epsg_10_093
Database: update to EPSG 10.093
2023-07-18 12:10:55 +02:00
Even Rouault 0af13b885f Database: update to EPSG 10.093 2023-07-17 22:31:34 +02:00
Even Rouault 3aa97a6966 proj_factors(): make it work with projected CRS with non-metre unit and/or northing/easting axis order (fixes #3824) 2023-07-17 22:12:42 +02:00
Even Rouault c5b74f1513 Merge pull request #3820 from rouault/fix_3819
Various fixes related to #3819
2023-07-17 20:06:04 +02:00
Even Rouault fad9ad9979 exportToPROJString(): when a NADCON operation is included in a vertical transformation, do not include axis swap 2023-07-15 18:43:44 +02:00
Even Rouault f1d29da551 fixStepsDirection(): enable to define a concatenated operationg ending with a NADCOND (3D) transformation (use case of refs #3819) 2023-07-15 18:43:44 +02:00
Even Rouault 2e52000c5a factory.cpp: include authority name in exception 2023-07-15 18:43:44 +02:00
Even Rouault 28e35de900 Add a way to skip inconsistently defined operations in createFromCoordinateReferenceSystemCodes() and createFromCRSCodesWithIntermediates() 2023-07-15 18:43:44 +02:00
Even Rouault 9ecb3a47bb fixStepsDirection(): pass database context 2023-07-15 18:43:44 +02:00
Even Rouault 8b562afb4f ConcatenatedOperation::fixStepsDirection(): fix detection of geocentric CRS which wrongly detected geographic 3D CRS too 2023-07-15 18:43:43 +02:00
Even Rouault f440bfd11a Merge pull request #3821 from rouault/unused-but-set-variable-wkt
Fix -Wunused-but-set-variable with recent clang in bison generated parsers
2023-07-12 15:07:20 +02:00
Even Rouault 0f2a2278b8 Fix -Wunused-but-set-variable with recent clang in bison generated parsers 2023-07-12 00:34:57 +02:00
Even Rouault ed8f029494 Merge pull request #3817 from AlexBass05/add-polish-geoid2021
Add Polish geoid model PL-geoid2021
2023-07-11 13:11:29 +02:00
Mike Taves 9ff293a5ab ReadTheDocs: add htmlzip to offline formats; remove ePub (#3810) 2023-07-10 12:37:02 +12:00
Even Rouault 9c29825974 Merge pull request #3816 from rouault/iau_EPSG_1026_Mercator
Implements proposal001 from Planetary DWG from OGC
2023-07-06 16:03:33 +02:00
Even Rouault a4ae86ae93 Merge pull request #3812 from rouault/epsg_10_091
Update to EPSG 10.091 and Equidistant Conic: add mapping to new EPSG:1119 method
2023-07-06 15:57:06 +02:00
Even Rouault e53107d884 proj_db_table_defs.sql: add EPSG_1026_Mercator (Spherical) 2023-07-06 15:24:34 +02:00
Alexander Nehrbass d2f5941613 Add Polish geoid model PL-geoid2021 2023-07-06 15:00:46 +02:00
Kristian Evers 073c25f52a Merge pull request #3813 from OSGeo/busstoptaktik-patch-1
Deformation: Make code and comments compatible
2023-07-06 08:33:51 +02:00
Mike Taves 50e8a55c22 plot.py: rewrite using shapely>=2 (#3811) 2023-07-06 10:04:21 +12:00
Even Rouault 64d6d5f3a5 Equidistant Conic: add mapping to new EPSG:1119 method 2023-07-05 21:05:57 +02:00
Thomas Knudsen a5b648782b Deformation: Make code and comments compatible
The expression in the head comment describing the transformation had a switched sign, compared to the code in [lines 278-289](https://github.com/OSGeo/PROJ/blob/effac63ae5360e737790defa5bdc3d070d19a49b/src/transformations/deformation.cpp#L278-L289).

Also, the description of file formats, while still relevant, needed an update to mention the possibility of representing all three components of the deformation model as a GTG file
2023-07-05 20:43:22 +02:00
Even Rouault 345d92c192 Database: update to EPSG v10.091 2023-07-05 19:08:45 +02:00
Kristian Evers effac63ae5 Merge pull request #3802 from kbevers/stale-action
Add stale GitHub action, as replacement for old stale GitHub integration
2023-06-30 09:58:35 +02:00
Kristian Evers 8d77d17a7d Merge pull request #3804 from OSGeo/backport-3803-to-master
[Backport master] Update news.rst
2023-06-30 09:04:16 +02:00
Kristian EversandMike Taves 35402eaa11 Update .github/workflows/stale.yml
Co-authored-by: Mike Taves <mwtoews@gmail.com>
2023-06-30 09:03:25 +02:00
Kristian Evers 1e69a8be36 Merge pull request #3803 from jidanni/patch-33
Update news.rst
2023-06-29 20:53:14 +00:00
Kristian Evers da767ab699 Add stale GitHub action, as replacement for old stale GitHub integration
Previously we had the "stale bot" which posted reminders in inactive
issues and PR's. The stale bot used now removed functionality of GitHub
and it hasn't worked for about a year. This commit introduces the same
functionality based on GitHub Actions. The action setup is grabbed from
the QGIS project and adapted to the PROJ project.

With the stale action in place, PR's and issues are marked "stale" after
60 days of inactivity. If 7 more days passes without any activity the
issue or PR is closed.
2023-06-29 09:51:23 +02:00
Jean-Christophe Malapert 6cbedee694 Add new projection : Mercator (Spherical) 2023-06-26 16:00:45 +02:00
Jean-Christophe Malapert d1f955f622 Update build_db_from_iau.py
Update IAU script according to https://github.com/opengeospatial/Planetary-DWG/blob/main/draft_crs_definitions/proposal001.adoc from issue opengeospatial/Planetary-DWG#5
2023-06-26 14:35:30 +02:00
Even Rouault 2504995b86 omerc.rst: fix example (fixes #3794) 2023-06-25 16:39:36 +02:00
Even Rouault 8ddd640337 Merge pull request #3760 from rouault/proj_ini_defaults
proj.ini: set default values of parameter to be consistent, and some …
2023-06-25 16:29:03 +02:00
Even Rouault fbe4a45d8e Merge pull request #3750 from rouault/fix_3749
omerc: catch invalid value of gamma (when specified without alpha)
2023-06-25 16:28:51 +02:00
Even Rouault df8e98a220 Merge pull request #3762 from rouault/ad660a83982ec1cf85320f19036efbc16c9f00a1_fix
Fix proj-config.cmake to not try including proj4-targets.cmake in INSTALL_LEGACY_CMAKE_FILES=OFF mode
2023-06-23 23:59:57 +02:00
Even Rouault c0cc3ab4cc Fix proj-config.cmake to not try including proj4-targets.cmake in INSTALL_LEGACY_CMAKE_FILES=OFF mode
This is a follow-up to ad660a8398
2023-06-23 23:02:06 +02:00
積丹尼 Dan Jacobson 17cfd85ecc Always use the cleanest examples.
Move repetitive default into text explanation.

P.S., maybe one day even consider changing the
default +ellps=GRS80 to +ellps=WGS84... but no big deal...
2023-06-23 21:11:30 +08:00
Even Rouault ad8aff89f6 Merge pull request #3758 from jidanni/patch-9
Update ellipsoids.rst to mention default
2023-06-23 13:09:01 +02:00
積丹尼 Dan Jacobson 8dbd4039bd omerc.rst: add comparison with spherical tmerc (#3752) 2023-06-23 13:08:36 +02:00
Even Rouault 6f6bb6d2ea metadata.sql: update PROJ_DATA.VERSION to 1.15 2023-06-23 13:00:34 +02:00
Even Rouault a9467fb4b7 Merge pull request #3748 from rouault/fix_ossfuzz_57328
GeographicBoundingBox::intersection(): avoid infinite recursion and stack overflow on invalid bounding boxes
2023-06-23 12:59:56 +02:00
Mike Taves 641749e872 Docs: refactor Python code for sphinx configuration and extensions (#3761) 2023-06-23 22:58:18 +12:00
Even Rouault 3f43e13920 Merge pull request #3763 from jjimenezshaw/argentinian-geoid
Add Argentinian geoid model filename to grid_alternatives.sql
2023-06-23 12:51:35 +02:00
Javier Jimenez Shaw d5b7883d03 add GEOIDE-Ar16.gri in grid_alternatives.sql as ar_ign_GEOIDE-Ar16.tif 2023-06-23 10:08:18 +02:00
Even Rouault 8409e8e03e GeographicBoundingBox::intersection(): avoid infinite recursion and stack overflow on invalid bounding boxes
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=57328
2023-06-21 22:56:32 +02:00
Even Rouault 8d1e09d5f6 CMake: build fuzzers in standalone mode as part of BUILD_TESTING 2023-06-21 22:56:32 +02:00
積丹尼 Dan Jacobson 69dea10cd6 Update proj.rst example to modern usage (#3754) 2023-06-19 22:33:20 +02:00
Even Rouault e5779db6e3 proj.ini: set default values of parameter to be consistent, and some missing documentation 2023-06-19 22:23:30 +02:00
Even Rouault 683c716899 Merge pull request #3759 from OSGeo/backport-3757-to-master
[Backport master] Remove testing residue
2023-06-19 14:44:49 +02:00
Even Rouault e8432e4696 Merge pull request #3757 from jidanni/patch-8
Remove testing residue
2023-06-19 12:44:00 +00:00
積丹尼 Dan Jacobson 9f022156ca Update ellipsoids.rst to mention default
Declare default.
2023-06-19 20:26:14 +08:00
積丹尼 Dan Jacobson 02e12b45ed Simplify eqc.rst example (#3755) 2023-06-19 14:22:27 +02:00
Even Rouault 09542eca5e omerc: catch invalid value of gamma (when specified without alpha)
Fixes #3749

From the maths of the computation of alpha from gamma, there is a
limitation where the maximum (absolute) value of gamma should be roughly
less than 90° - |lat_0|

New error message:
```
$ bin/proj -I +proj=omerc +lat_0=10  +lonc=10 +gamma=81
proj_create: Error 1027 (Invalid value for an argument): omerc: Invalid value for gamma: given lat_0 value, |gamma| should be <= 80.031869°
Rel. 9.3.0, September 1st, 2023
<proj>:
projection initialization failure
cause: Invalid value for an argument
program abnormally terminated
```
2023-06-17 15:10:07 +02:00
Even Rouault 7e10ddc628 Merge pull request #3747 from rouault/fix_3746
CMake: remove useless cross-compiling related checks (fixes #3746)
2023-06-14 20:02:12 +02:00
Even Rouault 6167e76e13 CMake: remove useless cross-compiling related checks (fixes #3746) 2023-06-13 16:47:31 +02:00
Mike Taves 9d1a1a9ca1 CMake: add /disabled_workflows/ to CPACK_SOURCE_IGNORE_FILES [ci skip] 2023-06-01 20:25:58 +12:00
Kristian Evers 3df0c00439 Update website for 9.2.1 release 2023-06-01 09:41:47 +02:00
Even Rouault 1600a3a843 Merge pull request #3743 from mwtoews/doc-build-cleanup
Doc/CI: Transition to ReadTheDocs, clean-up previous methods
2023-05-31 19:44:52 +02:00
Even Rouault 970a0f7cbb Merge pull request #3744 from mwtoews/travis-ci-doc-build
CI: Clean-up Travis CI scripts and files related to publishing docs
2023-05-31 19:40:41 +02:00
Even Rouault cffe10ef3c Merge pull request #3741 from rouault/mercator_spherical
Implement EPSG:1026 Mercator (Spherical) method
2023-05-31 19:40:06 +02:00
Mike Taves 357f5f24b6 Doc/CI: Transition to ReadTheDocs, clean-up previous methods
- Remove HTML references to PDF documentation
- Update HOWTO-RELEASE with new steps
- Clean-up GitHub doc workflow
2023-05-29 09:00:11 +12:00
Mike Taves 8502ca7653 CI: Clean-up Travis CI scripts and files related to publishing docs 2023-05-29 08:58:34 +12:00
Even Rouault 2ba6637317 Map EPSG:1026 Mercator (Spherical) method to +proj=merc +R_C 2023-05-25 14:54:17 +02:00
Even Rouault d069819884 Add +R_C as an ellipsoid spherification parameter to use the radius of the conformal sphere 2023-05-25 14:53:53 +02:00
Kristian Evers 4c3b426405 Update NEWS for 9.2.1 release 2023-05-24 21:20:08 +02:00
Even Rouault a107fa25e1 Merge pull request #3738 from kbevers/dk_sdfi_grids
Add Danish grid files to grid_alternatives
2023-05-24 13:18:04 +02:00
Even Rouault 252e8a2158 Merge pull request #3736 from rouault/fix_3732
tinshift: raise maximum size of JSON file to 100 MB (fixes #3732)
2023-05-23 15:54:13 +02:00
Kristian Evers be2e26efdb Add Danish grid files to grid_alternatives 2023-05-23 12:37:16 +02:00
Even Rouault 91748f84b6 tinshift: raise maximum size of JSON file to 100 MB (fixes #3732)
Loading a 60 MB JSON file takes ~ 3 seconds on a release build, and
consumes ~ 1.3 GB RAM according to Valgrind
2023-05-16 19:01:55 +02:00
Even Rouault f4a63f43af Merge pull request #3730 from rouault/only_best_error_set
proj_trans(): set PROJ_ERR_COORD_TRANSFM_NO_OPERATION error when failing in ONLY_BEST=YES mode
2023-05-16 11:13:43 +02:00
Even Rouault 90a9f3f970 Merge pull request #3729 from rouault/crs_to_crs_geocentric_crs
cs2cs / proj_create_crs_to_crs(): fix regression with geocentric CRS
2023-05-16 11:13:35 +02:00
Even Rouault 852f3c4ce3 Merge pull request #3731 from rouault/epsg_10_088
Database: update to EPSG 10.088
2023-05-16 11:13:15 +02:00
Even Rouault f5a4a3a6ac Add support for EPSG:1102 'Lambert Conic Conformal (1SP variant B)' method, and import related EPSG records 2023-05-14 16:11:54 +02:00
Even Rouault e6e3a2faff Database: update to EPSG 10.088
The import script has been modified to avoid import errors on the
following Danish CRS:
- Skipping EPSG:10258 GS reconstruction east-orientated as we do not handle yet projection method EPSG:1102 / Lambert Conic Conformal (1SP variant B)
- Skipping EPSG:10262 GSB reconstruction east-orientated as we do not handle yet projection method EPSG:1102 / Lambert Conic Conformal (1SP variant B)
- Skipping EPSG:10266 KK reconstruction east-orientated as we do not handle yet projection method EPSG:1102 / Lambert Conic Conformal (1SP variant B)
2023-05-13 19:06:28 +02:00
Even Rouault c19cc0838e proj_trans(): set PROJ_ERR_COORD_TRANSFM_NO_OPERATION error when failing in ONLY_BEST=YES mode 2023-05-13 18:03:53 +02:00
Even Rouault fc456d9f23 Doc: proj_create_crs_to_crs_from_pj(): formatting fix 2023-05-13 13:10:58 +02:00
Even Rouault 190bfb245a cs2cs / proj_create_crs_to_crs(): fix regression with geocentric CRS
Related to use case of https://github.com/OSGeo/gdal/issues/7753

When a transformation involved a datum shift with a grid and a
geocentric CRS as source/target, since PROJ 9.2.0 and the changes for
the only_best mode, even in just warning mode, if the grid of the "best"
transformation was missing, then the transformation would completely
fail, whereas with earlier versions it would fallback to a ballpark
transformation. So restore that mode, and actually enhance the operation
selection logic, by allowing to select operations based on their area of
validity even if the input coordinate are geocentric (in which case a
conversion of them to geographic is done).
2023-05-13 01:19:58 +02:00
Even Rouault 9d3737bd59 Merge pull request #3727 from rouault/fix_3725
CRS instanciation from PROJ.4 string: set 'Unknown based on XXXX ellipsoid' datum name...
2023-05-12 18:15:42 +02:00
Even Rouault 964d4da3da CRS instanciation from PROJ.4 string: set 'Unknown based on XXXX ellipsoid' datum name...
...when instanciating from known +a,+rf

and change WGS84 -> WGS 84 and GRS80 -> GRS 1980 to use EPSG names
when building from +ellps=WGS84/GRS80 (fixes #3725)

Now we get
```
$ bin/projinfo  "+proj=geos +lon_0=0 +h=35786400 +ellps=WGS84 +units=m +sweep=y +no_defs +type=crs"
PROJ.4 string:
+proj=geos +lon_0=0 +h=35786400 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs +type=crs

WKT2:2019 string:
PROJCRS["unknown",
    BASEGEOGCRS["unknown",
        DATUM["Unknown based on WGS 84 ellipsoid",
            ELLIPSOID["WGS 84",6378137,298.257223563,
                LENGTHUNIT["metre",1],
                ID["EPSG",7030]]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8901]]],
    CONVERSION["unknown",
        METHOD["Geostationary Satellite (Sweep Y)"],
        PARAMETER["Longitude of natural origin",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8802]],
        PARAMETER["Satellite Height",35786400,
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]],
        PARAMETER["False easting",0,
            LENGTHUNIT["metre",1],
            ID["EPSG",8806]],
        PARAMETER["False northing",0,
            LENGTHUNIT["metre",1],
            ID["EPSG",8807]]],
    CS[Cartesian,2],
        AXIS["(E)",east,
            ORDER[1],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]],
        AXIS["(N)",north,
            ORDER[2],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]]]

$ bin/projinfo  "+proj=geos +lon_0=0 +h=35786400 +a=6378137.0 +rf=298.257223563 +units=m +sweep=y +no_defs +type=crs"
PROJ.4 string:
+proj=geos +lon_0=0 +h=35786400 +x_0=0 +y_0=0 +ellps=WGS84 +units=m +no_defs +type=crs

WKT2:2019 string:
PROJCRS["unknown",
    BASEGEOGCRS["unknown",
        DATUM["Unknown based on WGS 84 ellipsoid",
            ELLIPSOID["WGS 84",6378137,298.257223563,
                LENGTHUNIT["metre",1,
                    ID["EPSG",9001]]]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8901]]],
    CONVERSION["unknown",
        METHOD["Geostationary Satellite (Sweep Y)"],
        PARAMETER["Longitude of natural origin",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8802]],
        PARAMETER["Satellite Height",35786400,
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]],
        PARAMETER["False easting",0,
            LENGTHUNIT["metre",1],
            ID["EPSG",8806]],
        PARAMETER["False northing",0,
            LENGTHUNIT["metre",1],
            ID["EPSG",8807]]],
    CS[Cartesian,2],
        AXIS["(E)",east,
            ORDER[1],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]],
        AXIS["(N)",north,
            ORDER[2],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]]]
```
2023-05-11 12:14:51 +02:00
Even Rouault cfed44da80 Merge pull request #3724 from rouault/fix_test_gdalwarp_lib_135
Fix unreleased regression related to 78d563c97f, that caused GDAL's test_gdalwarp_lib_135 test to fail
2023-05-11 11:36:42 +02:00
Even Rouault e1b006e20c Fix unreleased regression related to 78d563c97f, that caused GDAL's test_gdalwarp_lib_135 test to fail 2023-05-10 19:51:23 +02:00
Even Rouault 03fac0e716 Merge pull request #3720 from rouault/esri_polar_stereographic
ESRI WKT: improve roundtrip of name and definition for UPS WGS84 CRS
2023-05-09 14:35:16 +02:00
Even Rouault ab15a811b5 Merge pull request #3721 from rouault/epsg_10_087
Database: update to EPSG 10.087
2023-05-09 01:10:01 +02:00
Even Rouault d04cd211a5 Database: update to EPSG 10.087 2023-05-07 23:08:38 +02:00
Even Rouault aab4742353 WKT ESRI: recognize Polar_Stereographic_Variant_A method name which is used in the official ESRI formulation of EPSG:5041 and EPSG:5042 2023-05-07 22:53:02 +02:00
Even Rouault 720e728b95 Import from ESRI WKT: remove special case of renaming UPS_North / UPS_South which appears to be undesirable 2023-05-07 22:42:55 +02:00
Even Rouault 20cd53c643 Merge pull request #3718 from rouault/document_wintri_validity_domain
Add code comment about likely domain of validity for wintri in +over mode
2023-05-02 19:14:15 +02:00
Mike Taves 2954fdb470 CI: use PROJ_DB_CACHE_DIR (#3717) 2023-05-02 19:14:00 +02:00
Even Rouault 55a22c9977 Add code comment about likely domain of validity for wintri in +over mode
Capitalizes on investigation done in
https://lists.osgeo.org/pipermail/gdal-dev/2023-April/057164.html
2023-04-30 15:47:23 +02:00
Even Rouault 653a94b4ba Merge pull request #3715 from rouault/epsg_10_086
Database: update to EPSG 10.086
2023-04-30 14:02:33 +02:00
Even Rouault 408cb116e3 Database: update to EPSG 10.086 2023-04-29 19:10:31 +02:00
Even Rouault 748c943774 Merge pull request #3712 from mwtoews/vcpkg-2023.04.15
CI: upgrade vcpkg tag used for AppVeyor; use --triplet option
2023-04-29 11:35:38 +02:00
Even Rouault fb505f4bc2 Merge pull request #3711 from mwtoews/proj-db-cache-dir
CMake: add PROJ_DB_CACHE_DIR
2023-04-29 11:33:36 +02:00
Mike Taves b1a83e514f resolve MSVC warnings C4800 2023-04-27 12:43:03 +12:00
Mike Taves 4d5923edb1 CI: upgrade vcpkg tag used for AppVeyor; use --triplet option 2023-04-27 11:56:56 +12:00
Mike Taves 4d56195e15 CMake: add PROJ_DB_CACHE_DIR 2023-04-27 09:46:33 +12:00
Even Rouault 700721eeaf Merge pull request #3707 from rouault/fix_crs_to_crs_warn_only_best
proj_create_crs_to_crs(): restore behaviour of PROJ 9.1
2023-04-19 22:00:24 +02:00
Even Rouault 977ce13070 Merge pull request #3705 from rouault/fix_3593
Add C++ API to transform coordinate and a C++ quickstart
2023-04-19 22:00:16 +02:00
Even Rouault 78d563c97f proj_create_crs_to_crs(): restore behaviour of PROJ 9.1
Fixes https://lists.osgeo.org/pipermail/proj/2023-April/011003.html
that is ``cs2cs EPSG:4326+5773 EPSG:4326+5782`` without grids available.

Fixes situations where getting operations in PROJ_GRID_AVAILABILITY_KNOWN_AVAILABLE
mode returns one single gridded operations where the grid isn't available or
a ballpark operation.
We retry in PROJ_GRID_AVAILABILITY_DISCARD_OPERATION_IF_MISSING_GRID
mode to get a potential ballpark operation.

Follow-up to similar fix of https://github.com/OSGeo/PROJ/pull/3614
2023-04-12 19:25:49 +02:00
Even Rouault b214363f78 DatabaseContext::lookForGridInfo(): deal with special 'null' grid 2023-04-12 18:53:31 +02:00
Even Rouault 4ed5050e3e createOperationsVertToVert(): assign an extent 2023-04-12 18:15:43 +02:00
Even Rouault 66dbb7f58b Doc: add a C++ quickstart (fixes #3593) 2023-04-09 23:12:19 +02:00
Even Rouault 54ad4d839b Add build support for the examples/ programs (disabled by default, unless -D BUILD_EXAMPLES=ON is set) 2023-04-09 23:12:19 +02:00
Even Rouault ed4e798b7c CMakeLists.txt: distribute examples 2023-04-09 23:12:19 +02:00
Even Rouault f7c90ff243 pj_obs_api_mini_demo.c: remove header comments non-essential IMHO for the beginner and reflecting more historical evolution 2023-04-09 23:12:18 +02:00
Even Rouault 827130b754 Doc: remove empty page 2023-04-09 22:34:51 +02:00
Even Rouault fb682763e1 C++ API: add a CoordinateTransformer class, and CoordinateOperation::coordinateTransformer() (refs #3593) 2023-04-09 22:34:51 +02:00
Even Rouault 04615b8dbe Fix code format 2023-04-09 20:23:03 +02:00
Even Rouault b6a0cfa3ae Merge pull request #3645 from AndrewAnnex/add_mercator_to_build_db_from_iau.py
Adds Pseudo Mercator to build_db_from_iau.py
2023-04-07 20:02:48 +02:00
Even Rouault da96db32a2 Database: refresh IAU CRS with addition of Pseudo Mercator ones 2023-04-07 18:08:18 +02:00
Even Rouault b147211021 Merge pull request #3697 from rouault/fix_3696
CMake: avoid imbalanced cmake_policy push/pop if TIFF or CURL dependency cannot be found (fixes #3696)
2023-04-06 22:08:11 +02:00
Even Rouault f39d49a649 Merge pull request #3700 from kannes/patch-1
Fix typo "geograpic" -> "geographic" in logging/error output
2023-04-05 11:32:33 +02:00
Hannes 79e0911e1d Fix typo "geograpic" -> "geographic" in logging/error output 2023-04-05 11:14:47 +02:00
Even Rouault efe1863bf8 Merge pull request #3695 from rouault/fix_3689
PROJJSON: fix import/export of integer parameter value, and deal with…
2023-04-04 11:27:33 +02:00
Even Rouault 52285e9a1d Merge pull request #3694 from rouault/nc_new_grids
Database: register grids for New Caledonia (added per https://github.com/OSGeo/PROJ-data/pull/99) and tune createOperations()
2023-04-04 11:27:22 +02:00
Even Rouault f5fb59b792 CMake: avoid imbalanced cmake_policy push/pop if TIFF or CURL dependency cannot be found (fixes #3696) 2023-04-04 11:24:01 +02:00
Even Rouault 9f577f35a3 PROJJSON: fix import/export of integer parameter value, and deal with interpolation CRS parameters in conversions (fixes #3689) 2023-04-02 16:41:48 +02:00
Even Rouault a1cc07aa2c createOperations(): tune to get better results in some cases, typically RGNC91-93 to RGNC15 2023-04-01 23:41:54 +02:00
Even Rouault dcbf5a0fad Database: register grids for New Caledonia (added per https://github.com/OSGeo/PROJ-data/pull/99) 2023-04-01 20:59:22 +02:00
Even Rouault bed19dec2e Merge pull request #3692 from rouault/epsg_10_085
Database: update to EPSG 10.085
2023-04-01 20:48:26 +02:00
Even Rouault 163274c512 Database: update to EPSG 10.085 2023-04-01 18:51:39 +02:00
Even Rouault 285b4dcebe Merge pull request #3685 from rouault/engineering_crs_comparisons
EngineeringCRS: make proj_create_engineering_crs() set a datum name, …
2023-04-01 17:37:35 +02:00
Even Rouault 8806a9239d Merge pull request #3686 from rouault/register_HeTa2010
Database: register Hessen HeTA2010 grid (cf OSGeo/PROJ-data#98)
2023-04-01 17:37:20 +02:00
Even Rouault 2b43975eb8 Database: register Hessen HeTA2010 grid (cf OSGeo/PROJ-data#98) 2023-03-28 21:46:16 +02:00
Even Rouault 324954b648 EngineeringCRS: make proj_create_engineering_crs() set a datum name, and relax isEquivalentTo() comparisons to deal with case of https://github.com/r-spatial/sf/issues/2049#issuecomment-1486600723 2023-03-28 13:34:05 +02:00
Even Rouault bafe3a9190 Merge pull request #3678 from rouault/fix_gdal_7505
Database: add alias for old ESRI datum/CRS names of EPSG:8353 S_JTSK_JTSK03_Krovak_East_North
2023-03-24 14:55:42 +01:00
Even Rouault 7558e51526 Merge pull request #3674 from rouault/doc_search_fix
Doc: fix search functionnality
2023-03-24 01:28:51 +01:00
Even Rouault d8608e094c Database: add alias for old ESRI datum/CRS names of EPSG:8353 S_JTSK_JTSK03_Krovak_East_North
Fixes https://github.com/OSGeo/gdal/issues/7505
2023-03-24 01:27:21 +01:00
Even Rouault fd1b61e71c Doc: fix search functionnality 2023-03-22 20:13:43 +01:00
Even Rouault ec3415df96 Merge pull request #3673 from rouault/filter_concat_op
Coord. operation factory: count identified concatenated operations as a single step
2023-03-22 20:03:40 +01:00
Even Rouault aa111e7307 Merge pull request #3672 from rouault/concatenated_accuracy
WKT/PROJJSON: import/export accuracy of ConcatenatedOperation
2023-03-22 20:03:31 +01:00
Even Rouault 84ae96c0da Merge pull request #3668 from rouault/hydroid_height
vgridshift/gridshift: accept hydroid_height as valid band description
2023-03-22 20:03:19 +01:00
Even Rouault 1e39be3253 Coord. operation factory: count identified concatenated operations as a single step 2023-03-22 13:52:03 +01:00
Even Rouault 05a497d7ed WKT/PROJJSON: import/export accuracy of ConcatenatedOperation
Bump PROJJSON spec to v0.7
2023-03-22 13:39:41 +01:00
Even Rouault f5fc71e987 vgridshift/gridshift: accept hydroid_height as valid band description 2023-03-17 13:32:11 +01:00
Even Rouault c31146bee2 Merge pull request #3665 from rouault/ghcr_proj_docs
Use ghcr.io/osgeo/proj-docs as Docker hub is sunsetting free organizations (refs OSGeo/gdal#7447)
2023-03-16 21:19:26 +01:00
Even Rouault 7ec375946d Use ghcr.io/osgeo/proj-docs as Docker hub is sunsetting free organizations (refs OSGeo/gdal#7447) 2023-03-15 23:28:47 +01:00
Even Rouault c0a3b1d86a [Lint] projinfo: use const reference for for argument (CID 396530) 2023-03-12 19:26:46 +01:00
Even Rouault 4975df9000 .github/workflows/backport.yml: update with a BACKPORT_TOKEN from my (Even Rouault) account that has write permissions 2023-03-11 15:49:01 +01:00
Even Rouault ae45f2bac6 Merge pull request #3661 from rouault/fix_slow_proj_trans
[Performance regression fix] Fix slowness on proj_trans() on WGS 84 <--> NAD83 conversions
2023-03-11 12:59:57 +01:00
Even Rouault d9503987db [Performance regression fix] Fix slowness on proj_trans() on WGS 84 <--> NAD83 conversions
Fix performance regression of 9.2.0 due to
proj_coordoperation_is_instantiable() being potentially called at each
point transformation and being a slow operation, due to calling
exportToPROJString()
2023-03-10 21:30:46 +01:00
Even Rouault cf8ff02250 Merge pull request #3658 from mwtoews/upgrade-other-ci
CI: update other actions, use apt-get for scripts
2023-03-09 18:20:29 +01:00
Even Rouault 09a1077acc Merge pull request #3656 from rouault/fix_3654
PROJ string CRS parser: make sure that PROJ arguments of the rotated …
2023-03-09 18:19:36 +01:00
Mike Taves 963dfe93c3 CI: update other actions, use apt-get for scripts 2023-03-09 15:51:03 +13:00
Mike Taves 9f089df2b6 CI: update ubuntu images, actions/checkout, actions/cache, unique job IDs (#3649) 2023-03-09 12:20:43 +13:00
Even Rouault 0bd89d6617 PROJ string CRS parser: make sure that PROJ arguments of the rotated string are kept in the WKT representation (fixes #3654) 2023-03-08 22:08:28 +01:00
Even Rouault aab966a70c Merge pull request #3652 from rouault/fix_3651
proj_create_operations(): fix documentation related to 3D transformations (fixes #3651)
2023-03-08 21:21:13 +01:00
Even Rouault eba976b257 proj_create_operations(): fix documentation related to 3D transformations (fixes #3651)
The behaviour was changed per 3e7984f3b2
in 9.1.0
2023-03-08 12:45:17 +01:00
Even Rouault 25ca424211 Merge pull request #3648 from mwtoews/upgrade-csa
Update clang static analyzer CI and docs for ubuntu-22.04
2023-03-07 15:04:51 +01:00
Even Rouault c22d1e0eb1 Merge pull request #3646 from rouault/epsg_10_084
Database: update to EPSG 10.084
2023-03-07 15:04:40 +01:00
Even Rouault 13b6221293 pj_open_lib_internal(): rework to avoid false positive warnings of Coverity Scan / CSA about nullptr dereference 2023-03-07 12:13:35 +01:00
Mike Taves f8216267fe Update clang static analyzer CI and docs for ubuntu-22.04 2023-03-07 23:15:39 +13:00
Even Rouault 012792dd1c Database: update to EPSG 10.084 2023-03-07 10:52:25 +01:00
Even Rouault 6e027ed254 Merge pull request #3643 from rouault/epsg_10_083
Database: update to EPSG 10.083
2023-03-07 10:42:25 +01:00
Andrew Annex 99267d1de3 Adds Pseudo Mercator to build_db_from_iau.py
Note there is some inconsistency with hyphenation of "Pseudo-Mercator"
so this may need a double check, but I believe what I have is consistent
with EPSG:3857 WKT2:2019 representation.
2023-03-05 16:16:56 -08:00
Even Rouault a4caae4662 Merge pull request #3642 from rouault/fix_3639
Fix build errors with Cygwin (fixes #3639)
2023-03-06 00:13:45 +01:00
Even Rouault 5329f80b32 Fix build errors with Cygwin (fixes #3639) 2023-03-05 18:08:13 +01:00
Even Rouault 7ecb817ae3 Database: update to EPSG 10.083 2023-03-05 18:07:33 +01:00
Even Rouault bccfd804f8 testvarious: do not output program name / versoin number 2023-03-05 18:05:03 +01:00
Even Rouault c6d07712f6 Merge pull request #3640 from VTCAKAVSMoACE/patch-1
Fuzzer: indicate discarded inputs
2023-03-05 15:07:18 +01:00
Kristian Evers 3e6f080ecd Bump version numbers in anticipation of 9.3.0 release 2023-03-01 11:20:25 +01:00
Kristian Evers 0dac3480d4 Update website for 9.2.0 release 2023-03-01 10:51:13 +01:00
Addison Crump 1a8e9032ff Fuzzer: indicate discarded inputs 2023-02-28 19:05:40 +01:00
Even Rouault 2131c714eb Merge pull request #3636 from rouault/nad83_3d_as_wkt1_esri
WKT_ESRI export: do not export NAD83 3D as NAD83(HARN)
2023-02-23 20:03:10 +01:00
Even Rouault 407cb7b4fe Merge pull request #3635 from rouault/fix_3629
Database: add explicit casts to make sure all arms of columns selected by views have the same type affinity
2023-02-23 19:34:41 +01:00
Even Rouault de9842796f WKT_ESRI export: do not export NAD83 3D as NAD83(HARN) 2023-02-23 18:37:54 +01:00
Even Rouault d76b48e700 Database: add explicit casts to make sure all arms of columns selected by views have the same type affinity
This fixes the performance regression noticed with SQLite 3.41.0 both on
the microbenchmark of https://sqlite.org/forum/forumpost/bcc4375032 as
well with ``proj_test_cpp_api``

Fixes #3629
2023-02-23 17:20:05 +01:00
Even Rouault b302ae7dc1 Merge pull request #3633 from rouault/fix_3632
JSON/WKT: avoid precision issues on non-Intel architectures on coordinate epochs (fixes #3632)
2023-02-23 17:04:29 +01:00
Even Rouault fa8f46ce95 test: proj_create_crs_to_crs_from_pj_force_over(): avoid use of uninitialized memory 2023-02-23 14:56:59 +01:00
Even Rouault 7b0af478fb test/unit/test_io.cpp: change tests to avoid fp issues on some architectures (fixes #3632) 2023-02-22 20:11:24 +01:00
Even Rouault 8aafc3da3d JSON/WKT: avoid precision issues on non-Intel architectures on coordinate epochs (fixes #3632) 2023-02-22 18:30:30 +01:00
Even Rouault 9e359fbac4 Merge pull request #3630 from rouault/NEWS_fix
NEWS: move bug fix mention from 9.1.1 to 9.2.0
2023-02-22 16:16:04 +01:00
Even Rouault 698a3a558c NEWS: move bug fix mention from 9.1.1 to 9.2.0 2023-02-22 15:52:46 +01:00
Kristian Evers 8e7a55d37e Bump PROJ-data version in docs 2023-02-22 14:48:19 +01:00
Kristian Evers 7b334ef21a Update CITATION's for 2023 and 9.2.0 2023-02-22 14:48:19 +01:00
Kristian Evers d1eab48f4e Update man-pages from Sphinx-docs 2023-02-22 14:48:19 +01:00
Kristian Evers df35be6b4a Update man-pages from Sphinx-docs 2023-02-22 14:48:19 +01:00
Kristian Evers c0480770b1 Update NEWS for 9.2.0 release 2023-02-22 14:48:19 +01:00
Kristian Evers 06eb36f662 Use correct release version (9.1.1) in NEWS 2023-02-22 14:48:19 +01:00
Kristian Evers de7924f1ef Update NEWS for 9.1.1 release 2023-02-22 14:48:19 +01:00
Even Rouault 3ab636a255 isea.cpp: add comment about inverse 2023-02-22 12:48:21 +01:00
Kristian Evers 7e0c4ccf30 Merge pull request #3627 from twpayne/go-bindings
bindings: Use github.com/twpayne/go-proj for Go bindings
2023-02-22 10:41:03 +01:00
Tom Payne c20199204e bindings: Use github.com/twpayne/go-proj for Go bindings
github.com/everystreet/go-proj seems to be no longer maintained, and
github.com/twpayne/go-proj provides much more functionality.
2023-02-21 17:08:13 +01:00
Even Rouault c74c9573bd Merge pull request #3625 from rouault/fix_2152
Inverse eck4: add checks for projection domain (fixes #2152)
2023-02-21 13:29:24 +01:00
Even Rouault df54730441 Merge pull request #3626 from rouault/spheroid_inf
WKT1 parser: support inf as inverse flattening value (fixes Toblerity/Fiona@1208)
2023-02-21 13:29:14 +01:00
Even Rouault 087993ee6e WKT1 parser: support inf as inverse flattening value (fixes Toblerity/Fiona@1208)
Some WKT in the wild use "inf" in Shapefile .prj. Cf SPHEROID["unnamed",6370997,"inf"]
in https://zenodo.org/record/3878979#.Y_P4g4CZNH4,
https://zenodo.org/record/5831940#.Y_P4i4CZNH5
or https://grasswiki.osgeo.org/wiki/Marine_Science
2023-02-21 00:07:17 +01:00
Even Rouault f6e8478e61 Fix clang-tidy -checks=performance-inefficient-string-concatenation in library and apps codee 2023-02-19 13:10:49 +01:00
Even Rouault 22b84838ec .github/workflows/mac/before_install.sh: add pkg-config 2023-02-19 13:10:26 +01:00
Even Rouault c6c7f02915 Inverse eck4: add checks for projection domain (fixes #2152) 2023-02-18 19:53:02 +01:00
Even Rouault 4198920b10 eck4.cpp: improve code readability. No computation changes 2023-02-18 19:53:02 +01:00
Even Rouault b9198df550 .github/workflows/mac/before_install.sh: add pkg-config 2023-02-18 19:53:02 +01:00
Even Rouault 23a8eccf9e Merge pull request #3624 from rouault/fix_3623
createOperations(): avoid very poor performance / 'Too deep recursion in createOperations()' on a geographic CRS whose datum name is the alias of an official one (fixes #3623)
2023-02-16 21:24:02 +01:00
Even Rouault 40f96fb6e4 createOperations(): improve datum equivalence checking by passing databaseContext argument (refs #3623) 2023-02-16 16:01:31 +01:00
Even Rouault 62d5718c5d createOperations(): avoid very poor performance / 'Too deep recursion in createOperations()' on a geographic CRS whose datum name is the alias of an official one (fixes #3623)
Fixes regression introduced per https://github.com/OSGeo/PROJ/commit/29e9f73f9a2db5352baea7c4af08941680d102b8
2023-02-16 15:15:06 +01:00
Even Rouault 9a5042545d pj_get_suggested_operation(): avoid string comparisons by precomputing a boolean 2023-02-14 15:31:33 +01:00
Even Rouault 59c9812481 Merge pull request #3621 from rouault/pj_get_suggested_operation_tune
pj_get_suggested_operation(): tune for GDA94 <--> WGS84 and GDA2020 <…-> WGS84
2023-02-14 12:23:33 +01:00
Even Rouault e1f0b75fbb pj_get_suggested_operation(): tune for GDA94 <--> WGS84 and GDA2020 <--> WGS84
Before this change, the
au_icsm_GDA94_GDA2020_conformal_and_distortion.tif was considered as the
best operation for GDA94 <--> WGS84 and GDA2020 <--> WGS84. This change
makes the null transformation be the prefered one instead.
Applying the GDA94 <--> GDA2020 grid was highly questionable GDA2020 <--> WGS84.
Not completely sure for GDA94 <--> WGS84 though...

Relates to https://github.com/qgis/QGIS/issues/51792
2023-02-12 01:06:44 +01:00
Even Rouault c855964929 Merge pull request #3620 from rouault/fix_proj_pj_info
proj_pj_info(): make it behave like before ONLY_BEST addition (fixes #3619)
2023-02-11 13:24:23 +01:00
Even Rouault aa1a6beeb0 proj_pj_info(): make it behave like before ONLY_BEST addition (fixes #3619) 2023-02-11 03:36:50 +01:00
Even Rouault 049e8d46ae Merge pull request #3618 from rouault/fix_gdal_7210
WKT1 parser: only emit warning when encountering invalid UNKNOWN WKT1 axis direction (fixes #7210)
2023-02-10 20:24:07 +01:00
David Hoese 1be6e21a92 Add explicit NaN handling to proj_trans and gie (#3603) (fixes #3596) 2023-02-10 20:23:53 +01:00
Even Rouault da766b983a WKT1 parser: only emit warning when encountering invalid UNKNOWN WKT1 axis direction (fixes #7210) 2023-02-10 00:03:55 +01:00
Even Rouault 7704c3e1d5 Merge pull request #3615 from jjimenezshaw/missing-parenthesis
Doc: typo - missing parenthesis
2023-02-07 20:10:55 +01:00
Even Rouault 88d34d115f Merge pull request #3614 from rouault/fix_3613
proj_create_crs_to_crs(): restore behaviour of PROJ 9.1 (fixes #3613)
2023-02-07 20:10:33 +01:00
Javier Jimenez Shaw ba04ab7ad9 Doc: typo - missing parenthesis 2023-02-07 13:54:54 +01:00
Even Rouault 7ab4f6d54c proj_create_crs_to_crs(): restore behaviour of PROJ 9.1 (fixes #3613)
Fixes situations where getting operations in PROJ_GRID_AVAILABILITY_KNOWN_AVAILABLE
mode returns only gridded operations where the grids aren't available or
ballpark operations.
We retry in PROJ_GRID_AVAILABILITY_DISCARD_OPERATION_IF_MISSING_GRID
mode to get potential other transformations using CRS intermediates.
2023-02-07 13:09:42 +01:00
Kristian Evers 9b60d79c42 Merge pull request #3611 from heidivanparys/osgeo4w_installation
Update link to OSGeo4W Installer
2023-02-06 17:46:19 +01:00
Heidi Vanparys f169c49f16 Update link to OSGeo4W Installer 2023-02-06 17:00:01 +01:00
Even Rouault 667d6ae812 Merge pull request #3610 from AlexBass05/add-slovenia-geoid-model
Add Slovenian geoid model SLO-VRP2016/Koper
2023-02-06 15:28:17 +01:00
Even Rouault 421e4877fe Merge pull request #3609 from rouault/epsg_10_082
Database: update to EPSG 10.082
2023-02-06 13:07:40 +01:00
Even Rouault 0f2ac149a7 Merge pull request #3608 from rouault/fix_3607
proj_trans(): restore behaviour of PROJ 9.1 with transforming points …
2023-02-06 13:07:19 +01:00
Alexander Nehrbass fc5924452b Add Slovenian geoid model SLO-VRP2016/Koper 2023-02-06 11:39:36 +01:00
Even Rouault a7482d3775 Database: update to EPSG 10.082 2023-02-06 02:16:43 +01:00
Even Rouault 659572e544 proj_trans(): restore behaviour of PROJ 9.1 with transforming points in northern USA states from NAD27 to WGS 84 when no grid is available
Fixes #3607 and regression of d11c9d5
2023-02-05 15:00:37 +01:00
Even Rouault 976f8f943c Merge pull request #3606 from rouault/rtd_skip
.readthedocs.yaml: do not do builds only if the only changes are in docs/ or .readthedocs.yaml
2023-02-05 13:44:55 +01:00
Even Rouault 7bda88ce18 .readthedocs.yaml: do not do builds only if the only changes are in docs/ or .readthedocs.yaml
A substantial part of the API documentation comes from Doxygen &
Breathe, and thus depends on changes in src/
2023-02-04 16:20:14 +01:00
Even Rouault e5df93f820 Merge pull request #3604 from rouault/double_hyphen_merge
Doc: Prevent double hypen (--) to be replaced by Unicode long dash character
2023-02-04 14:47:36 +01:00
Even Rouault 8cd7be4802 Merge pull request #3601 from rouault/fix_source_crs
projinfo: fix long option name --source-crs (fixes #3600)
2023-02-04 14:47:24 +01:00
Even Rouault f5aa9c9868 Doc: Prevent double hypen (--) to be replaced by Unicode long dash character 2023-02-03 18:41:17 +01:00
Even Rouault 8c9cafc14f projinfo: fix long option name --source-crs (fixes #3600)
spotted by @santidhammo
2023-02-02 22:05:43 +01:00
Javier Jimenez Shaw 29eaa0de9b implement normalizeForVisualization for BoundCRS (#3598) 2023-02-02 21:15:20 +01:00
Even Rouault c3c276b06d Merge pull request #3595 from rouault/fix_3594
pj_get_suggested_operation(): handle longitudes outside of [-180,180]…
2023-01-27 13:21:30 +01:00
Even Rouault 32b04ef99e pj_get_suggested_operation(): handle longitudes outside of [-180,180] for coordinate operation selection (fixes #3594) 2023-01-26 19:25:44 +01:00
Even Rouault f7e8883958 Merge pull request #3590 from rouault/reformat_whole
Whole code-base reformatting
2023-01-26 17:19:13 +01:00
Mike Taves 73d7254d16 README.md: update Travis CI badge [ci skip] 2023-01-26 22:09:23 +13:00
Mike Taves a7801c204a ReadTheDocs: fix branch ref [ci skip] 2023-01-25 23:04:29 +13:00
Mike Taves cee637777b ReadTheDocs: update output directory for artefacts (#3591)
* use more apt, less conda
* show doxygen version
2023-01-25 13:50:41 +13:00
Even Rouault ddbd1089d2 Use explicitly clang-format-15 2023-01-24 15:27:56 +01:00
Even Rouault 46c5097f17 Add aa818d6772 to .git-blame-ignore-revs 2023-01-24 14:51:46 +01:00
Even Rouault reformatting bot aa818d6772 Reformat with clang-format 15 2023-01-24 14:51:21 +01:00
Even Rouault fa7574c6ac Update to clang-format 15 2023-01-24 14:50:51 +01:00
Mike Taves f6107a546f .readthedocs.yaml: improve skipping pattern [ci skip] 2023-01-25 01:23:00 +13:00
Even Rouault cb4e7850f4 README.md: remove appveyor badge [ci skip] 2023-01-24 12:57:08 +01:00
Even Rouault 330f9fa353 test/benchmark/CMakeLists.txt: hopefully fix Conda Windows build failure related to 'warning C4530: C++ exception handler used, but unwind semantics are not enabled. Specify /EHsc' 2023-01-24 11:10:55 +01:00
Even Rouault 2356d9ab58 Add .git-blame-ignore-revs 2023-01-23 20:54:29 +01:00
Even Rouault reformatting bot f090353792 Whole code base reformatting 2023-01-23 20:53:58 +01:00
Even Rouault ae5b08e883 Doc: add a dev_practices.rst page 2023-01-23 20:15:25 +01:00
Even Rouault f017ffc7f0 Add a .pre-commit-config.yaml pre-commit configuration file 2023-01-23 20:02:59 +01:00
Even Rouault 878df58d60 Merge pull request #3515 from oleg-alexandrov/patch-7
Add example for how to use proj_create().
2023-01-23 19:14:17 +01:00
Even Rouault 045f497e00 Merge pull request #3578 from rouault/similarity_transformation
Implement EPSG:9621 'Similarity transformation' and import related tranformations from EPSG
2023-01-23 19:13:24 +01:00
Even Rouault d413b65528 Merge pull request #3579 from rouault/affine_cs
Implement AffineCS and handle it in WKT/PROJJSON
2023-01-23 16:42:39 +01:00
Even Rouault 8726c99d46 Merge pull request #3587 from rouault/no_wgs84_for_epsg_6316
createBoundCRSToWGS84IfPossible(): do not report +towgs84 for a CRS with multiple extents, such as EPSG:6316 (refs #3246)
2023-01-23 16:42:29 +01:00
Even Rouault b83a006a7b Merge pull request #3588 from rouault/proj_get_domain_count
C API: add proj_get_domain_count(), proj_get_area_of_use_ex() and proj_get_scope_ex()
2023-01-23 16:42:11 +01:00
Even Rouault 36226d56a9 C API: add proj_get_domain_count(), proj_get_area_of_use_ex() and proj_get_scope_ex()
Up to now, the C API only handled one single domain/usage par object,
but there are objets in the database that have several ones.

refs #3246
2023-01-23 14:29:37 +01:00
Even Rouault a3d45b7c16 createBoundCRSToWGS84IfPossible(): do not report +towgs84 for a CRS with multiple extents, such as EPSG:6316 (refs #3246) 2023-01-23 14:10:12 +01:00
Even Rouault 0622cf1c62 createBoundCRSToWGS84IfPossible(): factor code. No functional change 2023-01-23 13:20:52 +01:00
Even Rouault 4b50aac202 Implement AffineCS and handle it in WKT/PROJJSON 2023-01-21 21:29:37 +01:00
Even Rouault 8f9b77def9 typo fixes 2023-01-21 18:02:10 +01:00
Even Rouault e174cc2888 Implement EPSG:9621 'Similarity transformation' and import related transformations from EPSG
This is used for a number of projectedCRS -> projectedCRS coordinate
transformations.
2023-01-21 18:00:40 +01:00
Even Rouault e59ea65118 Merge pull request #3577 from rouault/wkt_enum_case_insensitive
WKT import: make axis direction and range meaning enumeration case insensitive as mandated by spec
2023-01-21 15:22:14 +01:00
Even Rouault c11a0baf51 WKT import: make axis direction and range meaning enumeration case insensitive as mandated by spec 2023-01-21 14:19:23 +01:00
Even Rouault 72a88d7cb4 test/unit/test_io.cpp: test importing invalid WKT/JSON with datum anchor, axisminval, axismaxval, rangemeaning 2023-01-21 13:47:10 +01:00
Even Rouault a1c7ae3e19 Merge pull request #3573 from rouault/fix_3571
Update WKT import to support WKT2 corrigendum
2023-01-21 13:21:58 +01:00
Even Rouault 88c3998c97 Merge pull request #3575 from rouault/database_esri_arcgis_pro_3_1
Database: resync ESRI objects with https://github.com/Esri/projection-engine-db-doc at tag v3.1.0
2023-01-21 13:16:24 +01:00
Even Rouault 29fa84237e Merge pull request #3574 from rouault/epsg_10_081
Database: update to EPSG 10.081
2023-01-21 13:13:45 +01:00
Even Rouault e82e52539c Merge pull request #3576 from OSGeo/busstoptaktik-patch-1
Remove dead prototype for pj_qsfn
2023-01-21 12:15:14 +01:00
Thomas Knudsen 2a4096c81c Remove dead prototype for pj_qsfn
pj_qsfn now takes its eccentricity parameters, `e` and `1+e*e`, directly as
function parameters. The old version, taking a pointer to `PJ` was left
in `proj_internal.h`. While not doing any harm there, there's also no
compelling reason to keep it.
2023-01-21 10:56:11 +01:00
Even Rouault a44d84de52 projjson.rst: remove mention of current version which is redundant with history paragraph 2023-01-20 16:07:50 +01:00
Even Rouault c4eae468d6 projjson.rst: remove mention about COORDINATEMETADATA not being implemented 2023-01-20 16:05:09 +01:00
Even Rouault 2ca2ce4c05 Database: resync ESRI objects with https://github.com/Esri/projection-engine-db-doc at tag v3.1.0 2023-01-19 19:49:52 +01:00
Even Rouault 59fef20b67 Add support for minimumValue, maximumValue, rangeMeaning properties in CoordinateSystemAxis, in WKT and PROJJSON (refs #3571) 2023-01-19 18:50:49 +01:00
Even Rouault 52a63a0268 Add support for DatumEpoch property in GeodeticReferenceFrame and VerticalReferenceFrame, in WKT and PROJJSON (refs #3571) 2023-01-19 18:50:49 +01:00
Even Rouault 23483df0dd Database: update to EPSG 10.081 2023-01-19 18:34:28 +01:00
Even Rouault 7a5278c944 Merge pull request #3570 from rouault/fix_3567
Actually fix proj_normalize_for_visualization() on a transformation got with FORCE_OVER=YES (fixes #3567)
2023-01-19 11:21:17 +01:00
Even Rouault e54d4b961d Merge pull request #3569 from rouault/fix_3568
createFromUserInput(): make http://www.opengis.net/def/crs/IAU/2015/XXXX work (fixes #3568)
2023-01-19 11:21:07 +01:00
Even Rouault 86b01b2703 proj_create_from_wkt(): make it work on COORDINATEMETADATA[] 2023-01-19 00:23:47 +01:00
Even Rouault 2ffc5933a5 Merge pull request #3562 from rouault/coordinateMetadata
Initial support for ISO19111 CoordinateMetadata class
2023-01-19 00:02:47 +01:00
Even Rouault 563ad45ec8 Actually fix proj_normalize_for_visualization() on a transformation got with FORCE_OVER=YES (fixes #3567) 2023-01-18 23:58:27 +01:00
Even Rouault d566d01070 createFromUserInput(): make http://www.opengis.net/def/crs/IAU/2015/XXXX work (fixes #3568) 2023-01-18 23:26:12 +01:00
Even Rouault fea8a4df74 Merge pull request #3566 from rouault/typo_fixes
Typo fixes and other changes to make ./scripts/fix_typos.sh happy
2023-01-18 23:00:52 +01:00
Even Rouault 790f0fcac9 Typo fixes and other changes to make ./scripts/fix_typos.sh happy 2023-01-17 23:42:36 +01:00
Even Rouault c41e7a6452 Merge pull request #3559 from rouault/tmg
Add correctly named createTunisiaMiningGrid() / proj_create_conversion_tunisia_mining_grid()…
2023-01-16 22:20:21 +01:00
Even Rouault 33f1914697 CoordinateMetadata: require epoch for dynamic CRS, forbid it for static CRS 2023-01-14 21:44:45 +01:00
Even Rouault 28e5849b97 Add CRS::isDynamic() 2023-01-14 21:37:53 +01:00
Even Rouault 5fecb30574 install.sh: validate PROJJSON CoordinateMetadata 2023-01-14 21:10:19 +01:00
Even Rouault 76959be8fb createOperations(): support one of source/target to be a CoordinateMetadata
but not both.

Note also that the core of createOperations() does not take into account
the source/target coordinate epoch in its logic to infer pipelines. It
just keep those values in its metadata, so that PJ* objects constructed
from them can later override the PJ_COORD.xyzt.t component.

So basically this is currently useful only for transformations between a
dynamic CRS and a static CRS (or the reverse).
2023-01-14 20:18:22 +01:00
Even Rouault 6ad88abbde createFromUserInput(): accept 'CRS_name@decimal_year' syntax to instanciate a CoordinateMetadata 2023-01-14 20:18:22 +01:00
Even Rouault a62cd93ae0 C API: add PJ_TYPE_COORDINATE_METADATA, proj_coordinate_metadata_get_epoch(), support if in proj_create() and proj_get_source_crs() 2023-01-14 20:18:22 +01:00
Even Rouault 540effbc2f JSON/WKT import: test invalid CoordinateMetadata 2023-01-14 20:18:22 +01:00
Even Rouault d434551c9d CoordinateMetadata: add C++ class, WKT and PROJJSON support 2023-01-14 20:18:22 +01:00
Even Rouault eb75c3b20e Add correctly named createTunisiaMiningGrid() / proj_create_conversion_tunisia_mining_grid() and deprecate the wrongly named methods (fixes #3543) 2023-01-14 20:18:08 +01:00
Even Rouault b7a8643566 Merge pull request #3563 from rouault/conda_disable_patches
CI Conda: remove patches from upstream proj.4 feedstock as it is applied in PROJ master
2023-01-14 20:17:28 +01:00
Even Rouault 9fb24ab284 .github/workflows/conda.yml: partial revert of 6dbee23fa9 to only do Conda builds on push, not pull request 2023-01-14 20:17:07 +01:00
Even Rouault 8e11cbc22d CI Conda: remove patches from upstream proj.4 feedstock as it is applied in PROJ master 2023-01-14 19:36:42 +01:00
Even Rouault 42266f8175 Merge pull request #3496 from seanm/Wcast-qual
Wcast-qual
2023-01-13 18:40:38 +01:00
Even Rouault 7490bf7414 formatting fix 2023-01-13 18:22:09 +01:00
Howard ButlerandMike Taves 6dbee23fa9 Implement ReadTheDocs (#3538)
Co-authored-by: Mike Taves <mwtoews@gmail.com>
2023-01-13 10:12:50 +13:00
Even Rouault 6d6b09b0ee Merge pull request #3550 from rouault/relax_ellipsoid_check
Check about consistent celestial body: relax tolerance for Mars use cases…
2023-01-12 19:53:40 +01:00
Even Rouault b9bad5a255 Merge pull request #3535 from rouault/fix_3533
proj_create_crs_to_crs_from_pj(): add a ONLY_BEST=YES option (fixes #3533)
2023-01-12 19:52:12 +01:00
Even Rouault 9020ae28ff proj.ini: do not set 'only_best_default' at all; and when set to on/off, disable related warnings 2023-01-12 18:58:32 +01:00
Even Rouault 97157e3014 best_only: move warning at the PJ* level 2023-01-12 18:58:32 +01:00
Even Rouault 9724764d96 Fix related to force_over 2023-01-12 18:58:32 +01:00
Even Rouault b1db3f64af cs2cs: add example demonstrating --only-best usefulness 2023-01-12 18:58:32 +01:00
Even Rouault 62d2291651 resource_files.rst: use literalinclude for proj.ini 2023-01-12 15:17:08 +01:00
Even RouaultandKristian Evers 4fb15a24c0 Update docs/source/apps/cs2cs.rst
Co-authored-by: Kristian Evers <kristianevers@gmail.com>
2023-01-12 15:12:06 +01:00
Even Rouault 6422f0c903 Merge pull request #3552 from visr/patch-1
fix projsync --list-files CSV header
2023-01-12 14:22:34 +01:00
Martijn Visser 5aecba77a8 fix projsync --list-files CSV header 2023-01-12 11:38:06 -01:00
Oleg Alexandrov dd34f45aed Add to quickstart.rst an example of using proj_create
This is a proposed example for the proj_create() function. This function has its own secularities, which can't be inferred from the example illustrating proj_create_crs_to_crs(). It is shown how to populate the longitude and latitude, how to convert to radians, transform to projected units, then transform back, and how to convert back to degrees.

The code was compiled and tested. It is suggested to verify it compiles and prints what is expected.

Add a comment about how to convert to degrees

quickstart: Move example from .rst to .c file and include in .rst

Include the correct example in quickstart.rst

Wipe extra spaces

Rm more extra spaces

Trying a fix for the dedent thing

Minor indent

Rename proj_create_example.c to crs_to_geodetic.c to address proposed use case

Update doc example to use proj_crs_get_geodetic_crs()

Put back to a single paragraph

Undo some changes

More tuning

Add the actual example

Wipe a newline
2023-01-11 19:41:20 -08:00
Even Rouault 956e5b2e21 Check about consistent celestial body: relax tolerance for Mars use cases and add a PROJ_IGNORE_CELESTIAL_BODY=YES environment variable 2023-01-12 00:49:46 +01:00
Even Rouault ec0ce09ef3 Add PROJ_ONLY_BEST_DEFAULT environment variable, and 'only_best_default' proj.ini setting 2023-01-11 12:15:34 +01:00
Even Rouault 30b2e97719 Add link to PROJ doc when ONLY_BEST warning/error triggers, and correctly propagate errorIfBestTransformationNotAvailable to alternate operations 2023-01-11 11:52:53 +01:00
Even Rouault 27b2fa42fd proj_clone(): avoid emitting errors on tranformations where some are not instanciable 2023-01-10 23:37:28 +01:00
Even Rouault d11c9d5766 proj_create_crs_to_crs(): emit a debug message if the best transformation cannot be used / cs2cs: add a --only-best=no switch 2023-01-10 23:37:28 +01:00
Even Rouault c637eff74c Merge pull request #3544 from hobu/alan-psc-addition
add Alan to PSC roster
2023-01-10 23:24:54 +01:00
Even Rouault 6b4ce1e444 Merge pull request #3545 from ethantkoenig/master
Fix deallocation bug in `proj_info()`
2023-01-10 23:24:35 +01:00
Even Rouault fdd9901917 proj_create_crs_to_crs_from_pj(): add a ONLY_BEST=YES option (fixes #3533)
Also add a --only-best switch to cs2cs

ONLY_BEST=YES/NO: (PROJ >= 9.2)
Can be set to YES to cause PROJ to error out if the best
transformation, known of PROJ, and usable by PROJ if all grids known and
usable by PROJ were accessible, cannot be used. Best transformation should
be understood as the transformation returned by
:cpp:func:`proj_get_suggested_operation` if all known grids were
accessible (either locally or through network).
2023-01-10 19:53:47 +01:00
Javier Jimenez Shaw 115f6854c5 [minor] add orcid link for Javier in CITATION.cff (#3547) 2023-01-11 07:24:05 +13:00
Ethan Koenig 24d22fe36c Fix deallocation bug in proj_info 2023-01-09 18:30:02 -08:00
Howard Butler bb9e477923 add Alan to PSC roster 2023-01-09 08:27:21 -06:00
Even Rouault 08e123182f install.rst: improve instructions regarding proj-data (fixes #3539) 2023-01-05 03:03:23 +01:00
Charles Karney 83a0bf005b Merge pull request #3528 from cffk/geod-2.1
Synchronize with 2.1 for geographiclib-c for geodesic support

Nothing much to cause concern with the PR.  Plus it simplifies matters for maintainers of proj.4-feedstock.
2023-01-04 15:12:46 -05:00
Even Rouault b23965ed19 Fix build with -DPROJ_INTERNAL_CPP_NAMESPACE 2023-01-03 12:53:21 +01:00
Sean McBride 84d80a8f81 Improved and simplified pj_strtod implementation 2023-01-02 18:36:10 -05:00
Sean McBride 20101df562 Removed unnecessary const keyword
Also move declaration and assignment together.
2023-01-02 18:04:56 -05:00
Sean McBride 0a1492fa57 Suppress some clang -Wconst-qual warnings with const_cast
It's rather impossible to implement strtod() without having to cast away the const.
2023-01-02 18:04:56 -05:00
Sean McBride bd9e0acc66 Make pj_datums global private, change pj_get_datums_ref() to return const 2023-01-02 18:04:56 -05:00
Sean McBride 1d92a64243 Removed unnecessary and incorrect const specifier with strtod
This allows simply removing several casting away of const.

Also introduce another variable instead of reusing the one that's no longer const. They were never refering to the same thing anything, and this new one does need to be const.
2023-01-02 18:04:56 -05:00
Sean McBride d8a4583ff7 Made a private function take a const pointer
This allows simply removing a casting away of const.
2023-01-02 18:04:56 -05:00
Even Rouault 17b5e48a5e Merge pull request #3534 from rouault/doc_clickable_program
Doc: make 'program' an alias of 'ref'
2023-01-02 23:56:55 +01:00
Even Rouault 25d2b9364a Doc: add separate title for invproj and invgeod, otherwise links to invproj/invgeod would have the proj/geod labels 2023-01-02 22:40:44 +01:00
Even Rouault 4b85651760 Doc: make 'program' an alias of 'ref' 2023-01-02 18:44:34 +01:00
Even Rouault 9d1ddecdf8 Merge pull request #3532 from rouault/projected_crs_identify_trust_less_id
ProjectedCRS::identify(): relax trust in id/authority in definition to identify
2023-01-02 17:40:37 +01:00
Even Rouault 7fe057ba8f ProjectedCRS::identify(): relax trust in id/authority in definition to identify
Fixes use case of https://lists.osgeo.org/pipermail/qgis-user/2023-January/052299.html
with likely buggy definition:
```
PROJCS["ETRS_1989_UTM_Zone_32N_6Stellen",GEOGCS["GCS_ETRS_1989",DATUM["D_ETRS_1989",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER["Central_Meridian",9.0],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0],AUTHORITY["ESRI",102328]]
```
that should rather be identified to EPSG:25832 ('ETRS_1989_UTM_Zone_32N')
rather than ESRI:102328 ('PE_PCS_ETRS_1989_UTM_32N_7STELLEN')
2023-01-02 13:02:22 +01:00
Even Rouault fa19b97134 set_ellipsoid(): avoid floating point division by zero with f=2 2023-01-01 23:34:45 +01:00
Even Rouault a2f169b0ad Merge pull request #3527 from rouault/cppcheck_fixes
Avoid cppcheck master warnings
2023-01-01 14:49:52 +01:00
Charles Karney fec14d6566 Synchronize with 2.1 for geographiclib-c for geodesic support
Changes are
   - Minor improvement in the logic for the geodesic inverse problem.
   - Relax overly strict convergence test for inverse problem.
   - Allow for buggy remquo in geodsigntest.c.

First two deal with performance issues uncovered by high-precision
testing with MPFR and will have hardly any (= no?) impact when using
ordinary doubles.

Attention @xylar: The buggy remquo fix is an aid for the integration of

  conda-forge/proj.4-feedstock

and will allow the current

  0001-disable-geodsigntest.patch

to be replace by a one-line change.

Also note:

polyval renamed to polyvalx to avoid potential conflict with function of
the same name but slightly different semantics in src/mlfn.cpp.  (Both are
static functions, so there wouldn't in fact be a conflict.)

Invocation of geod_init in src/init.cpp now uses PIN->f directly instead
of computing the flattening from PIN->es.
2022-12-31 08:59:37 -05:00
Charles Karney b7c2761d1d Merge pull request #3522 from cffk/gnom-ell
Implement the ellipsoidal gnomonic projection

Let's proceed with this -- no obvious red flags.  Too bad we didn't hear back from ESRI about how it implemented the ellipsoidal gnomonic projection.
2022-12-31 08:23:53 -05:00
Even Rouault 2a84cb2562 cea/laea: do not export +R_A on a spherical ellipsoid (fixes recent master commit) 2022-12-31 12:22:00 +01:00
Even Rouault e0c9b74bfe Add comments about why we assign in 2 steps 2022-12-31 11:34:53 +01:00
Even Rouault f89747d7a4 Avoid cppcheck master warnings 2022-12-30 23:16:36 +01:00
Even Rouault 3df105d2cb Merge pull request #3523 from rouault/cleanup_aeqd_s_forward
aeqd_s_forward(): cleanup code and improve performance in polar case
2022-12-30 22:36:02 +01:00
Even Rouault 209b3fc0ac Merge pull request #3526 from rouault/laea_spherical
WKT <--> PROJ: correctly map 'Lambert Azimuthal Equal Area (Spherical)' to '+proj=laea +R_A'
2022-12-30 22:35:49 +01:00
Even Rouault 07ad5fc849 WKT <--> PROJ: correctly map 'Lambert Azimuthal Equal Area (Spherical)' to '+proj=laea +R_A'
and 'Lambert Cylindrical Equal Area (Spherical)' to '+proj=cea +R_A'

as documented in EPSG guidance note 7.2: "if the figure of the earth used
is an ellipsoid rather than a sphere then R should be calculated as the
radius of the authalic sphere"
2022-12-28 23:50:02 +01:00
Charles Karney 23ffb4ba17 Merge pull request #3524 from cffk/merid-update-fix
In mlfn.cpp, invoke pj_enfn with P->n to avoid recomputating n
2022-12-23 05:44:35 -05:00
Charles Karney 3c9959fb30 Invoke geod_init with already computed P->f. 2022-12-22 15:38:59 -05:00
Charles Karney 7eb237530d In mlfn.cpp, invoke pj_enfn with P->n to avoid recomputating n 2022-12-22 15:25:55 -05:00
Charles Karney 7062a7aed0 Various improvements suggested by @rouault. 2022-12-22 09:06:27 -05:00
Even Rouault 761831d251 aeqd_s_forward(): cleanup code and improve performance in polar case
The speed improvement is due to saving the computation of coslam which
is not needed (cf
https://github.com/OSGeo/PROJ/pull/3522/files#r1054985128)

Performance in polar case:

before:
```
$ bin/bench_proj_trans --pipeline "+proj=aeqd +R=6378137 +lat_0=90" 0 1.57
0 1.57 -> 0 -5079.08139462075
Duration: 243 ms
Throughput: 20.58 million coordinates/s
```

after:
```
$ bin/bench_proj_trans --pipeline "+proj=aeqd +R=6378137 +lat_0=90" 0 1.57
0 1.57 -> 0 -5079.08139462075
Duration: 163 ms
Throughput: 30.67 million coordinates/s
```
2022-12-22 02:22:58 +01:00
Charles Karney 0f156724a3 Squelch complaint about uninitialized variables in gnom.cpp. 2022-12-21 10:05:12 -05:00
Charles Karney 895059b4bf Implement the ellipsoidal gnomonic projection
This implements the ellipsoidal gnomonic projection given in
Karney (2013).  It is the limit of a doubly azimuthal projection, a
projection where the azimuths from 2 points are preserved, as the two
points merge into the center point.  Geodesics project to approximately
straight lines (these are exactly straight if the geodesic includes the
center point).

This change will potentially break some user code because the previous
implementation of the projection silently converted an ellipsoid into a
sphere with the same equatorial radius.  Now, it'll be treated as an
ellipsoid.  The previous (inconsistent!) behavior can be recovered by
setting the flattening to zero with "+f=0".

The boundary test in test_c_api.cpp needed to be updated because it
relied on this inconsistent treatment of the ellipsoid parameters.  The
change is explained in the file.

All the gnomonic tests in builtins.gie were supplemented by ellipsoidal
versions (with flattening = 1/200).

The documentation was updated to reflect this addition and the gnomonic
projection is listed as azimuthal (instead of, incorrectly, as
pseudocylindrical) and the defined area has been changed from "global"
to "within a quarter circumference of the center point".

Because the azimuthal equidistance projection uses the same geodesic
machinery as the new gnomonic projection, I'm simplified some of the
code in aeqd.cpp to parallel gnom.cpp; in particular, aeqd no longer
does the scaling/unscaling by P->a and the shifting/unshifting by
P->lam0.
2022-12-21 09:44:30 -05:00
Even Rouault 5d24b13184 Merge pull request #3520 from cffk/fix-radian-doc
Fix silly documentation issue (quoted value of pi/2 triggers error)
2022-12-20 15:58:22 +01:00
Charles Karney 59af10390b Fix silly documentation issue (quoted value of pi/2 triggers error)
The documentation included instances of "Example: +lat_1=1.5708r".
However if the poor user tries this setting, the result is "|lat_1|
should be < 90d".  This fix uses 1.570796r instead -- this is a
legitimate rounded value of pi/2 and, since it is less than pi/2, it
satisfies the requirement that it be less that 90d.  The examples with
the lon_0 are changed for consistency (even though the old value doesn't
trigger an error).
2022-12-20 09:06:36 -05:00
Thomas Knudsen 600492e5fa Merge pull request #3517 from OSGeo/busstoptaktik-patch-1
Correct a slightly wrong comment in mlfn.cpp
2022-12-18 18:04:41 +01:00
Thomas Knudsen da1aa075eb Correct a slightly wrong comment in mlfn.cpp
The description of the clenshaw(...)-function used *i* as iterator, rather than *k*, as it should.
2022-12-18 17:20:25 +01:00
Charles Karney 69c8aa4b37 Merge pull request #3516 from cffk/merid-update
Improved series for the meridian length and its inverse
2022-12-17 12:00:12 -05:00
Even Rouault 252c7b618d Merge pull request #3510 from rouault/nadcon5
Add support for NADCON5 grids and transformation method
2022-12-17 16:00:20 +01:00
Charles Karney f2eba2e008 Improved series for the meridian length and its inverse
Replace the series for the meridian length in the functions

  pj_enfn
  pj_mlfn
  pj_inv_mlfn

in mlfn.cpp with improved versions.  The old version of pj_mlfn used
Snyder's Eq. (3-21) extended from 3rd to 4th order in e^2 and
pj_inv_mlfn inverted this by an iterative method.

The new version uses 6th order expansions in the third flattening, n,
for both pj_mlfn and pj_inv_mlfn.  Expansions in n have a smaller
truncation error that the corresponding expansion in e^2.  Increasing
the order to 6th (from 4th) means that the routines give full double
precision accuracy for |f| <= 1/150.  Because the meridian length is
used in several projections, it's important that it be accurate as
possible.  For example, now the azimuthal equidistant projection is
equally accurate in the polar (uses pj_mlfn) and oblique (uses the
geodesic routines) aspects.

The increased accuracy tripped one of the tests: an instance of the
projection +proj=utm +approx.  The fix is to use the non-approx results
for the expected values.

Presumably this change results in pj_mlfn being a little slower while
pj_inv_mlfn is considerably faster (since there's no iteration
involved).  Incidentally the new method for pj_inv_mlfn uses Snyder's
recommended series Eq. (3-23) extended from 4th to 6th order (Snyder
writes n as e_1).

More discussion of the series used here is given in my recent paper

  On auxiliary latitudes, https://arxiv.org/abs/2212.05818
2022-12-16 18:27:42 -05:00
Oleg Alexandrov 1c1b3a34f1 Mention the proj_create function
Following the PROJ doc is like jumping through many hoops, or if you wish, many reprojections across documents are needed for something coherent to emerge. This addition adds a blurb mentioning the proj_create() function, which is really one of the two workhorses of this library, together with proj_create_crs_to_crs.
2022-12-16 21:18:46 +01:00
Oleg Alexandrov 97d9a8e01c Add link to "quick start" (#3511) 2022-12-16 20:27:52 +01:00
Even Rouault 75d6e58093 Merge pull request #3512 from rouault/projjson_schema_fixes
Projjson schema fixes related to dynamic CRS
2022-12-16 20:16:02 +01:00
Even Rouault 2bca5cd8b7 Add validation of dynamic geographic and vertical CRS against projjson schema 2022-12-16 18:59:05 +01:00
Even Rouault 8f0c1fd7e3 schemas/v0.6/projjson.schema.json: fix wrong inheritance that cause validation issues when using a DynamicGeodeticReferenceFrame or DynamicVerticalReferenceFrame 2022-12-16 18:46:54 +01:00
Even Rouault 7559fb3966 schemas/v0.5/projjson.schema.json: fix wrong inheritance that cause validation issues when using a DynamicGeodeticReferenceFrame or DynamicVerticalReferenceFrame 2022-12-16 18:41:10 +01:00
Even Rouault e732237948 pj_get_suggested_operation(): tune so that NADCON5 grid is used for NAD27->NAD83 on CONUS 2022-12-16 03:59:57 +01:00
Even Rouault 4ca9950ed5 gridshift: cache grid values when interpolating repeatedly in the same grid cell 2022-12-16 03:59:57 +01:00
Even Rouault c159d421d2 bench_proj_trans: add options to add random noise 2022-12-14 18:52:35 +01:00
Even Rouault 9c3f30fdd4 pj_get_suggested_operation(): make sure to use NADCON5 grids rather than HPGN ones for NAD83 to NAD83(HARN) 2022-12-14 18:52:35 +01:00
Even Rouault f29145ca18 gridshift: use GenericShiftGrid::valuesAt() 2022-12-14 18:52:35 +01:00
Even Rouault 69cfda92c2 Add a GenericShiftGrid::valuesAt() method for faster value retrieval 2022-12-14 18:52:35 +01:00
Even Rouault ce95d2eea4 Database: add concatenated operations for NADCON5 transformations 2022-12-14 14:47:12 +01:00
Even Rouault 526178d6f5 metadata.sql: bump PROJ_DATA.VERSION to 1.13 2022-12-14 14:47:11 +01:00
Even Rouault b55fd3cf7a Add NADCON5 transformation method support and database entries 2022-12-14 14:47:11 +01:00
Even Rouault b15909e9f5 gridshift: add a +no_z_transform flag 2022-12-14 14:47:10 +01:00
Even Rouault 7888f3bb4b GTiff grid reading: speed-up retrieving data in last accessed tile 2022-12-14 14:47:10 +01:00
Even Rouault fa97a9c87d Add a +proj=gridshift (general grid shift) method to be used for NADCON5 grids
The transformation may apply horizontal geodetic offsetting and/or vertical
(ellipsoidal or orthometric height) offsetting, depending on the type of the
grid(s).

This is a generalization of the :ref:`hgridshift` and :ref:`vgridshift` methods,
that may be used in particular for US NADCON5 grids that contain both horizontal
geodetic and ellipsoidal height offsets.

Both bilinear and biquadratic interpolations are supported.
2022-12-14 14:47:09 +01:00
Even Rouault b55c267db9 Merge pull request #3490 from rouault/epsg_10_077
Database: update to EPSG 10.078
2022-12-13 21:41:39 +01:00
Javier Jimenez Shaw 28a5c7b477 CI: check also in /private/tmp in case macos-12 is used (#3505) 2022-12-13 20:58:11 +01:00
Even Rouault c0a37c9e97 Database: update to EPSG v10.078 2022-12-13 20:24:31 +01:00
Even Rouault abf1904072 Merge pull request #3503 from rouault/4d_by_ref
Speed-up: pass PJ_COORD by reference for fwd4d and inv4d callbacks
2022-12-12 14:25:24 +01:00
Kristian Evers 74acbbf531 Merge pull request #3458 from jjimenezshaw/links-crs-explorer
Add links to crs-explorer in documentation
2022-12-12 11:33:00 +01:00
Javier Jimenez Shaw 4ea63248e8 change crs-explorer links to crs-explorer.proj.org 2022-12-11 22:58:32 +01:00
Even Rouault 1204754ab8 Merge pull request #3502 from rouault/faster_proj_trans
proj_trans(): fix performance regression
2022-12-11 15:14:21 +01:00
Even Rouault c2a51649e4 Improve a bit performance of +proj=axisswap +order=2,1 2022-12-11 03:59:02 +01:00
Even Rouault c1ed706989 Pass PJ_COORD by reference for fwd4d and inv4d callbacks 2022-12-11 03:09:25 +01:00
Even Rouault 75d15c1b96 Make pj_fwd4d() and pj_inv4d() pass arguments by reference, nd use them directly in pipeline_forward/inverse_4d() 2022-12-11 02:39:15 +01:00
Even Rouault 39d1f22461 proj_trans(): fix performance regression
The dynamic_cast<> introduced in 718e074a06 (was
also backported in 9.1.1) can be a performance killer for pipelines that
are not very computational heavy.

Before this fix:

```
$ bin/bench_proj_trans --pipeline "+proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=merc" 2 49
2 49 -> 222638.981586547 6242595.99979511
Duration: 877 ms
Throughput: 5.70 million coordinates/s

$ bin/bench_proj_trans --pipeline "+proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad" 2 49
2 49 -> 0.0349065850398866 0.855211333477221
Duration: 276 ms
Throughput: 18.12 million coordinates/s
```

After this fix:
```
$ bin/bench_proj_trans --pipeline "+proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=merc" 2 49
2 49 -> 222638.981586547 6242595.99979511
Duration: 739 ms
Throughput: 6.77 million coordinates/s

$ bin/bench_proj_trans --pipeline "+proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad" 2 49
2 49 -> 0.0349065850398866 0.855211333477221
Duration: 146 ms
Throughput: 34.25 million coordinates/s
```
2022-12-11 02:01:18 +01:00
Trent Hare 94be2c69c2 Database: updates the DOI syntax for IAU codes (#3500)
This updates the DOI syntax for IAU codes fixes #3498
2022-12-08 14:47:47 +01:00
Even Rouault 8ccfea685f Merge pull request #3499 from hernando/fix-alter-cs-linear-unit
Bugfix in CRS::alterCSLinearUnit for DerivedProjectedCRS
2022-12-08 14:46:57 +01:00
Even Rouault 9c99d7b613 Merge pull request #3501 from phidrho/patch-4
fix wrong email contact
2022-12-08 12:50:47 +01:00
Vedran Stojnović 5cb411e634 fix wrong email contact 2022-12-08 11:19:34 +01:00
Mike Taves 725dacfa28 Add .mailmap 2022-12-08 22:35:37 +13:00
Juan Hernando 2d82ad0801 Bugfix in CRS::alterCSLinearUnit for DerivedProjectedCRS
The implementation was calling alterUnit on the CS of the base
projected CRS, but this CS could be different than that of the
derived projected CRS being modified (e.g. the axes could be
swapped).

The fix consist on altering the unit of the derived projected
CRS, but only if the CS can be cast to Cartesian. It's doesn't
look like other CS types need to be considered.
2022-12-07 15:50:12 +01:00
Even Rouault 5e8ce5c1f8 Merge pull request #3497 from rouault/fix_pyproj_1192
DatabaseContext::lookForGridInfo(): add PROJ networking state in cache information (fixes pyproj4/pyproj#1192)
2022-12-06 02:11:10 +01:00
Even Rouault 225df1ee59 DatabaseContext::lookForGridInfo(): add PROJ networking state in cache information (fixes pyproj4/pyproj#1192) 2022-12-05 23:47:43 +01:00
Even Rouault 07ef017f38 Merge pull request #3495 from rouault/fix_ossfuzz_53961
GeographicBoundingBox::Private::intersects(): avoid infinite recursion on degenerate bounding box
2022-12-03 18:21:58 +01:00
Even Rouault 9b8c8d7976 Merge pull request #3494 from rsbivand/unknown_unit
add test for Undefined Cartesian SRS with unknown unit
2022-12-03 18:21:47 +01:00
Even Rouault c3c9068b54 GeographicBoundingBox::Private::intersects(): avoid infinite recursion on degenerate bounding box
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=53961
2022-12-03 11:36:56 +01:00
Even Rouault 461d33eacc formatting fixes 2022-12-03 11:09:28 +01:00
Even Rouault ae1dbfca2c Merge pull request #3489 from seanm/misc-warnings2
Misc warnings2
2022-12-03 10:42:03 +01:00
Roger Bivand 6665c05e4b add test for Undefined Cartesian SRS with unknown unit 2022-12-03 10:31:54 +01:00
Even Rouault c1fd0076bb Merge pull request #3493 from OSGeo/backport-3492-to-master
[Backport master] datatypes.rst: replace references to PROJ.4 by PROJ
2022-12-03 09:33:24 +01:00
Even Rouault 31e256902f Merge pull request #3492 from OSGeo/rouault-patch-2
datatypes.rst: replace references to PROJ.4 by PROJ
2022-12-02 23:10:45 +00:00
Even Rouault 026e5f23fb Merge pull request #3491 from rouault/local_cs_import_fix
WKT import: when importing LOCAL_CS["foo"], generates a non-empty name for the datum
2022-12-02 16:42:22 +01:00
Even Rouault 8bafafbb74 WKT import: when importing LOCAL_CS["foo"], generates a non-empty name for the datum
Otherwise, the WKT2 output as a engineering CRS will be technically
invalid, as the BNF of WKT2 requires a non-empty double-quoted string.

Fixes https://github.com/r-spatial/sf/issues/2049#issuecomment-1333884055
2022-12-01 16:13:24 +01:00
Kristian Evers 30d0d9dcdc docs: update news and download links 2022-12-01 10:51:19 +01:00
Even Rouault 216544d7e3 Database: update to EPSG 10.077
Note that I've done a hack when importing EPSG:4326. This release of
EPSG has changed its extent from EPSG:1262 whose description is
'World.' to EPSG:2830 whose description is 'World:
Afghanistan, Albania, Algeria, American Samoa, Andorra, Angola,
Anguilla, Antarctica, Antigua and Barbuda, Argentina, Armenia, Aruba,
Australia, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados,
Belgium, Belgium, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire,
Saint Eustasius and Saba, Bosnia and Herzegovina, Botswana, Bouvet
Island, Brazil, British Indian Ocean Territory, British Virgin Islands,
Brunei Darussalam, Bulgaria, Burkina Faso, Burundi, Cambodia, Cameroon,
Canada, Cape Verde, Cayman Islands, Central African Republic, Chad,
Chile, China, Christmas Island, Cocos (Keeling) Islands, Comoros, Congo,
Cook Islands, Costa Rica, Côte d''Ivoire (Ivory Coast), Croatia, Cuba,
Curacao, Cyprus, Czechia, Denmark, Djibouti, Dominica, Dominican
Republic, East Timor, Ecuador, Egypt, El Salvador, Equatorial Guinea,
Eritrea, Estonia, Eswatini (Swaziland), Ethiopia, Falkland Islands
(Malvinas), Faroe Islands, Fiji, Finland, France, French Guiana, French
Polynesia, French Southern Territories, Gabon, Gambia, Georgia, Germany,
Ghana, Gibraltar, Greece, Greenland, Grenada, Guadeloupe, Guam,
Guatemala, Guinea, Guinea-Bissau, Guyana, Haiti, Heard Island and
McDonald Islands, Holy See (Vatican City State), Honduras, China - Hong
Kong, Hungary, Iceland, India, Indonesia, Islamic Republic of Iran,
Iraq, Ireland, Israel, Italy, Jamaica, Japan, Jordan, Kazakhstan, Kenya,
Kiribati, Democratic People''s Republic of Korea (North Korea), Republic
of Korea (South Korea), Kosovo, Kuwait, Kyrgyzstan, Lao People''s
Democratic Republic (Laos), Latvia, Lebanon, Lesotho, Liberia, Libyan
Arab Jamahiriya, Liechtenstein, Lithuania, Luxembourg, China - Macao,
Madagascar, Malawi, Malaysia, Maldives, Mali, Malta, Marshall Islands,
Martinique, Mauritania, Mauritius, Mayotte, Mexico, Federated States of
Micronesia, Monaco, Mongolia, Montenegro, Montserrat, Morocco,
Mozambique, Myanmar (Burma), Namibia, Nauru, Nepal, Netherlands, New
Caledonia, New Zealand, Nicaragua, Niger, Nigeria, Niue, Norfolk Island,
North Macedonia, Northern Mariana Islands, Norway, Oman, Pakistan,
Palau, Panama, Papua New Guinea (PNG), Paraguay, Peru, Philippines,
Pitcairn, Poland, Portugal, Puerto Rico, Qatar, Reunion, Romania,
Russian Federation, Rwanda, St Barthelemy, St Kitts and Nevis, St
Helena, Ascension and Tristan da Cunha, St Lucia, St Martin, St Pierre
and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Sao
Tome and Principe, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra
Leone, Singapore, Slovakia (Slovak Republic), Slovenia, St Maarten,
Solomon Islands, Somalia, South Africa, South Georgia and the South
Sandwich Islands, South Sudan, Spain, Sri Lanka, Sudan, Suriname,
Svalbard and Jan Mayen, Sweden, Switzerland, Syrian Arab Republic,
Taiwan, Tajikistan, United Republic of Tanzania, Thailand, The
Democratic Republic of the Congo (Zaire), Togo, Tokelau, Tonga, Trinidad
and Tobago, Tunisia, Türkiye (Turkey), Turkmenistan, Turks and Caicos
Islands, Tuvalu, Uganda, Ukraine, United Arab Emirates (UAE), United
Kingdom (UK), United States (USA), United States Minor Outlying Islands,
Uruguay, Uzbekistan, Vanuatu, Venezuela, Vietnam, US Virgin Islands,
Wallis and Futuna, Western Sahara, Yemen, Zambia, Zimbabwe.'

This super lengthy description is what used to be used for EPSG:4979
(but EPSG:4979 has now switched to the shorter EPSG:1262)

Given the widespread use of EPSG:4326, it would be super annoying that
our WKT2 output has the super long extent name. Hence on import from the
database, we hot-patch the extent of EPSG:4326 to be the shorter
EPSG:1262.
2022-11-29 15:44:38 +01:00
Sean McBride f46a1a9c96 Eliminate pj_int32 in favour of C++11 int32_t 2022-11-27 22:00:54 -05:00
Sean McBride 1fce9eb2fa Fixed a clang -Wmissing-variable-declarations warning 2022-11-27 22:00:54 -05:00
Sean McBride df7be99a77 Fixed all clang -Wmissing-noreturn warnings 2022-11-27 22:00:54 -05:00
Sean McBride 986d6630a3 Removed conditional use of C++11 = delete
Now that C++11 is requried, this should be safe to use unconditionally.
2022-11-27 22:00:54 -05:00
Sean McBride a9dae6fd8e Fixed all clang -Wimplicit-fallthrough warnings
Used the existing PROJ_FALLTHROUGH macro in more places.

Changed the PROJ_FALLTHROUGH macro to work in more cases, including standard C++17.

Changed the PROJ_FALLTHROUGH macro to require a trailing semi-colon, as this works better with auto-formatting tools like clang-format.

Copied the macro definition to proj_internal.h since some source files were not including the header were it was already defined.
2022-11-27 22:00:48 -05:00
Sean McBride c32b9d03be Fixed several -Wreserved-identifier warnings
Renamed to not start with underscore or include double underscore.
2022-11-26 17:52:24 -05:00
Sean McBride 26ec682f30 Fixed last -Wextra-semi-stmt warning by removing the opt_eof_handler macro
The opt_eof_handler macro expanded such that no trailing semi-colon was needed.  Reformulating the macro to require one does not seem possible. Instead, as there was only one user of the macro, just got rid of it.
2022-11-26 17:52:24 -05:00
Sean McBride de282ca00c Removed trivial extra semi-colons to fix most -Wextra-semi-stmt warnings 2022-11-26 17:52:24 -05:00
Even Rouault f9df4d7181 Merge pull request #3487 from rouault/fix_3484
createFromUserInput(): make approximate matching by name more restrictive…
2022-11-25 23:47:21 +01:00
Even Rouault 87a36fcc8b Merge pull request #3486 from rouault/bench_proj_trans
Add bench_proj_trans benchmarking utility
2022-11-25 23:47:06 +01:00
Even Rouault 8ede717b1a Merge pull request #3488 from jjimenezshaw/pj-type-derived-projected-crs
add PJ_TYPE_DERIVED_PROJECTED_CRS
2022-11-25 17:36:21 +01:00
Even Rouault b2b59b365d Add bench_proj_trans benchmarking utility 2022-11-25 12:01:15 +01:00
Even Rouault 15a7cbeb12 createFromUserInput(): make approximate matching by name more restrictive to avoid false positives (fixes #3484) 2022-11-24 16:45:53 +01:00
Javier Jimenez Shaw 7965100d47 add PJ_TYPE_DERIVED_PROJECTED_CRS 2022-11-23 22:55:34 +01:00
Even Rouault 0821b0da05 Merge pull request #3485 from jidanni/patch-2
Update latlon.rst
2022-11-23 11:54:59 +01:00
積丹尼 Dan Jacobson 367b1fd7ee Update latlon.rst
Say how to list the parameters.
2022-11-23 18:52:14 +08:00
Even Rouault 15c89f4a18 Merge pull request #3482 from jjimenezshaw/complete-derivedprojected-methods
Implement  alterGeodeticCRS and stripVerticalComponent for DerivedProjected
2022-11-19 20:33:15 +01:00
Javier Jimenez Shaw 5f66a942a5 add implementation for stripVerticalComponent for DerivedProjected 2022-11-19 17:02:29 +01:00
Javier Jimenez Shaw f048b288f3 add implementation for alterGeodeticCRS for DerivedProjected 2022-11-19 17:02:29 +01:00
Even Rouault e53f19a6f7 Update proj_symbol_rename.h 2022-11-19 12:41:54 +01:00
Even Rouault 190cb92936 Merge pull request #3474 from rouault/doc_topic2_r5
Doc: update references to OGC Topic 2 spec to its r5 revision
2022-11-19 12:11:47 +01:00
Even Rouault e9520b3d73 Merge pull request #3473 from rouault/fix_3464
omerc: mention in doc that +lon_0 is ignored, align name of +lat_0 and…
2022-11-19 12:11:38 +01:00
Even Rouault 5418555dbe Merge pull request #3472 from rouault/doc_cs2cs_fix_3470_3471
cs2cs.rst: add note regarding grids beeing needed (fixes #3470, #3471)
2022-11-19 12:11:29 +01:00
Javier Jimenez Shaw b4ead8c939 Implement normalizeForVisualization for DerivedProjected (#3477) 2022-11-19 02:29:22 +01:00
Mike Taves 99a26934bf DOC: add TOC to PDF contents, use 1-column index to prevent overprinting (#3475) 2022-11-18 12:43:06 +13:00
Even Rouault 146377f898 cs2cs.rst: add note regarding grids beeing needed (fixes #3470, #3471) 2022-11-17 22:30:52 +01:00
Even Rouault 9e8e9ae0c4 Doc: update references to OGC Topic 2 spec to its r5 revision 2022-11-17 22:28:45 +01:00
Even Rouault 9b2aff6836 omerc: mention in doc that +lon_0 is ignored, align name of +lat_0 and +lonc with EPSG names, and emit a trace when +lon_0 is used (fixes #3464) 2022-11-17 22:04:45 +01:00
Even Rouault 1d5b1571ad Merge pull request #3454 from rouault/source_crs_in_json_abridged
PROJJSON: bump to 0.6 with an additional optional source_crs property…
2022-11-17 19:56:44 +01:00
Even Rouault 65f60f6e27 Merge pull request #3459 from trofi/gcc-13-fix
PROJ: add missing <cstdint> includes
2022-11-15 18:38:01 +01:00
Kristian Evers 4762020db5 Merge pull request #3466 from kbevers/doc-rounding
Doc: Clarify meaning of -d flag in CLI apps
2022-11-15 15:09:20 +01:00
積丹尼 Dan Jacobson fe1983955b Doc: Clarify meaning of -d flag in CLI apps
Eliminate all worries that it might have meant truncation!

Co-authored-by: 積丹尼 Dan Jacobson <jidanni@jidanni.org>
2022-11-15 12:56:51 +01:00
Sergei Trofimovich b0b8937c56 PROJ: add missing <cstdint> includes
Without the change build fails on upcomig `gcc-13` as:

    In file included from /build/PROJ/src/iso19111/operation/conversion.cpp:58:
    src/proj_json_streaming_writer.hpp:42:14:
      error: 'int64_t' in namespace 'std' does not name a type
       42 | typedef std::int64_t GIntBig;
          |              ^~~~~~~

gcc-13 cleaned it's header dependencies and that exposes these failures.
2022-11-14 08:48:33 +00:00
Javier Jimenez Shaw 0a9f23bc49 add links to crs-explorer in faq.rst and projinfo.rst 2022-11-13 23:45:39 +01:00
Even Rouault a33621e94f Merge pull request #3453 from rouault/fix_3451
cs2cs: better validate value of -W option (fixes #3451)
2022-11-11 19:28:13 +01:00
Even Rouault 51e84eba8e PROJJSON: bump to 0.6 with an additional optional source_crs property in abridged_transformation (refs #3428) 2022-11-11 19:18:31 +01:00
Even Rouault 473e7fb870 cs2cs: better validate value of -W option (fixes #3451) 2022-11-11 15:01:19 +01:00
Even Rouault fa14f9bcee Merge pull request #3450 from jidanni/patch-1
Update cs2cs.rst
2022-11-11 14:34:27 +01:00
積丹尼 Dan Jacobson fafc18f764 Update cs2cs.rst
-W9 = -W3 and -W10 = crash

==== cs2cs -W7 ...

43d05'18.7380000"E	79d04'11.1590000"S 0.000

==== cs2cs -W8 ...

43d05'18.73800000"E	79d04'11.15900000"S 0.000

==== cs2cs -W9 ...

43d5'18.738"E	79d4'11.159"S 0.000

==== cs2cs -W10 ...

Rel. 9.1.0, September 1st, 2022
<cs2cs>:
invalid option: -0
program abnormally terminated
2022-11-11 20:41:59 +08:00
Even Rouault 35e4207a9d Merge pull request #3448 from rouault/fix_3444_followup
Fix 2 issues with DatabaseContext::lookForGridInfo()
2022-11-10 13:12:40 +01:00
Even Rouault 82bac72ceb DatabaseContext::lookForGridInfo(): fix setting .url member when a file is not in grid_alternatives, not local, but found on CDN (fixes #3444) 2022-11-10 02:08:18 +01:00
Even Rouault db46489aee DatabaseContext::lookForGridInfo(): fix caching of fullFilename (fixes #3444) 2022-11-10 01:23:26 +01:00
Even Rouault 524cda7156 Merge pull request #3446 from rouault/fix_3444
Database: register in grid_alternatives grids from PROJ-data that have no corresponding transformation record (fixes #3444)
2022-11-09 22:38:39 +01:00
Even Rouault 9a030cf9c7 Database: register in grid_alternatives grids from PROJ-data that have no corresponding transformation record (fixes #3444) 2022-11-09 14:29:01 +01:00
Even Rouault ae3180303d Merge pull request #3443 from rouault/cppcheck_fixes
Fix issues reported by latest cppcheck master version
2022-11-09 10:32:09 +01:00
Even Rouault bacdf4621e Merge pull request #3442 from rouault/at_bev_AT_GIS_GRID_2021_09_28
Database: register at_bev_AT_GIS_GRID_2021_09_28 grid
2022-11-09 10:31:31 +01:00
Even Rouault d78e5f009e NetworkFile::open(): fix memory leak in unlikely error code path 2022-11-09 02:23:09 +01:00
Even Rouault c5930acd41 Fix issues reported by latest cppcheck master version
Minor things/false positives
2022-11-09 02:02:32 +01:00
Even Rouault 189636a732 Database: register at_bev_AT_GIS_GRID_2021_09_28 grid
Added to PROJ-data per https://github.com/OSGeo/PROJ-data/pull/88
2022-11-08 16:38:17 +01:00
Even Rouault d59af174d7 code formatting fixes 2022-11-08 16:37:52 +01:00
Even Rouault c1b63aa7b6 Merge pull request #3441 from rouault/fix_rtodms
rtodms(): fix potential buffer overflow not dealt with with PR #3431 (master only)
2022-11-08 10:50:39 +01:00
Even Rouault 72784f05b0 rtodms(): fix potential buffer overflow not dealt with with PR #3431 (master only) 2022-11-07 23:50:01 +01:00
Even Rouault 1116e0c25e Merge pull request #3433 from rouault/fix_3432
cass: fix forward computation of easting (fixes #3432), …
2022-11-07 22:07:17 +01:00
Even Rouault 5b9303dd5d Remove remaining sprintf() uses, and deprecate proj_rtodms() by newly added proj_rtodms2() (#3431)
Fixes #3243
2022-11-07 22:07:03 +01:00
Even Rouault e3eee3b8d4 Merge pull request #3435 from jidanni/patch-2
Update ocea.rst
2022-11-06 15:36:32 +01:00
Even Rouault 70a89042d5 Merge pull request #3434 from jidanni/patch-1
Update helmert.rst
2022-11-06 15:36:10 +01:00
積丹尼 Dan Jacobson b66400afbd Update ocea.rst
Grammar.
2022-11-06 22:14:04 +08:00
積丹尼 Dan Jacobson c04c6288d3 Update helmert.rst
Grammar.
2022-11-06 22:11:27 +08:00
Even Rouault 9284d36fed cass: use iterative generic inversion to make GIGS 5108 roundtripping tests succeed
I've modified the inverse method to use the generic
inversion method to improve its accuracy, which make it possible to
enable the 5108.gie tests that were previously failing on the 1000
iterations roundtripping.
2022-11-04 22:59:57 +01:00
Even Rouault 5983eadcc7 pj_generic_inverse_2d(): make deltaXYTolerance a parameter 2022-11-04 22:58:44 +01:00
Even Rouault 78d89828a0 cass: fix forward computation of easting (fixes #3432)
The error on the sign after "nu * A * (1. - A2 * T * (C1 ...") dates
back to PROJ origins. All other independent implementations (Apache SIS
cf
https://github.com/apache/sis/blob/a04bd4b29816c91fc4dfc66135b8de5e962933a0/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/projection/CassiniSoldner.java,
CSMAP cf
https://github.com/normanb/CS-Map/blob/1d8f2db7f13194a99dc218d4cd91754c64a2a774/Source/CS_csini.c)
use the same formulas as EPSG guidance note which is consistent with
Snyder's Map projections - A working manual). So align on them, so that
everyone is consistent (and hopefully right).
2022-11-04 22:57:21 +01:00
Even Rouault 45869986a0 Merge pull request #3430 from seanm/Wreserved-id-macro
Various -Wreserved-id-macro warning fixes
2022-11-03 18:58:53 +01:00
Sean McBride f3930da598 Renamed _IN_GEOD_SET to GEOD_IN_GEOD_SET to fix -Wreserved-id-macro warnings 2022-11-03 08:44:40 -04:00
Sean McBride 61d5dec136 Renamed PJ_LIB__ to PJ_LIB_ to fix -Wreserved-id-macro warnings 2022-11-03 08:44:36 -04:00
Sean McBride 6f2c467f5a Renamed PJ_DATUMS__ to PJ_DATUMS_ to fix -Wreserved-id-macro warnings 2022-11-03 08:43:33 -04:00
Even Rouault 08f691c617 Merge pull request #3425 from seanm/std_mutex
Replaced platform-specific mutex implementations with std::recursive_…
2022-11-03 11:40:09 +01:00
Even Rouault db4df40b16 Merge pull request #3424 from seanm/misc-warnings
Misc warnings
2022-11-03 11:34:22 +01:00
Sean McBride 88d91f709c Replaced platform-specific mutex implementations with std::recursive_mutex
Simplified various CMake files too, though they still need to look for pthread support because there is a call to pthread_atfork() in the codebase.

Also got rid of mutex.hpp and its workaround for old __MINGW32__ that did not support std:mutex.

Aside from being a general simplification, this fixes a clang -Wreserved-id-macro warning by no longer ever needing to #define _GNU_SOURCE.
2022-11-02 20:27:33 -04:00
Even Rouault da542adce9 Merge pull request #3427 from rouault/vandg_over
vandg projection: handle +over to extend the validity domain outside of |lon|>180deg
2022-11-02 20:20:32 +01:00
Sean McBride fecca6f2a1 WIP: fixed -Wunused-macro warning
The UWP define is only used on Windows, so move its definition into the existing nearby #ifdef _WIN32 check.

WIP because I don't have Windows to check if this works...
2022-11-02 14:13:47 -04:00
Sean McBride c3180cab52 Fixed clang -Wdocumentation-deprecated-sync warning
The warning was:

c_api.cpp:292:5: warning: declaration is marked with '@deprecated' command but does not have a deprecation attribute [-Wdocumentation-deprecated-sync]

Just removed the @deprecated doxygen keyword since C++14's `[[deprecated]]` keyword is too new to use currently.
2022-11-02 14:13:07 -04:00
Sean McBride bd87ed59cc Fixed some -Wreserved-id-macro warnings
Since _USE_MATH_DEFINES is only for Windows, only define it for Windows.  It's also needed for MinGW.

Since _GNU_SOURCE is only for GNU, and was already conditionalized to not be defined on Windows, also don't define it on Apple.
2022-11-02 14:10:32 -04:00
Sean McBride f837178fa9 Fixed clang -Wheader-hygiene warning
The warning was:

test_primitives.hpp:40:30: warning: using namespace directive in global context in header [-Wheader-hygiene]
2022-11-02 14:10:32 -04:00
Sean McBride c7fa5e00a4 Removed an old warning suppression to fix the only -Wunreachable-code-return warning
projections/isea.cpp:486:12: warning: 'return' will never be executed [-Wunreachable-code-return]
    return 0;       /* suppresses a warning */
           ^

This suppression was added by c5c96ad223 a decade ago. At this point, more compilers probably warn about reaching that impossible line than falsely thinking the function is missing a return value.
2022-11-02 14:10:32 -04:00
Sean McBride a231a6781f Fixed clang -Wformat-pedantic warning
Added explicit cast.
2022-11-02 14:10:32 -04:00
Sean McBride 62fcc27652 Fixed clang -Wunused-macros warnings
The compiler seems correct, these are indeed usused.
2022-11-02 14:10:27 -04:00
Even Rouault 0e050eea2a vandg projection: handle +over to extend the validity domain outside of |lon|>180deg 2022-11-02 12:06:46 +01:00
Even Rouault dd1ce7d589 Merge pull request #3422 from rouault/doxy195_warnings
Doxyfile: remove warnings with Doxygen 1.9.5
2022-11-02 11:30:33 +01:00
Sean McBride 6cb2dafdcd Fixed Clang -Wsuggest-destructor-override warnings
Just added override keyword where it was missing.
2022-11-01 10:59:36 -04:00
Even Rouault 9d440ec939 Merge pull request #3421 from seanm/snprintf
Replaced most uses of sprintf with the safer snprintf
2022-11-01 09:18:49 +01:00
Even Rouault d07d7e5fcb Doxyfile: remove warnings with Doxygen 1.9.5 2022-11-01 09:14:33 +01:00
Even Rouault d7392db46d Merge pull request #3419 from rouault/doxy195
docs/docbuild/Dockerfile: update to Doxygen 1.9.5
2022-10-30 17:26:10 +01:00
Even Rouault d241049bb8 Merge pull request #3417 from OSGeo/backport-3416-to-master
[Backport master] projsync.rst: fix grammar error
2022-10-30 15:14:48 +01:00
Even Rouault e86858de6a docs/docbuild/Dockerfile: update to Doxygen 1.9.5 2022-10-30 15:13:38 +01:00
Even Rouault 975953b4b9 Merge pull request #3416 from OSGeo/rouault-patch-2
projsync.rst: fix grammar error
2022-10-30 14:12:27 +00:00
Even Rouault 9f4b4790d9 Merge pull request #3415 from rouault/fix_ossfuzz_52879
eqdc: avoid floating point division by zero in non-nominal case. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52879
2022-10-30 15:12:02 +01:00
Even Rouault 586ef0f5f1 eqdc: avoid floating point division by zero in non-nominal case. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=52879 2022-10-30 10:01:26 +01:00
Sean McBride 6d40efa907 Replaced most uses of sprintf with the safer snprintf 2022-10-28 16:19:35 -04:00
Even Rouault b655125ae3 Merge pull request #3413 from rouault/add_conversion_geogoffsets
C++ API: add methods to build Geographic/Vertical Offset conversions
2022-10-24 20:12:56 +02:00
Even Rouault 864dd23895 C++ API: add methods to build Geographic/Vertical Offset conversions 2022-10-23 20:31:15 +02:00
Even Rouault cb759f7dfb Merge pull request #3411 from rouault/fix_derived_geogCRS_3D_issues
createOperations(): fix issues when transforming between Geog3D and DerivedGeog3D CRS with Geographic3D offsets method
2022-10-23 11:59:52 +02:00
Even Rouault ebc7c8bdd2 createOperations(): fix issues when transforming between Geog3D and DerivedGeog3D CRS with Geographic3D offsets method
Given test.wkt with:
```
GEOGCRS["CH1903+ with 10m offset on ellipsoidal height",
    BASEGEOGCRS["CH1903+",
        DATUM["CH1903+",
            ELLIPSOID["Bessel 1841",6377397.155,299.1528128,
                LENGTHUNIT["metre",1]],
            ID["EPSG",6150]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8901]]],
    DERIVINGCONVERSION["Offset on ellipsoidal height",
        METHOD["Geographic3D offsets",
            ID["EPSG",9660]],
        PARAMETER["Latitude offset",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8601]],
        PARAMETER["Longitude offset",0,
            ANGLEUNIT["degree",0.0174532925199433],
            ID["EPSG",8602]],
        PARAMETER["Vertical Offset",10,
            LENGTHUNIT["metre",1],
            ID["EPSG",8603]]],
    CS[ellipsoidal,3],
        AXIS["geodetic latitude (Lat)",north,
            ORDER[1],
            ANGLEUNIT["degree",0.0174532925199433,
                ID["EPSG",9122]]],
        AXIS["geodetic longitude (Lon)",east,
            ORDER[2],
            ANGLEUNIT["degree",0.0174532925199433,
                ID["EPSG",9122]]],
        AXIS["ellipsoidal height (h)",up,
            ORDER[3],
            LENGTHUNIT["metre",1,
                ID["EPSG",9001]]]]
```

```
$ projinfo -s EPSG:4979 -t @test.wkt --spatial-test intersects -o PROJ --hide-ballpark
Candidate operations found: 1
-------------------------------------
Operation No. 1:

unknown id, Inverse of CH1903+ to WGS 84 (1) + Offset on ellipsoidal height, 1 m, Liechtenstein; Switzerland.

PROJ string:
+proj=pipeline
  +step +proj=axisswap +order=2,1
  +step +proj=unitconvert +xy_in=deg +z_in=m +xy_out=rad +z_out=m
  +step +proj=cart +ellps=WGS84
  +step +proj=helmert +x=-674.374 +y=-15.056 +z=-405.346
  +step +inv +proj=cart +ellps=bessel
  +step +proj=geogoffset +dlat=0 +dlon=0 +dh=10
  +step +proj=unitconvert +xy_in=rad +z_in=m +xy_out=deg +z_out=m
  +step +proj=axisswap +order=2,1
```
2022-10-22 21:43:34 +02:00
Even Rouault 4121845b05 Merge pull request #3408 from rouault/fix_3407
VerticalCRS::_isEquivalentTo(): do not consider VerticalCRS and DerivedVerticalCRS as equivalent
2022-10-21 21:24:13 +02:00
Even Rouault 92cc92802e VerticalCRS::_isEquivalentTo(): do not consider VerticalCRS and DerivedVerticalCRS as equivalent
This cause incorrect result when transforming from/to a
DerivedVerticalCRS or a CompoundCRS made of a DerivedVerticalCRS

With that fix:
```
$ echo 46.9524055555556 7.43958333333333 400 | cs2cs -d 12 EPSG:4979 "$(cat test.wkt)"
46.953728423809	7.440534369109 361.014348853429
```

Fixes #3407
2022-10-21 20:44:11 +02:00
Even Rouault 04f08c3a13 Merge pull request #3402 from mwtoews/citation-cff
Add CITATION.cff
2022-10-21 19:51:16 +02:00
Even Rouault afe73a7a82 Merge pull request #3406 from mwtoews/basic-install
Simplify INSTALL to a short document
2022-10-21 19:50:40 +02:00
Mike Taves f400dfe1a3 Simplify INSTALL to a short document 2022-10-20 14:23:39 +13:00
Even Rouault a528bcaa0b Merge pull request #3395 from rouault/fix_3287
cct and cs2cs: make them robust against UTF-8 BOM at beginning of input files (fixes #3287)
2022-10-19 01:20:40 +02:00
Even Rouault 8af84f9d77 Merge pull request #3390 from rouault/data_sql_doc
data/sql: add a README.md and simplified UML diagrams
2022-10-17 21:53:49 +02:00
Mike Taves 24c7996db1 Add CITATION.cff 2022-10-17 21:47:17 +13:00
Even Rouault 1e9d92e31f cifuzz.yml: tune 2022-10-17 00:39:03 +02:00
Even Rouault 2cc71e871d Merge pull request #3357 from rouault/cifuzz
CI: add a CI-Fuzz github action workflows
2022-10-17 00:25:15 +02:00
Even Rouault e0911174c7 Merge pull request #3398 from BuntingLabs/add-users
add startup + OSS to users docs
2022-10-14 18:30:08 +02:00
Brendan Ashworth d21d55e30a add startup + OSS to users docs 2022-10-13 11:53:23 -07:00
Even Rouault 3a81c70cf7 Merge pull request #3396 from OSGeo/backport-3393-to-master
[Backport master] bindings.rst: mention PROJ-JNI
2022-10-13 17:33:39 +02:00
Even Rouault 4a1840f199 Merge pull request #3393 from OSGeo/rouault-patch-1
bindings.rst: mention PROJ-JNI
2022-10-13 15:31:06 +00:00
Even Rouault b745e9f7bb cct and cs2cs: make them robust against UTF-8 BOM at beginning of input files (fixes #3287) 2022-10-13 16:54:49 +02:00
Even Rouault f6a9af4b61 Merge pull request #3392 from OSGeo/backport-3391-to-master
[Backport master] Update users.rst
2022-10-13 14:36:33 +02:00
jbeilin f74edd1436 users.rst: add ENSG-géomatique (#3391) 2022-10-13 12:15:21 +00:00
Even Rouault a11f0c9c78 data/sql: add a README.md and simplified UML diagrams 2022-10-12 22:34:57 +02:00
Even Rouault 47f13f34c6 cs2cs: fix incorrect use of proj_cs_get_axis_count() introduced in 4abde1b9f8 (not in a release) 2022-10-12 17:47:08 +02:00
Even Rouault 9d5d83ca60 defmodel.rst: add link to deformation_model.schema.json 2022-10-12 11:57:50 +02:00
Even Rouault 92fa04e74c Merge pull request #3389 from OSGeo/backport-3388-to-master
[Backport master] Added Avenza Maps to list of proprietary software that uses PROJ
2022-10-11 16:40:58 +02:00
Even Rouault c94b7bfa5d Merge pull request #3388 from AndrewAtAvenza/patch-1
Added Avenza Maps to list of proprietary software that uses PROJ
2022-10-11 14:36:57 +00:00
Even Rouault 919d3e8737 Doc: users.rst: fix 2022-10-11 14:50:41 +02:00
Even Rouault c297e54191 Merge pull request #3374 from rouault/cmake_tiff_curl
CMake: use TIFF:TIFF and CURL::libcurl targets (refs #3316)
2022-10-11 11:57:11 +02:00
Even Rouault e44f3a7dbb Merge pull request #3382 from rouault/doc_user_bindings
Doc: users.rst: link to bindings.rst
2022-10-11 11:56:44 +02:00
Even Rouault a41bc0d641 Merge pull request #3386 from OSGeo/backport-3385-to-master
[Backport master] added gislab at INAF
2022-10-11 11:56:33 +02:00
Even Rouault e1d4daf433 Merge pull request #3385 from afrigeri/patch-1
added gislab at INAF
2022-10-11 09:40:18 +00:00
Even Rouault ac5701142d users.rst: formatting fix 2022-10-10 22:01:14 +02:00
Even Rouault bb438f6d80 Merge pull request #3384 from OSGeo/backport-3383-to-master
[Backport master] Add qfield to users list
2022-10-10 21:58:37 +02:00
Even Rouault 640de099cc Merge pull request #3383 from OSGeo/m-kuhn-patch-1
Add qfield to users list
2022-10-10 19:47:49 +00:00
Even Rouault dec26c1cff CMake: use TIFF:TIFF and CURL::libcurl targets (refs #3316) 2022-10-10 21:40:52 +02:00
Even Rouault 2a09b35ec1 Merge pull request #3381 from OSGeo/backport-3380-to-master
[Backport master] Update users.rst
2022-10-10 20:26:58 +02:00
Even Rouault fe29f619f5 Merge pull request #3380 from Jochem-L/patch-1
Update users.rst
2022-10-10 18:23:41 +00:00
Even Rouault 700c2e9fef Doc: users.rst: link to bindings.rst 2022-10-10 20:23:28 +02:00
Even Rouault 7b10bb4bd7 Merge pull request #3378 from OSGeo/backport-3376-to-master
[Backport master] faq.rst: remove trailing character
2022-10-10 19:23:19 +02:00
Even Rouault 5f5fa817c6 Merge pull request #3376 from OSGeo/rouault-patch-1
faq.rst: remove trailing character
2022-10-10 17:20:46 +00:00
Even Rouault d9cf47db60 Merge pull request #3369 from rouault/doc_users
Doc: add a page about users of PROJ
2022-10-10 17:58:47 +02:00
Even Rouault 5dd91491f3 Doc: add a page about users of PROJ
Equivalent of https://gdal.org/software_using_gdal.html
2022-10-10 17:58:08 +02:00
Even Rouault a0373e762e Merge pull request #3371 from rouault/createFromUserInput_improvement
createFromUserInput(): make it work better when approximate name is provided
2022-10-08 15:17:35 +02:00
Even Rouault f2f05907cb Merge pull request #3367 from rouault/longitude_rotation_fix
projinfo / cs2cs : auto promotion to 3D of CRS specified by name
2022-10-08 15:17:26 +02:00
Even Rouault 6140c5c667 Merge pull request #3370 from OSGeo/backport-3368-to-master
[Backport master] Doc: community: disable for now FOSS4G section
2022-10-07 20:38:45 +02:00
Even Rouault 740edc5309 createFromUserInput(): make it work better when approximate name is provided 2022-10-07 20:37:51 +02:00
Even Rouault b994422ec5 Merge pull request #3368 from OSGeo/rouault-patch-1
Doc: community: disable for now FOSS4G section
2022-10-07 17:53:41 +00:00
Even Rouault 4abde1b9f8 cs2cs: when source (or target) CRS is specified by name, promote it to 3D if there's a known 3D CRS of same name and that the other CRS is 3D 2022-10-07 18:26:59 +02:00
Even Rouault 7c24485ec9 projinfo: when source (or target) CRS is specified by name, promote it to 3D if there's a known 3D CRS of same name and that the other CRS is 3D 2022-10-07 18:26:49 +02:00
Even Rouault 4483de0e22 Avoid error on "projinfo -s 'NTF (Paris) + NGF IGN69 height' -t ETRS89"
which by itself is not super sensical without the --3d flag to ask for
ETRS89 3D.
2022-10-07 17:20:13 +02:00
Even Rouault 06632e138c Merge pull request #3365 from rouault/fix_findsOpsInRegistryWithIntermediate
findsOpsInRegistryWithIntermediate(): make it work when source/target geodetic CRS has no known id
2022-10-07 13:36:53 +02:00
Even Rouault 29e9f73f9a findsOpsInRegistryWithIntermediate(): make it work when source/target geodetic CRS has no known id 2022-10-06 22:16:46 +02:00
Even Rouault bf9d356578 Merge pull request #3351 from rouault/fix_3348
Doc: document +over limitations (fixes #3348)
2022-10-06 20:29:57 +02:00
Even Rouault 32d05c4e6f Merge pull request #3362 from rouault/uninstall
CMake: add a uninstall target
2022-10-06 20:29:44 +02:00
Even Rouault 632eb41053 Merge pull request #3361 from rouault/fix_3360
createOperations(): emulate PROJ < 6 behavior when doing geocentric <--> geographic transformation between datum with unknown transformation (fixes #3360)
2022-10-06 11:41:42 +02:00
Even Rouault d78642608c Doc: document uninstall target 2022-10-05 20:53:37 +02:00
Even Rouault 524696d22f CMake: add a uninstall target 2022-10-05 20:18:00 +02:00
Even Rouault aaf0d2c2be createOperations(): emulate PROJ < 6 behavior when doing geocentric <--> geographic transformation between datum with unknown transformation (fixes #3360) 2022-10-05 19:17:21 +02:00
Even Rouault a75ae933c8 Merge pull request #3359 from rouault/fix_3358
cct: emit meaningful error message when passing a non-coordinate operation (fixes #3358)
2022-10-05 17:34:43 +02:00
Even Rouault 718e074a06 proj_trans(): return error when a non-coordinate operation object is provided (fixes #3358) 2022-10-05 14:21:28 +02:00
Even Rouault 05918e4e12 cct: emit meaningful error message when passing a non-coordinate operation (fixes #3358) 2022-10-05 01:38:45 +02:00
Even Rouault 5f6595856d CI: add a CI-Fuzz github action workflows
CI-Fuzz triggers fast OSS-Fuzz checks on pull requests.
See https://google.github.io/oss-fuzz/getting-started/continuous-integration/ for more details
2022-09-30 18:31:41 +02:00
Even Rouault 46762f8816 Merge pull request #3355 from rouault/fix_3354
Fix issue when transforming from/into a WKT2 Bound VerticalCRS with a  'Geographic3D to GravityRelatedHeight' method (fixes #3354)
2022-09-30 11:54:13 +02:00
Even Rouault 28b1d77624 Doc: document +over limitations (fixes #3348) 2022-09-29 15:46:32 +02:00
Even Rouault 5e22044fcf Fix issue when transforming from/into a WKT2 Bound VerticalCRS with a 'Geographic3D to GravityRelatedHeight' method (fixes #3354) 2022-09-29 15:43:43 +02:00
Even Rouault b0b0c7bcb3 Merge pull request #3350 from rouault/fix_3347
proj_normalize_for_visualization(): take into account FORCE_OVER property from source operation (fixes #3347)
2022-09-27 14:56:02 +02:00
Kristian Evers d30d4ea401 Merge pull request #3338 from sval-dev/genericsom
Support for more generic Space Oblique Mercator (SOM) projection
2022-09-27 14:40:55 +02:00
Even Rouault d0d8aefc99 proj_normalize_for_visualization(): take into account FORCE_OVER property from source operation (fixes #3347) 2022-09-27 11:53:30 +02:00
Sebastian Val aa18b0bf85 Doc: add preliminary documentation of suffix based specification of units (#3346)
Fixes #3345
2022-09-27 11:44:19 +02:00
Sebastian Val c6cc1e10c7 Typo fix 2022-09-27 00:02:34 -07:00
Sebastian Val 7045b70c02 Doc updates 2022-09-26 23:23:00 -07:00
Sebastian Val c5bd9d5357 Typo fix 2022-09-25 17:01:28 -07:00
Sebastian Val c1b5cae00a Updating input from radians to decimal degrees and adding tests and docs to reflect. 2022-09-25 16:55:48 -07:00
Even Rouault 56b3de5f77 Merge pull request #3342 from rouault/fix_3340
WKT import: 3D-promote base CRS of 3D DerivedProjectedCRS (fixes #3340)
2022-09-25 12:59:08 +02:00
Even Rouault 60dc551e62 Merge pull request #3341 from rouault/fix_3311
Build: link geodtest against libm when available (fixes #3311)
2022-09-24 13:16:39 +02:00
Even Rouault d136da0b85 WKT import: 3D-promote base CRS of 3D DerivedProjectedCRS (fixes #3340)
With the fix
```
$ projinfo -s  EPSG:6318+6360 -t @derivedproj3D.wkt --spatial-test intersects -o PROJ -q

+proj=pipeline
  +step +proj=axisswap +order=2,1
  +step +proj=unitconvert +xy_in=deg +z_in=us-ft +xy_out=rad +z_out=m
  +step +proj=vgridshift +grids=us_noaa_g2018u0.tif +multiplier=1
  +step +proj=tmerc +lat_0=41 +lon_0=-73 +k=1 +x_0=0 +y_0=0 +ellps=GRS80
  +step +proj=unitconvert +xy_in=m +xy_out=us-ft +z_in=m +z_out=us-ft
  +step +proj=affine +xoff=5 +yoff=52 +zoff=10
  +step +proj=unitconvert +xy_in=us-ft +xy_out=m +z_in=us-ft +z_out=m
  +step +proj=unitconvert +xy_in=m +z_in=m +xy_out=us-ft +z_out=us-ft
  +step +proj=axisswap +order=2,1
```

where derivedproj3D.wkt is
```
DERIVEDPROJCRS["Custom Site Calibrated 3D CRS",
    BASEPROJCRS["Transverse Mercator centered in area of interest",
        BASEGEOGCRS["NAD83(2011)",
            DATUM["NAD83 (National Spatial Reference System 2011)",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]]],
        CONVERSION["Transverse Mercator",
            METHOD["Transverse Mercator",
                ID["EPSG",9807]],
            PARAMETER["Latitude of natural origin",41,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8801]],
            PARAMETER["Longitude of natural origin",-73,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8802]],
            PARAMETER["Scale factor at natural origin",1,
                SCALEUNIT["unity",1],
                ID["EPSG",8805]],
            PARAMETER["False easting",0,
                LENGTHUNIT["US survey foot",0.304800609601219],
                ID["EPSG",8806]],
            PARAMETER["False northing",0,
                LENGTHUNIT["US survey foot",0.304800609601219],
                ID["EPSG",8807]]]],
    DERIVINGCONVERSION["Affine transformation as PROJ-based",
        METHOD["PROJ-based operation method: +proj=pipeline  +step +proj=unitconvert +xy_in=m +xy_out=us-ft +z_in=m +z_out=us-ft +step +proj=affine +xoff=5 +yoff=52 +zoff=10 +step +proj=unitconvert +xy_in=us-ft +xy_out=m +z_in=us-ft +z_out=m"]],
    CS[Cartesian,3],
        AXIS["(Y)",north,
            ORDER[1],
            LENGTHUNIT["US survey foot",0.304800609601219,
                ID["EPSG",9003]]],
        AXIS["(X)",east,
            ORDER[2],
            LENGTHUNIT["US survey foot",0.304800609601219,
                ID["EPSG",9003]]],
        AXIS["(Z)",up,
            ORDER[3],
            LENGTHUNIT["US survey foot",0.304800609601219,
                ID["EPSG",9003]]]]
```
2022-09-24 13:12:15 +02:00
Even Rouault 59589196be Build: link geodtest against libm when available (fixes #3311) 2022-09-24 12:24:28 +02:00
Even Rouault a3c8423c6a Merge pull request #3324 from rouault/fix_gdal_5646
CMake: add a INSTALL_LEGACY_CMAKE_FILES option (fixes OSGeo/gdal#5646)
2022-09-23 16:54:01 +02:00
Sebastian Val 93b555e8bb Adding docs updates for SOM projection. 2022-09-22 18:40:48 -07:00
Sebastian Val 3d52fff248 Unifying som.cpp and lsat.cpp. Fixup unit tests for name change from genericsom -> som. 2022-09-22 17:06:52 -07:00
Sebastian Val ce2c626f39 Removing tests that are implemented more portably in builtins.gie 2022-09-22 16:12:09 -07:00
Sebastian Val d00acbfe73 Renaming genericsom -> som 2022-09-22 16:11:20 -07:00
Sebastian Val 65c60c2b7f Unifying genericsom and misrsom 2022-09-22 15:40:09 -07:00
Sebastian Val e0ad66521e Merge branch 'master' of https://github.com/OSGeo/PROJ into genericsom 2022-09-22 12:12:35 -07:00
Sebastian Val 1b143594ff Adding genericsom projection support for non-repeating paths upcoming for Terra spacecraft. 2022-09-22 12:00:30 -07:00
Even Rouault f1766c1ffa Merge pull request #3334 from rouault/fix_3328_extra
createOperations(): tune name and remarks of some vertical transformations
2022-09-22 14:14:24 +02:00
Even Rouault 94cf10802c Merge pull request #3333 from rouault/fix_3328
Fix issue related to transforming to CGVD28 height (EPSG:5713)
2022-09-22 14:14:12 +02:00
Even Rouault ecc13abef3 createOperations(): tune name and remarks of some vertical transformations 2022-09-21 02:01:58 +02:00
Even Rouault 966ea2b25d Tests: test EPSG:4326+5773 to EPSG:4326+5713 (refs #3328) 2022-09-20 15:38:53 +02:00
Even Rouault 435a78e997 PROJ string pipeline optimizer: add optimization for EPSG:4326+5773 to EPSG:4326+5713 transformation (refs #3328) 2022-09-20 15:29:24 +02:00
Even Rouault 67017dbd03 createOperations: add missing +proj=push +v_1 +v_2 / +proj=pop +v_1 +v_2 in some vertical transformations (refs #3328) 2022-09-20 15:28:06 +02:00
Even Rouault 44449575bd Database: alias HT2_1997.byn to ca_nrc_HT2_2010v70.tif (refs #3328) 2022-09-20 15:27:11 +02:00
Even Rouault 28f4486331 Database: create a undeprecated copy of EPSG:9123 grid transformation 'NAD83(CSRS) to CGVD28 height (1)' (fixes #3328) 2022-09-20 15:26:45 +02:00
Kristian Evers 274be71ada Merge pull request #3331 from AlexBass05/fix-tutorial-typos
Fix typos/formatting in tutorials
2022-09-20 14:21:56 +02:00
Alexander Nehrbass 05a36cbb4f Fix typos/formatting in tutorials 2022-09-20 11:42:09 +02:00
Kristian Evers 2d618ac905 Merge pull request #3330 from OSGeo/backport-3329-to-master
[Backport master] Added missing punctuation mark
2022-09-20 09:59:50 +02:00
Kristian Evers 52521676eb Merge pull request #3329 from khurramkhalil/patch-1
Added missing punctuation mark
2022-09-20 07:45:13 +00:00
Even Rouault 52fe0f5b2b cppcheck.sh: update to support v2.10 2022-09-17 18:13:31 +02:00
Even Rouault 04ae8bc9db Merge pull request #3327 from jjimenezshaw/alterCSLinearUnit-bound
Implement alterCSLinearUnit for BoundCRS
2022-09-15 22:56:09 +02:00
Javier Jimenez Shaw 1bc631bce7 implement alterCSLinearUnit for BoundCRS 2022-09-15 21:20:26 +02:00
Even Rouault ad660a8398 CMake: add a INSTALL_LEGACY_CMAKE_FILES option (fixes OSGeo/gdal#5646)
to control whether the PROJ4 legacy target should be exported (refs #3168)

The default is ON, unless PROJ is built as part of a CMake subproject.
2022-09-15 12:40:36 +02:00
Even Rouault cb29e996ec Merge pull request #3325 from jjimenezshaw/alterCSLinearUnit-compound
implement alterCSLinearUnit for CompoundCRS
2022-09-15 08:45:26 +02:00
Javier Jimenez Shaw a48a69e192 implement alterCSLinearUnit for CompoundCRS 2022-09-15 00:29:56 +02:00
Kristian Evers b674a2f0d7 Merge pull request #3304 from kbevers/tutorials
Tutorials for the docs
2022-09-14 18:53:26 +02:00
Kristian EversandThomas Knudsen b2370bfcb7 Add tutorial on geodesic calculations with geod
Originally developed for the EUREF 2019 meeting by Thomas Knudsen.

Co-authored-by: Thomas Knudsen <thokn@sdfe.dk>
2022-09-14 18:14:16 +02:00
9fc569796c Add transformation tutorial to docs
This is a tutorial originally made for the EUREF meeting in 2019.

Co-authored-by: Thomas Knudsen <thokn@sdfe.dk>
Co-authored-by: Even Rouault <even.rouault@spatialys.com>
2022-09-14 18:14:10 +02:00
Even Rouault 75a0a556d9 Merge pull request #3319 from jjimenezshaw/alterCSLinearUnit-derivedProj
Implement alterCSLinearUnit for DerivedProjectedCRS
2022-09-13 14:14:15 +02:00
Javier Jimenez Shaw 2e7501d521 implement alterCSLinearUnit for DerivedProjectedCRS 2022-09-13 12:48:48 +02:00
Javier Jimenez Shaw 137caf78a2 Add method DerivedProjectedCRS::demoteTo2D and implement promoteTo3D (#3317) 2022-09-11 22:39:57 +02:00
Even Rouault 524ceda302 Merge pull request #3313 from rouault/gtg_arcsecond_per_year
GeoTIFF grids: support UNITTYPE=arc-seconds per year for temporal hgridshift
2022-09-08 22:30:27 +02:00
Even Rouault e13331aa69 Merge pull request #3312 from rouault/doc_grid_formats
Docs: update doc of grid-based methods to mention/advertize more GeoTIFF
2022-09-08 22:30:16 +02:00
Even Rouault b4ce9566cb geodetictiffgrids.rst: add a Revisions section 2022-09-06 17:00:28 +02:00
Even Rouault a6b99f949f Docs: update doc of grid-based methods to mention/advertize more GeoTIFF 2022-09-06 15:45:46 +02:00
Even Rouault 33a4e3060e GeoTIFF grids: support UNITTYPE=arc-seconds per year for temporal hgridshift 2022-09-06 11:41:56 +02:00
Kristian Evers 4cc46f72bf docs: remove duplicate target name on download page 2022-09-01 20:42:35 +02:00
Kristian Evers eda7733c00 Update github_version in doc config 2022-09-01 17:09:08 +02:00
Kristian Evers 674617f281 Bump version numbers in preparation for 9.2.0 release 2022-09-01 17:07:24 +02:00
Kristian Evers c9d544a6d2 Update website for 9.1.0 release 2022-09-01 16:41:10 +02:00
Even Rouault de9a08fe6e Merge pull request #3307 from rouault/epsg_10_076
Database: update to EPSG v10.076
2022-09-01 13:32:24 +02:00
Even Rouault e028ab9e32 Database: update to EPSG v10.076 2022-08-31 19:03:48 +02:00
Kristian EversandMike Taves 8bd0a7daab Avoid using upper case project name in doc install dir (#3299)
Closes #3296 

Co-authored-by: Mike Taves <mwtoews@gmail.com>
2022-08-28 11:32:23 +02:00
Even Rouault e851d68944 Merge pull request #3300 from rouault/fix_3297
JSON output: avoid rounding issues with integer values in a double on…
2022-08-27 16:52:08 +02:00
Even Rouault 7f0cb3df51 Merge pull request #3302 from rouault/fix_3295
CMake: fix symbol detection when CFLAGS includes -Werror=something (fixes #3295)
2022-08-27 15:03:42 +02:00
Even Rouault 28fdeefa04 CMake: fix symbol detection when CFLAGS includes -Werror=something (fixes #3295) 2022-08-27 13:02:33 +02:00
Even Rouault e282e9fae8 JSON output: avoid rounding issues with integer values in a double on some architectures (fixes #3297) 2022-08-27 12:41:41 +02:00
Kristian Evers 2866b3dc13 Update address of OSGeo file server in HOWTO-RELEASE 2022-08-26 10:29:46 +02:00
Kristian Evers 74e720145e Update PROJ-data version in docs for 9.1.0 release 2022-08-25 16:00:43 +02:00
Kristian Evers 3c26827152 Update man-pages from Sphinx-docs 2022-08-25 15:58:59 +02:00
Kristian Evers f847ef7176 Update NEWS for 9.1.0 2022-08-25 15:15:59 +02:00
Even Rouault 009c2237cc Merge pull request #3292 from himsve/svd2006
Add Svalbard geoid grid no_kv_arcgp-2006-sk to grid alternatives
2022-08-24 22:57:46 +02:00
Sveinung Himle ad71f81174 Add Svalbard grid no_kv_arcgp-2006-sk to grid alternatives 2022-08-24 11:07:26 +02:00
Even Rouault 1384b90602 Merge pull request #3291 from rouault/cppcheck_fixes
Cppcheck fixes
2022-08-23 14:41:40 +02:00
Even Rouault 990ecba85f Merge pull request #3290 from rouault/projinfo_listcrs_crash
projinfo: fix crash on --list-crs when proj.db cannot be opened
2022-08-21 17:49:48 +02:00
Even Rouault 2a18a879af Merge pull request #3289 from rouault/fix_3288
getCRSInfoList(): fix retrieval of projected_crs given by text_definition only (fixes #3288)
2022-08-21 17:49:40 +02:00
Even Rouault 09854c8cf1 putp6: avoid false positive warning with latest cppcheck 2022-08-21 16:24:55 +02:00
Even Rouault 575d4a5600 struct pj_ctx: remove no longer used private member, and address warnings about members not copied in copy constructor 2022-08-21 16:24:37 +02:00
Even Rouault 9439044798 isea: remove unused structure member 2022-08-21 16:23:52 +02:00
Even Rouault ee9598c36e chamb: remove unused structure member 2022-08-21 16:23:41 +02:00
Even Rouault 58a8873c53 gie.cpp: remove unused structure member 2022-08-21 16:23:29 +02:00
Even Rouault 473e75f2f8 common.hpp: address noExplicitConstructor warnings 2022-08-21 16:23:09 +02:00
Even Rouault c119bf47a6 projinfo: fix crash on --list-crs when proj.db cannot be opened 2022-08-21 15:15:16 +02:00
Even Rouault 2c2c84b307 getCRSInfoList(): fix retrieval of projected_crs given by text_definition only (fixes #3288) 2022-08-21 15:09:51 +02:00
Even Rouault 2194eab214 Formatting fixes 2022-08-09 16:03:01 +02:00
Even Rouault 203f38afbf Merge pull request #3283 from jjimenezshaw/compound-derived-projected
Allow a Compound CRS with derived projected
2022-08-09 14:40:56 +02:00
Javier Jimenez Shaw 14cb8adb3f test for operation with compound with derived projected 2022-08-09 12:06:56 +02:00
Javier Jimenez Shaw 2e4017859e test derived projected 2D + derived vertical in compound 2022-08-05 20:00:47 +02:00
Javier Jimenez Shaw bcadcbc024 Allow a Compound CRS with derived projected 2022-08-05 19:47:37 +02:00
Even Rouault 68fa2def43 Merge pull request #3282 from rouault/fix_bbox
createOperations() / proj_trans(): better take into account area of interest name / do not only keep first returned coordinate operation
2022-08-05 10:38:32 +02:00
Even Rouault fbc3546804 Merge pull request #3281 from rouault/derived_proj_crs_with_proj_based_method
createOperations(): take into account axis unit and inversion of target DerivedProjectedCRS
2022-08-05 10:38:20 +02:00
Even Rouault a94f2024f3 Merge pull request #3280 from rouault/fix_3279
WKT parser: fix issue when parsing some WKT1 with Hotine_Oblique_Mercator_Azimuth_Center and ignoring rectified_grid_angle (fixes #3279)
2022-08-05 10:38:12 +02:00
Even Rouault 36e711e31a createOperations() / proj_trans(): better take into account area of interest name / do not only keep first returned coordinate operation
Fixes https://lists.osgeo.org/pipermail/proj/2022-August/010699.html
2022-08-04 19:49:30 +02:00
Even Rouault 601eb6a805 createOperations(): take into account axis unit and inversion of target DerivedProjectedCRS
Fixes https://lists.osgeo.org/pipermail/proj/2022-August/010697.html
2022-08-04 17:06:03 +02:00
Even Rouault 89130c3764 WKT parser: fix issue when parsing some WKT1 with Hotine_Oblique_Mercator_Azimuth_Center and ignoring rectified_grid_angle (fixes #3279) 2022-08-04 16:20:07 +02:00
github-actions[bot]andMichael Sumner c482ea8d37 Update ellipsoids.rst: typo (#3275) (#3276)
Co-authored-by: Michael Sumner <mdsumner@gmail.com>
2022-08-03 14:28:33 +12:00
Even Rouault 85b0cbd96e Merge pull request #3274 from rouault/wkt1_import_incompatible_angular_unit
WKT1 import: better deal when the angular unit of the GEOGCS[] of the…
2022-08-02 14:59:14 +02:00
Even Rouault 421a6b8713 Merge pull request #3273 from rouault/epsg_10_074
Database: update to EPSG v10.074
2022-08-02 14:57:56 +02:00
Even Rouault 0ded90c917 Merge pull request #3271 from rouault/wkt2_unitless_parameter
WKT2 parser: allow unit-less PARAMETER for coordinate operations
2022-08-02 14:57:41 +02:00
Even Rouault d81f0aaeb5 WKT1 import: better deal when the angular unit of the GEOGCS[] of the PROJCS[] doesn't match the one from the database 2022-08-01 19:50:29 +02:00
Even Rouault 80c2164980 Database: update to EPSG v10.074 2022-08-01 17:38:35 +02:00
Even Rouault 114ff2d52b WKT2 parser: allow unit-less PARAMETER for coordinate operations
Confirmed through OGC WKT CRS list that 18-010r7 is erroneous and should
allow unit-less PARAMETER. This will be corrected in a future amendement
of the specification.
2022-08-01 16:37:04 +02:00
Even Rouault e06520d274 Merge pull request #3270 from rouault/vertoffsetslope_as_derivingconversion
Make "Vertical Offset and Slope" method usable as a deriving conversion of a DerivedVerticalCRS
2022-08-01 16:21:41 +02:00
Even Rouault 3047ff7e07 WKT import: use 'EPSG code for Horizontal CRS' parameter to derive interpolation CRS 2022-07-30 21:38:05 +02:00
Even Rouault 691903e1e7 Move Transformation::exportToPROJString() to SingleOperation, so transformations can be used as deriving conversions 2022-07-30 19:02:56 +02:00
Even Rouault 398649d9e7 Merge pull request #3268 from rouault/epsg_10_068
Database: update to EPSG 10.068 (fixes #3250)
2022-07-22 12:56:36 +02:00
Even Rouault 1e9d2c3ad6 Database: update to EPSG 10.068 (fixes #3250) 2022-07-22 11:19:08 +02:00
Even Rouault b0517131e0 Merge pull request #3266 from rouault/fix_3263
Database: generate null transformation between geodetic/vertical datum ensemble and its members (fixes #3263)
2022-07-22 10:54:27 +02:00
Even Rouault de271749d9 Database: generate null transformation between geodetic/vertical datum ensemble and its members (fixes #3263) 2022-07-22 01:11:27 +02:00
Even Rouault 2d8cf76576 Merge pull request #3265 from rouault/optimize_opposite_helmert
PROJ pipeline generator: recognize opposite Helmert transformations using a different convention
2022-07-20 16:26:38 +02:00
Even Rouault 6109096ace Merge pull request #3264 from rouault/fix_ossfuzz_49256
createOperations(): avoid potential infinite recursions (fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49256)
2022-07-20 16:26:27 +02:00
Even Rouault b80ed2aa7f PROJ pipeline generator: recognize opposite Helmert transformations using a different convention
This helps for example for
projinfo -s EPSG:4284 -t "+proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0 +ellps=krass +towgs84=25,-141,-78.5,0,0.35,0.736,0 +units=m +no_defs +type=crs"

where we previously generated the following pipeline:
```
+proj=pipeline
  +step +proj=axisswap +order=2,1
  +step +proj=unitconvert +xy_in=deg +xy_out=rad
  +step +proj=push +v_3
  +step +proj=cart +ellps=krass
  +step +proj=helmert +x=25 +y=-141 +z=-78.5 +rx=0 +ry=-0.35 +rz=-0.736 +s=0
        +convention=coordinate_frame
  +step +inv +proj=helmert +x=25 +y=-141 +z=-78.5 +rx=0 +ry=0.35 +rz=0.736 +s=0
        +convention=position_vector
  +step +inv +proj=cart +ellps=krass
  +step +proj=pop +v_3
  +step +proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0 +ellps=krass
```

With that optimization, it reduces to:
```
+proj=pipeline
  +step +proj=axisswap +order=2,1
  +step +proj=unitconvert +xy_in=deg +xy_out=rad
  +step +proj=tmerc +lat_0=0 +lon_0=63 +k=1 +x_0=11500000 +y_0=0 +ellps=krass
```

Related to https://lists.osgeo.org/pipermail/proj/2022-July/010671.html
2022-07-19 16:29:52 +02:00
Even Rouault 2f681ec1cb createOperations(): avoid potential infinite recursions (fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=49256)
The test case of ossfuzz #49256 involves a "a=inf" PROJ string
parameter, which is normally rejected by our parsing code. I'm not sure
how in the ossfuzz context this gets accepted...
2022-07-19 14:45:45 +02:00
Even Rouault 5b2d59b68f Merge pull request #3260 from OSGeo/backport-3259-to-master
[Backport master] Doc: update OSGeo4W installation instructions for Windows
2022-07-13 20:52:31 +02:00
Even Rouault 2cba23371e Merge pull request #3259 from agiudiceandrea/patch-1
Doc: update OSGeo4W installation instructions for Windows
2022-07-13 16:16:48 +00:00
Even Rouault 1bae784224 Merge pull request #3248 from rouault/WGS84_to_GDA2020
createOperations(): prefer simpler pipelines / affects WGS 84 to GDA94/GDA2020
2022-07-13 10:57:40 +02:00
Even Rouault c79d504125 Merge pull request #3257 from rouault/database_esri_arcgis_pro_3_0
Database: resync ESRI objects with https://github.com/Esri/projection-engine-db-doc/tree/v3.0.0
2022-07-12 18:24:23 +02:00
Even Rouault 78f819a811 Merge pull request #3256 from rouault/esri_wkt_morph_fix
WKT ESRI: fix related to projected CRS export and add support for geographic 3D CRS with LINUNIT node
2022-07-12 18:24:13 +02:00
Even Rouault 7c1033053b Merge pull request #3253 from rouault/PROJ_DATA
Introduce PROJ_DATA environment variable to deprecate PROJ_LIB
2022-07-12 18:24:02 +02:00
Even Rouault 1ee35a261a Database: resync ESRI objects with https://github.com/Esri/projection-engine-db-doc/tree/v3.0.0 2022-07-09 18:50:08 +02:00
Even Rouault 35538f9969 WKT ESRI export: use LINUNIT node for geographic 3D CRS, unless WKTFormatter::setAllowLINUNITNode(false) or proj_as_wkt(..., options = ['ALLOW_LINUNIT_NODE=NO]) is specified 2022-07-09 18:22:08 +02:00
Even Rouault da21da63d6 WKT ESRI import: support LINUNIT node inside GEOGCS which indicates a geographic 3D CRS 2022-07-09 17:26:51 +02:00
Even Rouault 0574b26a55 WKT ESRI export: fix issue with some projected CRS, such as EPSG:3800, that have the same name as a deprecated one 2022-07-09 16:27:30 +02:00
Even Rouault 4f3e1955eb Formatting fix 2022-07-09 16:01:41 +02:00
Even Rouault 7ed1b36a26 PROJ utilities: emit deprecation warning on stderr when PROJ_LIB is set 2022-07-08 13:01:23 +02:00
Even Rouault 0e24eeec8c Merge pull request #3251 from rouault/fix_3206
proj.pc/proj-config.cmake generation: deal with CMAKE_INSTALL_xxxx being possibly an absolute path (fixes #3206)
2022-07-08 12:59:27 +02:00
Even Rouault 319a879a12 Introduce PROJ_DATA environment variable to deprecate PROJ_LIB
Given its looong existence and to avoid disruption in existing workflows,
PROJ_LIB will still work for the time being, and should probably be kept
functional at least for the PROJ 10 series.
A runtime debug message is logged (PROJ_DEBUG>=2) if using PROJ_LIB to
point to the recommended PROJ_DATA.

The PROJ_LIB_ENV_VAR_TRIED_LAST CMake option is renamed consistently to
PROJ_DATA_ENV_VAR_TRIED_LAST and a CMake warning is emitted when the old
name is used (in which case the value of PROJ_LIB_ENV_VAR_TRIED_LAST is
used for PROJ_DATA_ENV_VAR_TRIED_LAST)

The rational for this change is:
- PROJ_LIB is a misleading name. Some users believe it is related to the
  loading of the PROJ executable library.
- to align nicely with GDAL_DATA since they are about the same thing.
2022-07-07 18:20:00 +02:00
Even Rouault 24be1bc66e proj.pc/proj-config.cmake generation: deal with CMAKE_INSTALL_xxxx being possibly an absolute path (fixes #3206) 2022-07-05 21:39:50 +02:00
Even Rouault 6607dec305 createOperations(): prefer simpler pipelines / affects WGS 84 to GDA94/GDA2020
Prior to this change, transforming to WGS 84 to GDA2020 used in priority
transformation EPSG:9690 ("WGS 84 to GDA2020 (3)"), which is a Helmert
transformation assuming WGS 84 ~= GDA94.
But transforming from GDA2020 to WGS 84 used EPSG:8450 "GDA2020 to WGS
84 (2)" which is a no-op.
Both have the same advertized accuracy 3m
Similar case for WGS 84 <--> GDA94.

This non symetric behaviour is clearly non-desirable in scenarios where
data is transformed back and forth. I believe it is preferable to use in
that situation of transformations with the same accuracy to use the one
that involves the less transformation steps, ie the no-op one.

Seen when checking https://github.com/OSGeo/PROJ/issues/2348 again
(whose bulk issues happens to have been fixed by other previous commits)
2022-07-03 19:25:00 +02:00
Even Rouault a390c57ab5 Merge pull request #3242 from rouault/epsg_10_066
Database: update to EPSG 10.066
2022-07-02 16:27:40 +02:00
Even Rouault 86f6620c47 Merge pull request #3243 from visr/patch-1
Julia package renamed from Proj4.jl to Proj.jl
2022-07-01 22:22:25 +02:00
Martijn Visser e0dd54c35b Julia package renamed from Proj4.jl to Proj.jl
It currently wraps and provides builds for PROJ 9.
2022-07-01 21:43:05 +02:00
Jan Vaillant 424be5cc0b Database: add ON DELETE CASCADE to table schemas to help minimizing database size (#3237)
Fixes #3022
2022-07-01 20:33:49 +02:00
Even Rouault e6b7089cb6 Database: bump PROJ_DATA.VERSION to 1.11 2022-07-01 20:22:04 +02:00
Even Rouault ab5e4f196f Database: add an alias for HT2_2010_CGG2013a.byn added per https://github.com/OSGeo/PROJ-data/pull/84 2022-07-01 20:21:22 +02:00
Even Rouault 71f03089e8 Database: update to EPSG 10.066 2022-07-01 17:36:03 +02:00
Even Rouault 19058f05df Merge pull request #3241 from rouault/fix_3240
NTv2 and GTX grid readers: add a cache of lines to speed-up (fixes #3240)
2022-06-29 12:05:06 +02:00
Even Rouault afea3b9371 Merge pull request #3234 from rouault/wkt_projjson_adj
WKT and PROJJSON adjustments
2022-06-28 13:48:14 +02:00
Even Rouault b9c75f4568 NTv2 and GTX grid readers: add a cache of lines to speed-up (fixes #3240) 2022-06-28 13:47:03 +02:00
Even Rouault 9e59ec3a08 Merge pull request #3239 from rouault/fix_3238
proj_grid_info(): make it work again with remote grids (refs #3238)
2022-06-27 13:11:06 +02:00
Even Rouault 4af6147894 proj_grid_info(): make it work again with remote grids (refs #3238) 2022-06-26 22:01:10 +02:00
Even Rouault da259fe0ba Merge pull request #3236 from rouault/epsg_10_065
Database: update to EPSG 10.065
2022-06-23 12:32:12 +02:00
Even Rouault e956bad627 Database: update to EPSG 10.065 2022-06-22 18:58:55 +02:00
Even Rouault 1ee3b061d1 PROJJSON import/export: use 'deformation_models' member for GeodeticCRS/VerticalCRS
(limited to one instance), and remove deprecated 'deformation_model' in
DynamicGeodeticReferenceFrame/DynamicVerticalReferenceFrame)
2022-06-22 17:18:13 +02:00
Even Rouault dda5c80c61 PROJJSON schema: add PointMotionOperation and 'deformation_models' members to GeodeticCRS and VerticalCRS 2022-06-22 17:18:13 +02:00
Even Rouault 2e1138c18e PROJJSON import/export: add 'geoid_models' to allow several geoid models in a VerticalCRS 2022-06-22 17:06:27 +02:00
Even Rouault 49862e1331 WKT2 import/export: accept several GEOIDMODEL in a VerticalCRS
Amendment discussed during 2022 June OGC TC meeting. Abstract Topic 2
allows it, but WKT2 didn't take into account this multiplicity
2022-06-22 17:06:27 +02:00
Even Rouault 42c114045f travis/install.sh: make json validation work with older jsonschema 2022-06-22 17:06:26 +02:00
Even Rouault 6608bd8d99 Merge pull request #3235 from rouault/ci_cancel
CI: Cancel PR and branch workflows on new push
2022-06-22 16:26:15 +02:00
Even Rouault 723c8aedd0 CI: Cancel PR and branch workflows on new push
Adaptation of https://github.com/OSGeo/gdal/commit/1e3abcfc9bcef74c3c914910b1b6e91505e967ae
2022-06-22 14:16:05 +02:00
Even Rouault 8d7e27c8b2 Resync schemas/v0.5/projjson.schema.json with data/projjson.schema.json 2022-06-22 12:05:24 +02:00
Even Rouault 2aa8bc64ab Doc: fix news.rst 2022-06-19 15:53:37 +02:00
Even Rouault 7a75798b77 Merge pull request #3233 from rouault/optim_isequivalent_to
IComparable::isEquivalentTo() optimizations
2022-06-19 15:42:46 +02:00
Even Rouault b241fbbb8c SingleCRS::baseIsEquivalentTo(): avoid temporary object creation when comparing CRS with datum ensemble with Criterion::EQUIVALENT 2022-06-18 17:38:20 +02:00
Even Rouault 59c999c1a1 IComparable::isEquivalentTo(): test first pointer equality 2022-06-18 17:37:38 +02:00
Kristian Evers 019dad3524 Update website for 9.0.1 release 2022-06-15 16:35:07 +02:00
Even Rouault 6d86b77616 Merge pull request #3231 from rouault/fix_3229
createOperations(): fix projected CRS with non-metre horiz&vertical unit and towgs84 to gencentric CRS (fixes #3229)
2022-06-14 20:57:30 +02:00
Even Rouault 83b86a9ef4 createOperations(): fix projected CRS with non-metre horiz&vertical unit and towgs84 to gencentric CRS (fixes #3229) 2022-06-14 20:18:45 +02:00
Even Rouault ca1ec30bcc Merge pull request #3228 from p-assali/master
Added French grid fr_ign_RAF20 to grid alternatives
2022-06-09 14:50:11 +02:00
Pierre ASSALI 0ac738935a Add French grid fr_ign_RAF20 to grid alternatives 2022-06-09 13:53:37 +02:00
Even Rouault f6f3c8c67c Merge pull request #3226 from rouault/fix_ossfuzz_47873
createOperations(): fix infinite recursion in a complex case
2022-06-09 12:21:56 +02:00
Mike Taves 54c9e55066 Fix typo in NEWS: Greenwhich->Greenwich 2022-06-09 16:23:50 +12:00
Even Rouault 678be6a1b7 createOperations(): fix infinite recursion in a complex case. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47873 2022-06-08 20:39:17 +02:00
Even Rouault f7999f2b97 typo fix in code comment 2022-06-08 00:21:33 +02:00
Kristian Evers b09be77a3c Update PROJ-data version in database 2022-06-07 21:29:47 +02:00
Kristian Evers aa7fe80337 Update NEWS for 9.0.1 2022-06-07 21:29:33 +02:00
Even Rouault c1083644bc Merge pull request #3222 from rouault/sphinx_5_compat
Doc: fix build issue with Sphinx 5.0
2022-06-05 21:38:01 +02:00
Even Rouault 21448ac5d8 Doc: fix build issue with Sphinx 5.0 2022-06-05 19:45:30 +02:00
Even Rouault 7aca0f5a2a Merge pull request #3221 from rouault/projjson_unknown_member
PROJJSON parser: do not error out if a datum ensemble member is unknown in the database
2022-06-05 19:43:53 +02:00
Even Rouault 4b5d1efe50 PROJJSON parser: do not error out if a datum ensemble member is unknown in the database
Fix issue raised in https://github.com/opengeospatial/geoparquet/discussions/110
2022-06-05 18:18:32 +02:00
Even Rouault 4026f88b5c Merge pull request #3214 from rouault/projjson_no_order
PROJJSON spec: mention the intentional lack of axis order member
2022-06-01 13:55:09 +02:00
Even Rouault 3972f1be18 Merge pull request #3216 from rouault/projjson_0_5
Bump PROJJSON to v0.5
2022-06-01 13:54:59 +02:00
George Ouzounoudis 0bb7d89475 Refactor horner code (#3217)
As discussed in https://github.com/OSGeo/PROJ/pull/3133 the existing
functions are now a bit complicated and can be refactor to simpler ones.

Checks for invalid direction are now unnecessary, as the forward and
reverse paths are only accessible through fwd4d and inv4d function
callbacks in the projection object.

Checks for a nullptr HORNER transformation object are too unnecessary as
enough checks are done in the projection object construction.
2022-06-01 13:54:21 +02:00
Even Rouault a76f02bcf6 PROJJSON: Add temporal_extent and vertical_extent members in object usage 2022-05-28 17:18:28 +02:00
Even Rouault 69595b4d6e PROJJSON: add meridian member in Axis object type. Bump version to v0.5 2022-05-28 16:43:26 +02:00
Even Rouault ced8793aa1 Merge pull request #3215 from OSGeo/backport-3213-to-master
[Backport master] projjson.rst: formatting fix
2022-05-27 15:39:22 +02:00
Even Rouault cc317bad53 Merge pull request #3213 from OSGeo/rouault-patch-1
projjson.rst: formatting fix
2022-05-27 13:38:33 +00:00
Even Rouault a7757b100d docs/docbuild/Dockerfile: do not use sphinxcontrib-spelling 7.4.0
We hit bug https://github.com/sphinx-contrib/spelling/issues/167
Cf https://github.com/OSGeo/PROJ/runs/6618047168?check_suite_focus=true
2022-05-27 14:11:19 +02:00
Even Rouault 6aeec12239 PROJJSON spec: mention the intentional lack of axis order member 2022-05-26 23:50:35 +02:00
Even Rouault fc742ba8c1 Merge pull request #3211 from rouault/fix_3210
WKT import: correctly deal with absence of Latitude_Of_Origin parameter in WKT1 ESRI with Stereographic projection (fixes #3210)
2022-05-24 00:17:11 +02:00
Even Rouault d22972374f WKT import: correctly deal with absence of Latitude_Of_Origin parameter in WKT1 ESRI with Stereographic projection (fixes #3210) 2022-05-23 21:57:34 +02:00
Even Rouault dc02907ada Merge pull request #3207 from rouault/epsg_10_064
Database: update to EPSG 10.064
2022-05-19 11:22:32 +02:00
Even Rouault 7975e11a55 Fix warning with MSVC 2015 2022-05-19 03:16:33 +02:00
Even Rouault 83bffbf791 WKT export of transformation: do not put '(approx. inverse)' in inverse Helmert transformation name when it is a pure translation, as the approximate inverse is actually exact 2022-05-19 03:00:32 +02:00
Even Rouault e0bbf29542 Database: update to EPSG 10.064 2022-05-19 02:38:59 +02:00
Even Rouault 9f89c7288e docs/source/conf.py: update github_version 2022-05-16 21:39:55 +02:00
Even Rouault 066495ed8d Merge pull request #3204 from OSGeo/rouault-patch-1
projjson.rst: formatting fix
2022-05-16 21:37:54 +02:00
Even Rouault 095b7cee91 projjson.rst: formatting fix 2022-05-16 21:37:37 +02:00
Even Rouault 133b25b1e3 Merge pull request #3202 from rouault/fix_ossfuzz_47475
Identifier::isEquivalentName(): fix when ending by ' + ' which could …
2022-05-16 18:53:11 +02:00
Even Rouault 1f5d7cdaf6 Identifier::isEquivalentName(): fix when ending by ' + ' which could indirectly cause an infinite stack call in master (fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=47475) 2022-05-16 17:29:06 +02:00
Even Rouault d9ccb4b254 Merge pull request #3200 from rouault/vertoffset
Implement Vertical Offset and slope transformation method
2022-05-16 16:18:34 +02:00
Even Rouault 8bdd05fb23 vertoffset: add description of parameters to PROJ_HEAD() 2022-05-15 13:38:36 +02:00
Even Rouault c250b3f187 Map EPSG:1046 operation method to PROJ +proj=vertoffset (fixes #3194) 2022-05-15 11:27:28 +02:00
Even Rouault 72e8f89451 Add a +proj=vertoffset method for Vertical Offset And Slope transformation (refs #3194) 2022-05-15 11:27:28 +02:00
Even Rouault 0d97cb786b Merge pull request #3127 from rouault/wkt1_and_proj4_geoidgrid_import
Change order of horizontal and vertical operations when dealing with WKT1 / PROJ4 compound CRS
2022-05-15 11:00:08 +02:00
Even Rouault c1472dc459 Merge pull request #3193 from rouault/fix_3191
createOperations(): fix/improve result of 'BD72 + Ostend height ' to 'WGS84+EGM96 height' (fixes #3191)
2022-05-13 21:21:54 +02:00
Even Rouault 906fc57d77 Change hub CRS semantic with +geoidgrids, only if +geoid_crs=horizontal_crs is specified 2022-05-13 17:48:52 +02:00
Even Rouault a4cf6362d7 Change hub CRS semantics when importing from a PROJ.4 string with +geoidgrids, and modify order of horizontal and vertical steps
Previously when importing "+proj=something +datum/+towgs84/+nadgrids +geoidgrids",
the geoid transformation was referenced to WGS 84, instead of the
horizontal datum, which was a breakage with respect to PROJ < 6
behaviour.
Modify also the createOperations() logic in such situation to apply
first the vertical transformation and then the horizontal one when going
from the compound CRS to the final or intermediate geographic 3D CRS.
2022-05-13 17:48:52 +02:00
Even Rouault 2d2691dae1 Change hub CRS semantics when importing a WKT1 COMPD_CS with a EXTENSION PROJ4_GRIDS
Previously, when importing a WKT1 like

COMPD_CS["NAD83 + NAVD88 height",
    GEOGCS["NAD83",
        DATUM["North_American_Datum_1983",
            SPHEROID["GRS 1980",6378137,298.257222101,
                AUTHORITY["EPSG","7019"]],
            AUTHORITY["EPSG","6269"]],
        PRIMEM["Greenwich",0,
            AUTHORITY["EPSG","8901"]],
        UNIT["degree",0.0174532925199433,
            AUTHORITY["EPSG","9122"]],
        AUTHORITY["EPSG","4269"]],
    VERT_CS["NAVD88 height",
        VERT_DATUM["North American Vertical Datum 1988",2005,
            EXTENSION["PROJ4_GRIDS","@foo.gtx"],
            AUTHORITY["EPSG","5103"]],
        UNIT["metre",1.0,
            AUTHORITY["EPSG","9001"]],
        AXIS["Gravity-related height",UP],
        AUTHORITY["EPSG","5703"]]]

we modeled the vertical part as a BoundCRS of a vertical CRS with a hub
CRS being EPSG:4979 and a transformation from the vertical CRS to
EPSG:4979 using the specified grid.

This is quite questionable, and doesn't follow the semantics of the
GDAL <= 2.4 / PROJ < 6 era, where the grid was referenced to the
horizontal datum, rather than WGS 84.

So change this to use the promoted-to-3D geographic CRS of the compound CRS
as the hub CRS / geographic 3D of the vertical transformation.

Said otherwise, the WKT2 export of the above WKT is now:

COMPOUNDCRS["NAD83 + NAVD88 height",
    GEOGCRS["NAD83",
        DATUM["North American Datum 1983",
            ELLIPSOID["GRS 1980",6378137,298.257222101,
                LENGTHUNIT["metre",1]]],
        PRIMEM["Greenwich",0,
            ANGLEUNIT["degree",0.0174532925199433]],
        CS[ellipsoidal,2],
            AXIS["geodetic latitude (Lat)",north,
                ORDER[1],
                ANGLEUNIT["degree",0.0174532925199433]],
            AXIS["geodetic longitude (Lon)",east,
                ORDER[2],
                ANGLEUNIT["degree",0.0174532925199433]],
        ID["EPSG",4269]],
    BOUNDCRS[
        SOURCECRS[
            VERTCRS["NAVD88 height",
                VDATUM["North American Vertical Datum 1988"],
                CS[vertical,1],
                    AXIS["gravity-related height",up,
                        LENGTHUNIT["metre",1]],
                ID["EPSG",5703]]],
        TARGETCRS[
            GEOGCRS["NAD83",
                DATUM["North American Datum 1983",
                    ELLIPSOID["GRS 1980",6378137,298.257222101,
                        LENGTHUNIT["metre",1]],
                    ID["EPSG",6269]],
                PRIMEM["Greenwich",0,
                    ANGLEUNIT["degree",0.0174532925199433],
                    ID["EPSG",8901]],
                CS[ellipsoidal,3],
                    AXIS["geodetic latitude (Lat)",north,
                        ORDER[1],
                        ANGLEUNIT["degree",0.0174532925199433,
                            ID["EPSG",9122]]],
                    AXIS["geodetic longitude (Lon)",east,
                        ORDER[2],
                        ANGLEUNIT["degree",0.0174532925199433,
                            ID["EPSG",9122]]],
                    AXIS["ellipsoidal height (h)",up,
                        ORDER[3],
                        LENGTHUNIT["metre",1,
                            ID["EPSG",9001]]],
                REMARK["Promoted to 3D from EPSG:4269"]]],
        ABRIDGEDTRANSFORMATION["NAVD88 height to NAD83 ellipsoidal height",
            METHOD["GravityRelatedHeight to Geographic3D"],
            PARAMETERFILE["Geoid (height correction) model file","@foo.gtx",
                ID["EPSG",8666]]]]]
2022-05-13 17:47:34 +02:00
Even Rouault 5b655faacc Doc: enhance PROJJSON specification (#3190) 2022-05-13 15:11:48 +02:00
Even Rouault de231993b2 Merge pull request #3195 from rouault/fix_3179
Doc: mentions that Winkel Tripel has inverse method (fixes #3179)
2022-05-13 11:20:38 +02:00
Even Rouault db7cdf4966 Doc: mentions that Winkel Tripel has inverse method (fixes #3179) 2022-05-12 16:30:18 +02:00
Even Rouault 7cb23b3ef1 createOperations(): fix result of 'BD72 + Ostend height' to 'Amersfoort + NAP height' and similar situations where the vertical-to-vertical transformation is a concatenated operation of 2 operations sharing the same geographic CRS 2022-05-12 16:08:49 +02:00
Even Rouault 35cbc19dba createOperations(): fix/improve result of 'BD72 + Ostend height ' to 'WGS84+EGM96 height' (fixes #3191)
New result is:

```
$bin/projinfo -s EPSG:4313+5710 -t EPSG:9707

unknown id, BD72 to ETRS89 (3) + Inverse of ETRS89 to Ostend height (1) + ETRS89 to WGS 84 (1) + WGS 84 to EGM96 height (1), 2.03 m, Belgium - onshore., at least one grid missing

PROJ string:
+proj=pipeline
  +step +proj=axisswap +order=2,1
  +step +proj=unitconvert +xy_in=deg +xy_out=rad
  +step +proj=hgridshift +grids=be_ign_bd72lb72_etrs89lb08.tif
  +step +proj=vgridshift +grids=be_ign_hBG18.tif +multiplier=1
  +step +inv +proj=vgridshift +grids=us_nga_egm96_15.tif +multiplier=1
  +step +proj=unitconvert +xy_in=rad +xy_out=deg
  +step +proj=axisswap +order=2,1
```

```
$ echo 50.6 4.3 131.0 | PROJ_NETWORK=ON bin/cs2cs EPSG:4313+5710 EPSG:4326+5773 -d 3
50.599	4.301 128.592
```
2022-05-12 12:38:05 +02:00
Even Rouault 89f05784d1 PROJ string transformation output: improve pipeline of 'OSGB36 / British National Grid + ODN height' to 'WGS 84 + EGM96 height' (refs https://github.com/OSGeo/PROJ/issues/3191#issuecomment-1124223268) 2022-05-12 12:25:01 +02:00
Even Rouault 67895fa1ef Merge pull request #3188 from rouault/fix_3186
WKT import: deal with Projected CRS that is a mix of WKT1:GDAL / WKT1:ESRI (fixes #3186)
2022-05-10 15:36:22 +02:00
Even Rouault d5e40f0c15 WKT import: deal with Projected CRS that is a mix of WKT1:GDAL / WKT1:ESRI (fixes #3186) 2022-05-10 12:16:51 +02:00
Even Rouault 217c32a1b9 Merge pull request #3184 from rouault/epsg_10_063
Database: update to EPSG 10.063
2022-05-10 12:04:13 +02:00
Even Rouault 6500903dfd Merge pull request #3172 from dg0yt/appveyor-vcpkg
Fix cmake CURL dependency, update appveyor - vcpkg interaction
2022-05-08 22:52:23 +02:00
Even Rouault 96a5936121 Merge pull request #3180 from rouault/fix_3176
Make it possible to determine which grid files were actually used during a transformation (fixes #3176)
2022-05-08 22:51:41 +02:00
Even Rouault c6c123cee0 Database: update to EPSG 10.063
- Add ITRF2020
- Add SVD2006 vertical datum
- Add many Canadians projected CRS
2022-05-08 22:42:50 +02:00
FlorianandKai Pastor 65458dfb81 Fix cmake CURL dependency
Co-authored-by: Kai Pastor <dg0yt@darc.de>
2022-05-06 08:05:01 +02:00
Kai Pastor e17d9afc19 CI: Minimize PATH adjustments 2022-05-06 07:22:50 +02:00
Kai Pastor b3186eb7a1 CI: Set vcpkg variables, build in one run 2022-05-06 07:21:55 +02:00
Kai Pastor 6b678e2dbc CI: Update vcpkg, use shallow fetch 2022-05-06 07:21:49 +02:00
Even Rouault 5298fc0bfe proj_coordoperation_get_grid_used(): make it work more reliably when networking is enabled (fixes #3176) 2022-05-04 17:56:09 +02:00
Even Rouault 3d8cbe0a83 Add proj_trans_get_last_used_operation() (refs #3176) 2022-05-04 17:56:09 +02:00
Even Rouault 98e5ef0bab Merge pull request #3181 from rouault/fix_doc_build
CI: fix doc_build job
2022-05-04 17:55:46 +02:00
Even Rouault babadc6f71 CI: fix doc_build job 2022-05-04 17:33:31 +02:00
Even Rouault 3c18c1552c Transformation::inverseAsTransformation(): avoid harmless division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=46393 2022-05-03 10:08:29 +02:00
Charles Karney c0e2a9a49e Merge pull request #3173 from cffk/geod-2.0
Sync with geographiclib-c version 2.0
2022-04-25 10:47:28 -04:00
Charles Karney c9ccdea03c Clean up cmake for src/tests 2022-04-25 07:42:32 -04:00
Erixen CruzandMike Taves 8a4e5e3b72 Print deprecation warning for "find_package(PROJ4)" (#3165)
* Print deprecation warning when app uses find_package(PROJ4)
* Remove full example from docs, describe behavior and phase out plan

Co-authored-by: Mike Taves <mwtoews@gmail.com>
2022-04-23 07:42:43 +12:00
Charles Karney 4c6c705bc4 Merge branch 'geod-2.0-alpha' into geod-2.0 2022-04-21 15:37:42 -04:00
Charles Karney 25379ff8ae Sync with source 2022-04-21 15:31:02 -04:00
Even Rouault 058756c697 Formatting fixes 2022-04-20 19:23:11 +02:00
Kristian Evers 752e3c6e46 Merge pull request #3133 from georgeouzou/horner_only_fwd
Add invertible Horner polynomials
2022-04-19 15:36:20 +02:00
Even Rouault b9f9b210b6 Merge pull request #3166 from rouault/epsg_10_059
Database: update to EPSG v10.059
2022-04-17 01:05:17 +02:00
Even Rouault d9c3b29e05 Database: update to EPSG v10.059 2022-04-16 14:55:46 +02:00
georgeouzou a02f426e9a Add doc note on reversible polynomials
Cite IOGP Publication on reversible polynomials
and the difference with our general solution
2022-04-16 13:51:40 +03:00
Even Rouault 5dbce9e384 Merge pull request #3153 from rouault/fix_3152
createOperations(): fix some complex cases involving TOWGS84 and CompoundCRS
2022-04-11 12:53:19 +02:00
Erixen Cruz b7b89e7dee Use GNUInstallDirs for cmake install locations (#3150) 2022-04-08 11:15:06 +12:00
Even Rouault 85be23fdcb Merge pull request #3158 from rouault/improve_proj4_towgs84
createBoundCRSToWGS84IfPossible(): improve selection logic to generate +towgs84= taking into account extent
2022-04-07 23:14:49 +02:00
Even Rouault 90ea42c8f1 Merge pull request #3157 from rouault/fix_3156
ITRF2014: fix ITRF2014:ITRF88,ITRF94 and ITRF96 definitions
2022-04-07 23:14:29 +02:00
Even Rouault 09ba89fd51 createBoundCRSToWGS84IfPossible(): improve selection logic to generate +towgs84= taking into account extent
Helps for North Macedonia CRS EPSG:6204 and EPSG:9945
2022-04-06 17:49:09 +02:00
Even Rouault 5161148879 ITRF2014: fix ITRF2014:ITRF88,ITRF94 and ITRF96 definitions
Fixes #3156
Credits to @stenseng for the corrections
2022-04-06 16:29:44 +02:00
Even Rouault 00a17da61c Merge pull request #3154 from rouault/OGC_CRS84h
Database: add OGC:CRS84h (WGS 84 longitude-latitude-height)
2022-04-05 12:35:02 +02:00
Even Rouault 2b37dd4863 Database: add OGC:CRS84h (WGS 84 longitude-latitude-height)
This is used by recent OGC specs, such as
"OGC API - Features - Part 2: Coordinate Reference Systems by Reference"
(https://docs.ogc.org/is/18-058/18-058.html)
2022-04-04 10:47:00 +02:00
georgeouzou d75519bda9 Apply review comments
- repurpose has_only_fwd variable to has_inv
- optimize polynomial inversion
- refactor horner evaluation code to reusable functions
2022-03-31 22:38:15 +03:00
Even Rouault 3491435da7 createOperations(): fix ch1903lv03_ln02_bound to EPSG:4326+3855 (fixes #3152) 2022-03-30 20:29:32 +02:00
Even Rouault 9fbcac7192 createOperations(): fix ch1903lv03_3d_bound to EPSG:4326+3855 (refs #3152) 2022-03-30 19:47:49 +02:00
Even Rouault b1d2fcb2cf Merge pull request #3147 from rouault/fix_compoundCRS_with_bound_of_projected_and_bound_of_vertical_to_geog3D
createOperations(): fix CompoundCRS[BoundCRS[ProjectedCRS],BoundCRS[VerticalCRS]] to Geog3DCrs
2022-03-30 09:19:49 +02:00
Even Rouault 76df5134b5 exportToPROJString(): optimize pipeline of previous commit 2022-03-29 02:12:36 +02:00
Even Rouault 3ca8b911af createOperations(): fix CompoundCRS[BoundCRS[ProjectedCRS],BoundCRS[VerticalCRS]] to Geog3DCrs 2022-03-29 02:12:36 +02:00
Even Rouault f9ae9e7670 Merge pull request #3134 from rouault/parameter_epsg_code_interpolation_crs
Deal with PARAMETER["EPSG code for Interpolation CRS",crs_code]
2022-03-28 22:34:09 +02:00
Even Rouault 50c5a0bca6 Merge pull request #3128 from rouault/epsg_10_057
Database: update to EPSG v10.057
2022-03-28 22:16:04 +02:00
erykoff c03a3c3ee2 Add Interrupted Mollweide (land and ocean view) projections (#3139) 2022-03-28 21:29:41 +02:00
Charles Karney 2f46772b0e geodesic.c: remove unused typedef 2022-03-28 15:16:52 -04:00
Charles Karney 39bb04beba Fix CI errors. 2022-03-28 13:33:00 -04:00
Charles Karney 20b53bf2f6 Testing version 2.0 of geodesic routines 2022-03-28 12:13:41 -04:00
erykoff 7d8e7289a3 Improve documentation plotting of interrupted projections. (#3144)
Improves the documentation plotting code by adding checks for interrupted lines and graticules. This does not replace the continental outlines with filled continents because that is a harder job. A number of plots has been improved and included in the docs.

Also fixes a typo on the ob_tran plot so that it now renders as intended according to the description paragraph as an oblique Mollweide rather than oblique Miller Cylindrical, which is neither a common nor attractive projection.
2022-03-28 16:44:37 +02:00
georgeouzou 1b556a8690 Fix sanitizer errors 2022-03-26 23:07:52 +02:00
georgeouzou 16aab79011 Optimize iterative inversion of complex horner
Use a similar algorithm as the normal path. This enables us to not
use std::pow at all.
2022-03-26 20:29:58 +02:00
georgeouzou 98e4a89947 Add inversible horner complex polynomials
This enables the user to create horner polynomial transformations
in the complex number space without the need to supply "inv" parameters:
"+inv_origin" and "+inv_c".
Also added a unit test and respective docs
2022-03-26 18:55:45 +02:00
georgeouzou 3dbe701748 Address docs review comments
Move +inv_u, +inv_v to optional parameters in horner docs
Make some consistency changes for matrices and default values
2022-03-26 15:31:16 +02:00
Even Rouault 71b85f6c79 Merge pull request #3137 from anthony-linaro/master
Fix build issue for ARM64 when using MSVC
2022-03-25 23:57:51 +01:00
Even Rouault b6b3b1f4ba Merge pull request #3136 from mwtoews/use-mambaforge
Use Mambaforge variant instead of Miniconda
2022-03-25 23:57:30 +01:00
Oskari Timperi 696f8720d2 Steps with omit_inv are not considered when checking if inverse pipeline operation is possible (#3132) 2022-03-25 23:54:06 +01:00
georgeouzou 04baa726c0 Add documentation for iterative real polynomial inversion 2022-03-25 17:29:47 +02:00
Mike Taves 64eb5e0f0b Use Mambaforge variant instead of Miniconda 2022-03-26 01:08:07 +13:00
Even Rouault fb2c9e7d41 Merge pull request #3130 from Biswa96/cmake-mingw
cmake: Follow unix-like install directories in mingw
2022-03-24 22:25:17 +01:00
Even Rouault 2852bd24ad WKT import: transform PARAMETER["EPSG code for Interpolation CRS",crs_code] into interpolation CRS, and transform from that back to the parameter in BoundCRS AbridgedTransformation WKT output 2022-03-24 22:11:56 +01:00
Even Rouault a4879087cf Transformation::substitutePROJAlternativeGridNames(): propagate interpolation CRS 2022-03-24 22:11:00 +01:00
Even Rouault 6a731e38fa WKT2 parser: add special case for slightly non-conformant WKT output of epsg.org regarding PARAMETER["EPSG code for Interpolation CRS",crs_code,ID[EPSG,1048]] 2022-03-24 22:10:32 +01:00
georgeouzou 12c3377b04 Handle some inversible horner corner cases
In the case of inversible horner, return error values if the iterations
required for convergence are too high.
2022-03-24 19:18:02 +02:00
georgeouzou f14feeb5dd Fix windows compilation error
This is due to a false positive warning.
Also add const to some variables that do not change.
2022-03-24 19:04:49 +02:00
georgeouzou 31597922fd Add inversible horner real polynomials
This enables the user to create horner polynomial transformations
in the real number space without the need to supply "inv" parameters:
"+inv_origin", "+inv_u" and "+inv_v". We can get the inverse
transformation by only using the "fwd" parameters and solving
a system of equations iteratively. The system is usually solved in a
very small number of iterations.

A new optional parameter "+inv_tolerance" is added that can make the
iterative process stop earlier if a certain coordinate accuracy is
met. For example "+inv_tolerance=0.1" will make the iterative
process stop when the calculated coordinates differ less than
0.1 meters, if the units of the transformation destination is meters.
2022-03-23 20:16:33 +02:00
Biswapriyo Nath 8f26484d45 cmake: Follow unix-like install directories in mingw 2022-03-23 10:10:08 +05:30
Even Rouault 689189af92 Merge pull request #3125 from rouault/import_proj4_datum_names
Fix datum names when importing from PROJ4 crs strings (affects some transformations using geoidgrids)
2022-03-22 19:07:50 +01:00
Even Rouault 2410e9ad66 Database: manually fix wrong extent of EPSG:2853 (notified to IOGP) 2022-03-22 19:02:20 +01:00
Even Rouault fd5500ef43 Database: update to EPSG v10.057 2022-03-22 15:39:42 +01:00
Even Rouault 169e1c5691 Fix datum names when importing from PROJ4 crs strings (affects some transformations using geoidgrids)
When importing from a PROJ4 string with +towgs84, +nadgrids or
+geoidgrids terms, the datum name was just set to 'unknown'. So for
example the datums of '+proj=longlat +ellps=GRS80 +towgs84=1,2,3' and
'+proj=longlat +ellps=GRS80 +towgs84=4,5,6' were considered identical,
because they had the same name 'unknown' and used the same ellipsoid.
This affected the transformation of such CRS when they had an
additional +geoidgrids term, which resulted in an erroneous +proj=push
+v_1 +v_2 step to be added to preserve the horizontal coordinates.
2022-03-19 20:22:56 +01:00
Even Rouault 8c51e3c99a Merge pull request #3123 from rouault/fix_compound_crs_nad83_csrs
createOperations(): fix transformation involving CompoundCRS, ToWGS84 and PROJ4_GRIDS
2022-03-19 12:20:21 +01:00
Even Rouault d37884e00f createOperations(): fix transformation involving CompoundCRS, ToWGS84 and PROJ4_GRIDS
Fix issue reported in https://lists.osgeo.org/pipermail/gdal-dev/2022-March/055587.html
2022-03-18 23:01:52 +01:00
Even Rouault 278b0f931a SingleCRS::baseIsEquivalentTo(): fix potential crash that is triggered by fdf5111a9a changes 2022-03-18 22:21:20 +01:00
Anthony Roberts a2ee6b4f6b Fix build issue for ARM64 when using MSVC
When compiling with MSVC for an ARM64 platform using the same
configuration options as used in the github workflow, an innacurate
warning is treated as an error due to the "/Wx" option.

This disables the warning for the ARM64 target in the CMake files.
2022-03-18 17:09:28 +00:00
Even Rouault ab3383a448 Merge pull request #3119 from rouault/compound_to_2D_crs
Transformation: no longer do vertical trasnformation when doing compound CRS to 2D CRS / add --3d to cs2cs
2022-03-17 22:18:22 +01:00
Even Rouault 1c1a3c5930 Merge pull request #3118 from rouault/dynamic_datum_isequivalentto
Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrame
2022-03-16 14:00:35 +01:00
Even Rouault 3e7984f3b2 Transformation: no longer do vertical trasnformation when doing compound CRS to 2D CRS / add --3d to cs2cs
Previously, when computing transformation between a compound CRS and a
geographic/projected 2D CRS, the behaviour was similar to implicitly
promoting the 2D CRS to 3D CRS in the pipeline computation logic, hence
a geoid model could be applied. But note that when doing a geographic 3D
to geographic/projected 2D CRS transformation, we *did* not do this implicit
promotion and if a Helmert transformation existed between the datums, it
was done only in 2D. So this is a bit inconsistent and triggered the
comment in https://github.com/OSGeo/PROJ/issues/2318#issuecomment-1068924513

With this commit, we no longer do any vertical transformation when doing
compound CRS to the 2D CRS, but just take the transformation of the
horizontal part of the compound CRS to the 2D CRS.
Said otherwise, NAD83+NAVD88 to NAD83 will no longer lead to the
application of the geoid model. Unless you explicitly ask for the
promotion NAD83 to 3D.

Also related, in https://github.com/OSGeo/PROJ/issues/1563 that went to 6.3.0,
I changed cs2cs to automatically promote to 3D the CRS as soon as one of
them was compound, for the sake of being consistent with the past
behaviour. But it then becomes difficult to predict PROJ behaviour
depending on which level of it you consider...
This commit undoes that and adds an explicit --3d switch to cs2cs, similarly to
projinfo, to ask for promotion.

Other bug fix found in the process, when using legacy syntax, +init=epsg:4979,
(WGS 84 3D), the resulting CRS was 2D and not 3D.
2022-03-16 12:24:25 +01:00
Even Rouault fdf5111a9a Fix comparison of GeodeticRefrenceFrame vs DynamicGeodeticReferenceFrame
If comparing a DynamicGeodeticReferenceFrame object and its export to
WKT1, which is a simple DATUM object, currently in non-strict comparison
mode, we'd consider the datum to be equivalent to the dynamic datum, but
not the reverse, which breaks the symmetric property of the
isEquivalentTo() operation. So fix this, to consider both equivalent
whatever the operand order.
(in strict mode, the objects will be considered different of course)

Spotted in the GDAL GeoTIFF CRS reader code:
https://github.com/OSGeo/gdal/blob/f9d48bdcc8c90df20e53b5af5785f1e5d78910db/frmts/gtiff/gt_wkt_srs.cpp#L832

Do same change for vertical datum vs dynamic vertical datum.
2022-03-16 00:15:24 +01:00
Kristian Evers 77751f6c9e Merge pull request #3111 from direvus/1483-round-to-date
unitconvert: round to nearest date when converting to yyyymmdd.
2022-03-14 20:38:12 +01:00
Kristian Evers 8d79aec108 Merge pull request #3115 from erykoff/fix-gnom-doc
DOC: Add missing lat_0 parameter to gnomonic documentation.
2022-03-14 20:36:33 +01:00
Eli Rykoff 99076f5594 DOC: Add missing lat_0 parameter to gnomonic documentation. 2022-03-14 07:07:27 -07:00
Brendan Jurd f04faeae6c Rename variable per PR feedback on #3111. 2022-03-11 23:56:58 +11:00
Kristian Evers 9cbf579e54 Merge pull request #3112 from direvus/2540-doxygen-missing-funcs
DOCS: add missing functions from filemanager.cpp
2022-03-11 08:39:05 +01:00
Brendan Jurd 29e2160e2c DOCS: add missing functions from filemanager.cpp
Add doxygen entries for:

- proj_context_set_file_finder
- proj_context_set_ca_bundle_path

Fixes #2540
2022-03-11 15:32:37 +11:00
Brendan Jurd 57b7891e75 unitconvert: round to nearest date when converting to yyyymmdd.
This resolves an issue where converting from a low-precision decimalyear
to yyyymmdd gave the wrong result, due to mjd_to_yyyymmdd() truncating
away the fractional time component.

This commit changes the behaviour of mjd_to_yyyymmdd() to round to the
nearest date, instead of truncating.

Refs #1483
2022-03-11 14:33:34 +11:00
Even Rouault 6d00538de1 Merge pull request #3108 from rouault/fix_3095
createOperations(): fix issue in transformation northing,easting projected CRS -> +proj=longlat +lon_wrap (fixes #3095)
2022-03-10 10:48:39 +01:00
Even Rouault 15f1e40597 Merge pull request #3099 from rouault/fix_3078
CMake: fix installation of proj.pc on Windows (fixes #3078)
2022-03-09 20:48:25 +01:00
Even Rouault 50ca95d010 createOperations(): fix issue in transformation northing,easting projected CRS -> +proj=longlat +lon_wrap (fixes #3095) 2022-03-09 20:21:00 +01:00
Even Rouault 600e8208eb Merge pull request #3106 from rouault/update_nkg_gie
nkg.gie: update results due to https://github.com/OSGeo/PROJ-data/pull/79
2022-03-09 19:06:58 +01:00
Even Rouault 7b889c1e4d windows.yml: fix issue with sqlite3 binary and vcpkg 2022-03-09 18:27:01 +01:00
Even Rouault c51a7a2e1b nkg.gie: update results due to https://github.com/OSGeo/PROJ-data/pull/79 2022-03-09 17:01:20 +01:00
Even Rouault 99570fba7d Merge pull request #3102 from rouault/fix_3076
Fix issues with WKT of concatenated operations (#3076)
2022-03-09 15:44:58 +01:00
Even Rouault f026f9922d Merge pull request #3103 from rouault/epsg_10_055
Database: update to EPSG v10.055
2022-03-09 15:17:37 +01:00
Even Rouault b41a0f6870 Database: update to EPSG v10.055 2022-03-09 14:37:05 +01:00
Even Rouault 273558ec55 PROJBasedOperation PROJJSON export: issues an empty 'parameters' array if needed (refs #3076) 2022-03-09 14:26:00 +01:00
Even Rouault a16407e9d7 Fix import of WKT of concatenated operation with inverse conversion of a compound CRS of a projected CRS (fixes #3076) 2022-03-09 14:26:00 +01:00
Even Rouault a95b6736a3 Merge pull request #3098 from rouault/fix_gdal_5408
Fix issue when transforming from/to BoundCRS of 3D CRS with non-Green…
2022-03-09 11:35:35 +01:00
Even Rouault 3a8aeaeef7 CMake: fix installation of proj.pc on Windows (fixes #3078) 2022-03-08 23:17:05 +01:00
Even Rouault 26a7f77515 Fix issue when transforming from/to BoundCRS of 3D CRS with non-Greenwhich prime meridian, created from WKT (fixes OSGeo/gdal#5408) 2022-03-08 22:51:12 +01:00
Mike Taves 2fae94ba7b DOC: improve CMake integration example; remove CMake <3 detail (#3093) 2022-03-09 09:12:04 +13:00
Even Rouault 5712659366 Merge pull request #3087 from mwtoews/cmake-list-remove-item-fix
CMake: handle potentially undefined value in list function
2022-03-08 12:50:24 +01:00
Mike Taves 439f4eec08 CMake: handle potentially undefined value in list function 2022-03-07 23:40:23 +13:00
Mike Taves 1461c9b30d Use CMAKE_INSTALL_MANDIR to override default (#3081) 2022-03-07 23:18:48 +13:00
Even Rouault 7809d6e5f7 Merge pull request #3089 from rouault/fix_3077
Fix wrong results with SQLite 3.38.0 (fixes #3077)
2022-03-06 11:50:10 +01:00
Even Rouault bd23262102 Fix wrong results with SQLite 3.38.0 (fixes #3077) 2022-03-06 11:21:28 +01:00
erykoff f6780951ca Increase MAX_ITER so Mollweide forward projection works near the poles. (#3082) 2022-03-05 16:21:12 +01:00
Mike Taves 2f38db37b8 CI: use ctest --output-on-failure option (#3084) 2022-03-04 23:31:43 +13:00
Mike Taves 6243d1142e Also bump version number in CMakeLists.txt for 9.1.0 release 2022-03-03 10:42:54 +13:00
Kristian Evers 6cb2b1e1ee docs: fix syntax errors on news site 2022-03-02 19:27:45 +01:00
Kristian Evers 4fbe193257 Bump version numbers in preparation for 9.1.0 release 2022-03-01 20:39:38 +01:00
Kristian Evers 27dc393bbe Update website for 9.0 website 2022-03-01 20:09:07 +01:00
Kristian Evers 146d51a42f Update website forr 8.2.1 release 2022-03-01 20:01:30 +01:00
Mike TavesandBas Couwenberg 65c84b6e2a Simple SOVERSION (#3066)
Co-authored-by: Bas Couwenberg <sebastic@xs4all.nl>
2022-02-23 19:40:59 +01:00
Mike Taves e79984f5f1 Rename "Kavraisky" to transliteration "Kavrayskiy" used by Snyder1993 (#3071) 2022-02-23 21:54:56 +13:00
Even Rouault 5b7c4575e5 Merge pull request #3072 from rouault/coverity_scan
Fix various issues found by Coverity scan
2022-02-22 20:51:05 +01:00
Even Rouault 27d6a335db geog3DToVertTryThroughGeog2D(): avoid potential nullptr deref (CID 383355) 2022-02-22 17:21:51 +01:00
Even Rouault 5183706cd7 WKTParser::Private::buildProjectedCRS(): avoid potential nullptr deref (CID 383362) 2022-02-22 17:17:57 +01:00
Even Rouault 643f285198 ProjectedCRS::_exportToWKT(): avoid false positive warning about nullptr deref (CID 383356) 2022-02-22 17:15:24 +01:00
Even Rouault bd830a6f3f UnitOfMeasure::operator=(UnitOfMeasure &&): avoid use of moved member (CID 383358) 2022-02-22 17:11:37 +01:00
Even Rouault 987afa3c6d CTable2Grid::open(): add missing call to extent.computeInvRes() (CID 383359) 2022-02-22 17:09:20 +01:00
Even Rouault bc34a84eab proj_grid_info(): check pj_find_file() output (CID 383357) 2022-02-22 17:07:54 +01:00
Even Rouault dd96597e86 Merge pull request #3062 from rouault/fix_3060
CMake: set RUN_NETWORK_DEPENDENT_TESTS to ON by default only if network seems available (fixes #3060)
2022-02-21 16:38:41 +01:00
Even Rouault 1941f06e27 Merge pull request #3064 from rouault/doc_gall_peters
Doc: mention Behrmann and Gall-Peters projections as specializations of cea
2022-02-21 16:38:06 +01:00
Even Rouault 0bcdaae07d Merge pull request #3068 from rouault/db_esri_transformation_alias_name
Database: insert entries in the alias_name for ESRI transformations that match a EPSG entry
2022-02-21 16:37:52 +01:00
Even Rouault 906edb9584 Merge pull request #3070 from rouault/fix_crash_on_argc_0
Fix nullptr dereference in utilities when argv[0] == NULL
2022-02-21 16:37:40 +01:00
Even Rouault 61249e6606 Fix nullptr dereference in utilities whan argv[0] == NULL
https://lwn.net/Articles/?offset=50 was an entertaining reading where we
learn that the fact that argv[0] contains the name of the binary is
purely a convention, normally taken by the shell that launches the
process, but not guaranteed by the execve() system call that does the
job.

The following test program tested against cct, cs2cs, geod, gie and proj
make them cause a null pointer dereference

```
 #include <unistd.h>
 #include <stdio.h>
extern char **environ;

int main()
{
    char* argv[] = { NULL };
    printf("%d\n", execve("/path/to/some/proj/binary", argv, environ));
    return 0;
}
```
2022-02-19 12:38:28 +01:00
Even Rouault ca8b907289 Database: insert entries in the alias_name for ESRI transformations that match a EPSG entry
Make it possible to query them by name. e.g. `projinfo "NAD_1927_To_WGS_1984_3"` will return
EPSG:1172 transformation "NAD27 to WGS 84 (3)"

Partially helps use case of https://lists.osgeo.org/pipermail/gdal-dev/2022-February/055480.html
2022-02-19 00:01:00 +01:00
Even Rouault 88a4180271 CMake: set RUN_NETWORK_DEPENDENT_TESTS to ON by default only if network seems available (fixes #3060) 2022-02-18 11:55:23 +01:00
Even Rouault 009d9a401b Doc: gall.rst: add note that Gall != Gall-Peters 2022-02-17 20:41:24 +01:00
Even Rouault d19f5059db Doc: mention Lambert c.e.a, Behrmann, and Gall-Peters projections as specializations of cea
Shared credits with @pramsey / PR #3063
2022-02-17 19:08:22 +01:00
Kristian Evers 524b76f2e9 Merge pull request #3061 from rouault/remove_googletest
Remove googletest source code remains
2022-02-16 09:08:47 +01:00
Even Rouault b0a2db7a86 Remove googletest source code remains
They are no longer needed, as there were only used by autoconf builds.
For CMake, we either use external googletest, or use CMake download capabilities.
2022-02-15 22:43:59 +01:00
Kristian Evers 16c5881fd7 Update man-pages from Sphinx-docs 2022-02-15 16:27:07 +01:00
Kristian Evers b93cb3078f Update NEWS for 9.0.0 2022-02-15 15:43:34 +01:00
Kristian Evers 28a76a619b Update version numbers for 9.0.0 2022-02-15 15:17:30 +01:00
Kristian Evers eeeeb9c971 Update ABI numbers for 9.0.0 release 2022-02-15 15:10:24 +01:00
Kristian Evers 7c4d4c6ac6 Merge pull request #3058 from rouault/fix_3053
ITRF2008: add EURA_T, NOAM_T, etc. plate names that include translation rates (fixes #3053)
2022-02-15 11:30:43 +01:00
Even Rouault 518cbe5387 ITRF2008: add EURA_T, NOAM_T, etc. plate names that include translation rates (fixes #3053) 2022-02-15 00:53:09 +01:00
Even Rouault 625d4b99e0 ITRF2008: plate motion model: fix error on sign of z component of NOAM and x component of PCFC 2022-02-15 00:40:44 +01:00
Even Rouault 4d014d080a Merge pull request #3057 from rouault/fix_3056
Fix importing CRS definition with +proj=peirce_q and +shape different…
2022-02-15 00:13:33 +01:00
Even Rouault 7968d389aa Fix importing CRS definition with +proj=peirce_q and +shape different from square or diamond. Follow-up of #3014. Fixes #3056. master only 2022-02-14 23:09:17 +01:00
Even Rouault d4deb54998 Merge pull request #3055 from rouault/over_fix
Better deal with importing strings like '+init=epsg:XXXX +over' (refs MapServer/MapServer#6478)
2022-02-14 20:40:25 +01:00
Even Rouault df9e2fe519 Better deal with importing strings like '+init=epsg:XXXX +over' (refs MapServer/MapServer#6478) 2022-02-14 20:00:25 +01:00
Even Rouault f67c82912f Merge pull request #3052 from mwtoews/ci-mac-ccache
CI: set CCACHE_DIR for macOS
2022-02-14 14:17:14 +01:00
Even Rouault 2235bef8a9 Merge pull request #3050 from rouault/fix_3029
CMake: remove all Mac specific settings added per #2009, …
2022-02-14 14:16:47 +01:00
Even Rouault 4db1dd5471 Merge pull request #3049 from rouault/proj_ini_ca_bundle_path
proj.ini: add a 'ca_bundle_path' variable
2022-02-14 14:16:27 +01:00
Even Rouault 944efc557a Merge pull request #3044 from AlexBass05/add-belgian-geoid-hbg18
Add Belgian geoid model hBG18 to grid alternatives
2022-02-14 14:16:05 +01:00
Mike Taves db2ae2e01a CI: set CCACHE_DIR for macOS 2022-02-15 00:43:38 +13:00
Mike Taves cb35cb17ac CMake: split configuration files for apps and tests (#3048) 2022-02-14 22:07:34 +13:00
Even Rouault 6bc9885933 Merge pull request #3051 from rouault/epsg_10_054
Database: update to EPSG v10.054
2022-02-13 12:15:05 +01:00
Alexander Nehrbass 098a661d7e Add Belgian geoid model hBG18 to grid alternatives 2022-02-13 11:38:19 +01:00
Even Rouault 9e6dc013e9 Database: update to EPSG v10.054 2022-02-13 11:26:05 +01:00
Even Rouault e1253e4b09 CMake: remove all Mac specific settings added per #2009, as they appear to be obsolete given current CMake versions (fixes #3029)
And specifically remove set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
which was the only setting at a non-default value.
2022-02-13 10:57:09 +01:00
Even Rouault 0f45094305 proj.ini: add a 'ca_bundle_path' variable
Cf thread https://lists.osgeo.org/pipermail/gdal-dev/2022-February/thread.html#55391
2022-02-12 19:04:06 +01:00
Even Rouault a9ce8aa28f Doc: ob_tran.rst: fix name of o_lon_1, o_lat_1, o_lon_2, o_lat_2 parameters 2022-02-11 21:26:49 +01:00
Even Rouault ece7a8b251 Merge pull request #3046 from rouault/fix_boundcrs_derived_geog_crs_wkt
createOperations(): fix transformations from/to a BoundCRS of a DerivedGeographicCRS coming from WKT
2022-02-09 18:38:31 +01:00
Even Rouault b210728be7 createOperations(): fix transformations from/to a BoundCRS of a DerivedGeographicCRS coming from WKT 2022-02-09 16:26:50 +01:00
Even Rouault 61c918f163 filemanager.cpp: reformat [ci skip] 2022-02-09 16:10:56 +01:00
Mike Taves 46da96b728 Docker: update base image to ubuntu:20.04 [ci skip] (#3043) 2022-02-09 07:11:02 -07:00
Even Rouault 021d6bbabf Merge pull request #3042 from rouault/build_shared_libs_default_win32
CMake: make BUILD_SHARED_LIBS=ON the default even on Windows
2022-02-09 12:43:38 +01:00
Even Rouault ca1ec7b147 Merge pull request #2988 from dg0yt/pkgconfig
Use `Requires.Private` in proj.pc, and install it also for Windows
2022-02-07 23:45:02 +01:00
Even Rouault 0fd9cfb56e CMake: make BUILD_SHARED_LIBS=ON the default even on Windows 2022-02-07 23:43:51 +01:00
Even Rouault 7f0ac75ac5 Merge pull request #3038 from rouault/doc_install_clarify_requirements
Doc: clarify build requirements
2022-02-07 16:28:25 +01:00
Even Rouault f46ec490d6 Merge pull request #3041 from rouault/doc_fix_obsolete_example
Doc: fix example whith used the +t_obs parameter of Helmert removed per #1264
2022-02-07 16:28:12 +01:00
Even Rouault 5aa5f4625d Doc: fix example whith used the +t_obs parameter of Helmert removed per #1264 2022-02-07 15:13:28 +01:00
Even Rouault 89d02e1a4a Doc: clarify build requirements 2022-02-06 13:21:08 +01:00
Even Rouault bcc0013d3c Merge pull request #3036 from mwtoews/rfc-7-docs
DOC: remove content for Autotools; assume CMake only
2022-02-06 13:18:01 +01:00
Kai Pastor 2b0ecb6f19 Adapt testing to recursive pkg-config requirements
When pkg-config is called with --static, it will recursively collect
all Libs and Libs.private which are discovered via Requires and
Requires.private. So these libs must be available for linking even
when acutally only lib proj uses static linkage.
Libs and pkg-config must be provided for the target triplet.
2022-02-05 18:06:45 +01:00
Kai Pastor 295c678692 Harmonize CI apt setup 2022-02-05 18:06:45 +01:00
Kai Pastor 845d679d98 Revise pc file construction
Use sqlite3, libtiff-4 and libcurl modules instead of plain libs
Allow opt out by setting 'USE_PKGCONFIG_MODULES' off.
Link native system libs on Windows, and implicit C++ libraries on
other systems (e.g. libstc++/libc++).
2022-02-05 18:06:45 +01:00
Even Rouault 0139d8c59f Merge pull request #3037 from direvus/2529-err-code-unknown-format
Set more precise error code for parsing errors in proj_create().
2022-02-04 17:06:55 +01:00
Brendan Jurd c868ea010d Set more precise error code for parsing errors in proj_create().
If proj_create() catches a ParsingException, and the error code hasn't
otherwise been set internally, set the error code to
PROJ_ERR_INVALID_OP_WRONG_SYNTAX instead of allowing it to default to
the generic PROJ_ERR_OTHER.

Ref #2529
2022-02-04 13:46:25 +11:00
Mateusz Łoskot 9033708633 Allow PROJ_LIB paths wrapped with double quotes (#3031)
This improvement is mostly useful on Windows, where users
are used to wrapping paths with whitespaces with double quotes.

For example, these should now be allowed (correctly concatenated):

  PROJ_LIB="C:\Program Files\PROJ";C:\Users\mloskot\PROJ
2022-02-03 23:46:19 +01:00
Mike Taves 203f90d317 DOC: remove content for Autotools; assume CMake only 2022-02-04 11:16:05 +13:00
Even Rouault fc46c5bac5 Merge pull request #3035 from rouault/use_external_gtest_when_possible
Use external gtest by default when possible
2022-02-02 18:52:56 +01:00
Even Rouault e3efedd739 Use external gtest by default when detected 2022-02-01 15:44:46 +01:00
Even Rouault ab504340fc Merge pull request #3030 from mwtoews/rfc-7-howto-release
Update HOWTO-RELEASE using only CMake (without autotools)
2022-02-01 15:38:11 +01:00
Valerii Zapodovnikov 8d477c7aad DOCS: clarify that GTG is lossless (#3033) 2022-01-31 21:48:49 +01:00
Mike Taves ddefc8d1df Drop autotools; move remaining useful m4 macros (#3027) 2022-01-31 00:12:34 +13:00
Mike Taves 5b3a1808c6 Update HOWTO-RELEASE using only CMake (without autotools) [ci skip] 2022-01-30 23:59:05 +13:00
Even Rouault 4ecb0abb8c Merge pull request #3028 from rouault/epsg_10_051
Database: update to EPSG 10.051
2022-01-27 12:55:38 +01:00
Even Rouault 5085e29487 Database: update to EPSG 10.051 2022-01-26 14:32:44 +01:00
Even Rouault c80c4ededb Merge pull request #2954 from nyalldawson/esri_p3
Add some more direct method mapping during ESRI projection engine ingestion
2022-01-24 12:00:04 +01:00
Even Rouault 554c4c4427 Merge pull request #3024 from rouault/fix_cygwin_build
filemanager.cpp: fix build issue with Cygwin
2022-01-24 11:58:26 +01:00
Nyall Dawson 5946b28262 [esri] Add special case when importing ESRI:102113
See https://github.com/OSGeo/PROJ/pull/2954#issuecomment-977771912 for rationale
2022-01-24 12:21:26 +10:00
Nyall Dawson b258bedfdf Add some additional method mapping during ESRI db import 2022-01-24 11:41:34 +10:00
Nyall Dawson 7e4ef8211a Refactor out some more common code in build_db_from_esri.py 2022-01-24 11:41:34 +10:00
Nyall Dawson 2586c949c0 Map ESRI Cassini method to EPSG:9806 during ESRI projection engine db ingestion 2022-01-24 11:41:33 +10:00
Nyall Dawson a048c9e09e Map ESRI Equidistant_Cylindrical method to EPSG:1029 during ESRI projection engine db ingestion 2022-01-24 11:41:33 +10:00
Nyall Dawson 5f2a9a574b Map ESRI IGAC_Plano_Cartesiano method to EPSG:1052 during ESRI projection engine db ingestion 2022-01-24 11:41:33 +10:00
Nyall Dawson 837857386b Map ESRI Albers method to EPSG:9822 during ESRI projection engine db ingestion 2022-01-24 11:41:33 +10:00
Even Rouault 89846ece92 Merge pull request #3026 from rouault/epsg_10_048
Database: update to EPSG 10.048
2022-01-23 14:20:28 +01:00
Mike Taves 93a533906e CI: transition tests from autotools to cmake (#3023) 2022-01-24 00:45:14 +13:00
Even Rouault 76d31bfa28 Database: update to EPSG 10.048
Ultra minor update
2022-01-21 22:35:54 +01:00
Even Rouault 93c3a16512 Merge pull request #3025 from rouault/fix_qgis_45470
lookForGridInfo(): make it work properly when passed the old PROJ name
2022-01-21 00:42:07 +01:00
Even Rouault 6dca8bdc05 lookForGridInfo(): make it work properly when passed the old PROJ name
Fixes https://github.com/qgis/QGIS/issues/45470

That is, if the file for the old PROJ name is not found, but the file
for the new PROJ name is found, then use the later for fullFilename and
gridAvailable.
2022-01-20 17:32:39 +01:00
Even Rouault 66657fbada CITATION: add doi to BibTex entry 2022-01-20 17:14:24 +01:00
Even Rouault 2fc66ca67d Add DOI to README.md and CITATION [ci skip] 2022-01-20 17:02:03 +01:00
Even Rouault 02f43b5ffb networkfilemanager.cpp: fix build issue with Cygwin 2022-01-18 00:39:46 +01:00
Even Rouault 38a472a6a4 filemanager.cpp: fix build issue with Cygwin 2022-01-18 00:39:34 +01:00
Even Rouault ac4c9009f0 Add .zenodo.json (#3019) 2022-01-13 19:23:24 +01:00
Mike Taves 69962fefc2 Specify CMAKE_INSTALL_RPATH for macOS; use -rpath LDFLAGS for tests (#3009) 2022-01-13 21:55:21 +13:00
Even Rouault 0e26f598ef Merge pull request #3018 from rouault/Dockerfile_cmake
Dockerfile: build PROJ with cmake (refs #2688)
2022-01-12 23:23:26 +01:00
Even Rouault eb8924318c Dockerfile: build PROJ with cmake (refs #2688) 2022-01-12 19:08:18 +01:00
Even Rouault 2a5facf915 Conversion::_exportToPROJString(): fix potential crash introduced in recent commit. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=43546 2022-01-12 11:39:04 +01:00
Even Rouault fc63278348 Merge pull request #3010 from rouault/fix_2739
Implement Geographic3D to Depth/Geog2D+Depth as used by ETRS89 to CD Norway depth
2022-01-12 11:14:55 +01:00
Even Rouault 10fc60fdce Merge pull request #3014 from rouault/fix_3011
peirce_q: rename +type parameter wrongly introduced in 8.2.1 to +shape (fixes #3011)
2022-01-11 11:28:16 +01:00
Even Rouault c6c2a3b22d Merge pull request #3017 from rouault/cppcheck_fixes
Minor cppcheck fixes
2022-01-09 14:44:42 +01:00
Even Rouault f62fab9e3c Minor cppcheck fixes 2022-01-09 13:05:31 +01:00
Even Rouault 7afaa7a400 peirce_q: add inversion of +shape=square and diamond through generic inversion method 2022-01-09 13:02:11 +01:00
Even Rouault b34fabe4c5 Merge pull request #3016 from rouault/epsg_10_047
Database: update to EPSG 10.047
2022-01-08 13:49:04 +01:00
Even Rouault 804783fbd4 Database: update to EPSG 10.047 2022-01-08 11:55:07 +01:00
Even Rouault 3b4d1f324d Map peirce_q to pseudo WKT2 and ESRI WKT 2022-01-07 19:52:45 +01:00
Even Rouault cf5aef989b peirce_q: rename +type parameter wrongly introduced in 8.2.1 to +shape (fixes #3011) 2022-01-07 16:49:11 +01:00
Bert Huijben a03d3c1622 labrd: document in the tagline and documentation that lat_0 is required (#2997) 2022-01-07 15:19:44 +01:00
Even Rouault a7577c936b Merge pull request #3013 from rouault/fix_3012
proj_get_crs_info_list_from_database(): report PJ_TYPE_GEODETIC_CRS for IAU_2015 -ocentric geodetic CRS (fixes #3012)
2022-01-07 15:16:41 +01:00
Even Rouault 5df594d25d proj_get_crs_info_list_from_database(): report PJ_TYPE_GEODETIC_CRS for IAU_2015 -ocentric geodetic CRS (fixes #3012) 2022-01-06 22:43:25 +01:00
Even Rouault 7ab63b60f6 Implement Geographic3D to Depth/Geog2D+Depth as used by ETRS89 to CD Norway depth
Fixes #2739

Verified with example from IOGP Guidance Note 7-2 (ver 62, Dec 2021) page 169, with
38 = h_obs - D_obs = 50 - 12.

$ echo 60.0015 4.9960 38 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:4937 EPSG:9883
60.0015	4.9960 5.8827

$ echo 60.0015 4.9960 38 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:4937 EPSG:4258+9672
60.0015	4.9960 5.8827

$ echo 60.0015 4.9960 5.8827 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:9883 EPSG:4937
60.0015	4.9960 38.0000

$ echo 60.0015 4.9960 5.8827 | PROJ_LIB=data PROJ_NETWORK=ON bin/cs2cs -d 4 EPSG:4258+9672 EPSG:4937
60.0015	4.9960 38.0000
2022-01-06 12:26:45 +01:00
Even Rouault 78eee957b0 Merge pull request #3005 from rouault/epsg_10_044
Dabase: update to EPSG 10.044 (fixes #3004)
2022-01-05 11:09:54 +01:00
Even Rouault c3cac01a97 Database: update to EPSG 10.044 2022-01-04 22:39:59 +01:00
Even Rouault cfd005b326 Handle EPSG:1111 'Transverse Mercator (3D)' method (used in EPSG:10.044 by Projected 3D CRS EPSG:9895 'Luxembourg TM (3D)' 2022-01-04 22:39:59 +01:00
Even Rouault 7fcca24e45 test proj_create_operations_with_pivot(): change CRSs used in preparation of EPSG 10.044 which adds a direct transformation between WGS84 and JGD2011 2022-01-04 22:39:59 +01:00
Even Rouault b2dbc2f9ac Merge pull request #3006 from rouault/fix_for_doxygen_1_9_3
Fix doc generation with Doxygen 1.9.3
2022-01-04 22:39:28 +01:00
Even Rouault 8056321237 Merge pull request #3001 from mwtoews/rfc-7-csa
Transition Clang Static Analizer to use CMake
2022-01-04 21:09:07 +01:00
Even Rouault 4f7b22982d Fix doc generation with Doxygen 1.9.3
Since the update to Doxygen 1.9.3, doc generation was broken. With
bisection of doxygen, it was found this was due to commit
https://github.com/doxygen/doxygen/commit/ee8f3fb7a2ed74ee30ae3202707617e97f6641ff
which makes Doxygen honour nested @cond . This revealed bad pairing of
@cond / @endcond in our code, fixed by this commit.
2022-01-04 21:00:06 +01:00
Kristian Evers 1254a211be Merge pull request #3000 from rouault/fix_2999
news.rst: add hints about usage changes in PROJ 8.2.0 for Windows users (fixes #2999)
2022-01-02 23:33:15 +01:00
Mike Taves 427eb126c4 Transition Clang Static Analizer to use CMake 2022-01-02 23:56:06 +13:00
Even Rouault 0537f9fc25 docs/docbuild/Dockerfile: bump doxygen version (due to 1.9.1 no longer be downloadable at that URL) 2022-01-02 11:41:24 +01:00
Even Rouault 32e2482453 news.rst: add hints about usage changes in PROJ 8.2.0 for Windows users (fixes #2999) 2022-01-02 11:06:22 +01:00
Kristian Evers 11c7d0c511 Update NEWS for 8.2.1 release 2021-12-26 16:31:09 +01:00
Kristian Evers 5f6b7f23d7 Bump year in CITATION file 2021-12-26 16:31:09 +01:00
Kristian Evers eef9afe4ff Update ABI numbers for 8.2.1 release 2021-12-26 16:31:09 +01:00
Kristian Evers 08186f8b44 Merge pull request #2994 from rouault/icx_fix
Fix build with Intel C++ compiler
2021-12-25 15:38:54 +01:00
Even Rouault 146374460a Fix build with Intel C++ compiler
icx --version: Intel(R) oneAPI DPC++/C++ Compiler 2022.0.0 (2022.0.0.20211123)

Disable fast maths to:
- Fix warnings about std::isnan(), etc. being evaluated to false, due to
  -ffast-math being enabled
- Fix failures in regression test suite

How to reproduce:
docker pull intel/oneapi-basekit
docker run --rm -it -v $HOME:$HOME intel/oneapi-basekit
apt update
apt install sqlite3 libsqlite3-dev libcurl4-gnutls-dev libtiff-dev
CC=icx CXX=icx cmake .. -DCMAKE_EXE_LINKER_FLAGS=/usr/lib/x86_64-linux-gnu/libstdc++.so.6
2021-12-24 16:36:23 +01:00
Even Rouault 0158de0603 Merge pull request #2992 from anbj/fix-formatting
bertin1953.rst: fix formatting
2021-12-23 20:47:25 +01:00
andreas 687acdafba bertin1953.rst: fix formatting 2021-12-23 19:58:00 +01:00
Even Rouault b385f2142a docs/source/download.rst: fix release dates [ci skip] 2021-12-20 20:27:33 +01:00
Even Rouault 6002e30580 Merge pull request #2990 from visr/double-slash
update "Edit on GitHub" button branch
2021-12-20 20:26:48 +01:00
Toby C. Wilkinson 5fe037f86a Fix and additional options for Peirce Quincuncial projections (#2978)
This fixes the current forward implementation of Peirce Quincuncial proj to correctly flip/reflect out the southern hemisphere to four triangles, and rotate entire result to a square or diamond. (It there resolves the issues identified with pull request https://github.com/OSGeo/PROJ/pull/2230 , where southern hemisphere was wrongly projected over northern, and reverses the restriction to northern hemisphere introduced there). It also adds additional lateral projection of the hemispheres.

- This PR adds an optional parameter `+type` which allows selection of projection. The `+type=square` and `+type=diamond` types match in principle ESRI's twin implementations of square and diamond PQ projs. The **default** if not specified is `+type=diamond`.

- The previous behaviour restricted to the northern hemisphere can be reproduced using the `+type=nhemisphere`, though this is an edge case only.

- An additional `+type=horizontal` and `+type=vertical` rectangular lateral versions have been added that place each hemisphere side-by-side. This is primarily to allow creation of projections such as Greiger Triptychial, which also require the additional optional params `scrollx` or `scrolly` in order to shift parts of the projection from one side of the map to the other. 

- Additional documentation has been added to proj description, including quoting the usual meridian used in common usage of projection, and images showing the different types.
2021-12-20 20:22:46 +01:00
Even Rouault dad309d7fc Merge pull request #2980 from rouault/cmake_warn_googletest
CMake: fix warning with external googletest
2021-12-20 20:18:40 +01:00
Martijn Visser bb45c5c05e update "Edit on GitHub" button branch
I also removed the leading slash, since I noticed the links contained a double slash. That worked fine, but still.

(cherry picked from commit 80e32d55d076fa48f753d5014cf828d85a0d1bce)
2021-12-20 10:26:47 +01:00
Even Rouault d3bd73b214 Merge pull request #2985 from rouault/wkt1_hotine_without_rectified_grid_angle
WKT1 import: correctly deal with missing rectified_grid_angle parameter
2021-12-17 01:17:50 +01:00
Even Rouault eb0d804cdb WKT1 import: correctly deal with missing rectified_grid_angle parameter
by setting its value from the azimuth angle.

and on export to PROJ.4 string do not emit a erroneous +gamma=0 when the
parameter it is missing.

Fixes https://lists.osgeo.org/pipermail/proj/2021-December/010475.html
2021-12-16 22:54:01 +01:00
Even Rouault e210258e67 WKTParser::Private::buildProjectionStandard(): minor cleanup 2021-12-16 22:08:17 +01:00
Even Rouault 2072894385 Merge pull request #2982 from DFEvans/patch-1
Remove git stash holdover in news.rst
2021-12-13 19:37:49 +01:00
Daniel Evans ecc876752a Remove git stash holdover in news.rst 2021-12-13 16:40:34 +00:00
Even Rouault 971882ef2d Merge pull request #2981 from rouault/fix_2961
CI Plot job: build PROJ from source (fixes #2961)
2021-12-12 18:00:01 +01:00
Even Rouault 30369451f4 CMake: fix warning with external googletest
Recent CMake versions throw the following warning when building
googletest 1.8.1. Bumping to 1.11.0 that has a minimum version of 2.8.12
fixes that
```
 CMake Deprecation Warning at build/googletest-src/CMakeLists.txt:1 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.
```
2021-12-10 15:24:05 +01:00
Even Rouault 6e67dc2b71 CI: update Ubuntu 16.04 gcc 4.8 to default gcc 5.4 2021-12-10 15:24:05 +01:00
Even Rouault 4dbdd70126 CI Plot job: build PROJ from source (fixes #2961) 2021-12-10 13:30:14 +01:00
Even Rouault 7dece4d276 Merge pull request #2976 from rouault/compound_to_compound_ballpark
createOperations(): improvement for "NAD83(CSRS) + CGVD28 height" to "NAD83(CSRS) + CGVD2013(CGG2013) height"
2021-12-09 16:45:15 +01:00
Even Rouault d285111ffb createOperations(): improvement for "NAD83(CSRS) + CGVD28 height" to "NAD83(CSRS) + CGVD2013(CGG2013) height"
That transformation involves doing CGVD28 height to CGVD2013(CGG2013)
height by doing:
- CGVD28 height to NAD83(CSRS): EPSG registered operation
- NAD83(CSRS) to CGVD2013(CGG2013) height by doing:
  * NAD83(CSRS) to NAD83(CSRS)v6: ballpark
  * NAD83(CSRS)v6 to CGVD2013(CGG2013): EPSG registered operation
2021-12-08 17:41:48 +01:00
Mike Taves 7a9b6566ac Refactor post-install suite to test shared and static projlib (#2972) 2021-12-09 00:45:03 +13:00
Even Rouault 1b18defb63 Merge pull request #2973 from rouault/epsg_10_041
Database: update to EPSG v10.041
2021-12-07 19:32:31 +01:00
Even Rouault ea719555f8 Database: update to EPSG v10.041 2021-12-06 23:43:03 +01:00
Even Rouault 5a8c5241cc Merge pull request #2970 from mwtoews/static-extra-libs
Refactor proj.pc to use EXTRA_LIBS; add -lpthread to Libs.private
2021-12-04 23:38:25 +01:00
Mike Taves ccb21d563f Refactor proj.pc to use EXTRA_LIBS; add -lpthread to Libs.private 2021-12-05 10:04:21 +13:00
Even Rouault d76024b781 Merge pull request #2968 from rouault/fix_ossfuzz_41462
Fix extremely long parsing time on hostile PROJ strings
2021-12-04 10:56:31 +01:00
Even Rouault c77512d593 Merge pull request #2960 from AlexBass05/pl_gugik_PL-geoid-2011
Add vertical grid files for PL-geoid-2011, Polish geoid model
2021-12-03 13:04:08 +01:00
Even Rouault ac9ffeddb1 Merge pull request #2964 from Fa7C0n/master
Fix github path for crs2crs2grid.py in HTDP
2021-12-02 23:09:14 +01:00
Even Rouault 45965f2ac6 PROJStringSyntaxParser(): make it use pj_trim_argc/argv to have similar tokenization/serialization in different code paths
This avoids in particular recursive calls to ob_tran initialization on
weird inputs.

Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41462
2021-12-02 19:28:58 +01:00
Even Rouault 5974d4b3fe PROJ string parsing: fix unquoting of parameter values when the parameter name is just one single character
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41462
2021-12-02 17:34:01 +01:00
Even Rouault fcc03702dc Merge pull request #2966 from rouault/fix_2965
Cache result of proj_get_type() to help for performance of proj_factors() (fixes #2965)
2021-12-02 17:18:13 +01:00
Even Rouault 6a43bee93b Cache result of proj_get_type() to help for performance of proj_factors() (fixes #2965) 2021-12-01 21:50:51 +01:00
Gokul Ganesan 9fc4e59d69 Fix path for crs2crs2grid.py 2021-12-01 22:45:15 +05:30
Even Rouault 7dc8a59217 Merge pull request #2962 from mwtoews/cmake-mingw_w64
CI: change autotools->cmake for x86_64-w64-mingw32
2021-11-26 11:43:36 +01:00
Mike Taves cfc5d93b3b CI: change autotools->cmake for x86_64-w64-mingw32 2021-11-26 15:45:05 +13:00
Mike Taves f14e533fd7 DOC: rewrite parts of plot.py to use geojson instead of fiona (#2959) 2021-11-26 13:23:30 +13:00
Alexander Nehrbass 84cdcd388e Update metadata.sql to PROJ-data version 1.9 2021-11-25 20:11:38 +01:00
Alexander Nehrbass 64bb89b88c Add vertical gird files for PL-geoid-2011, Polish geoid model 2021-11-25 20:11:38 +01:00
Even Rouault 3636c8f8e7 Merge pull request #2948 from mwtoews/cmake-ccache
CMake: add option USE_CCACHE=OFF to use ccache to compile C/C++ objs
2021-11-25 11:53:21 +01:00
Mike Taves cd07dcf0c4 Move option to module and add more comments 2021-11-25 11:57:02 +13:00
Mike Taves 4889dcfa71 Also look for clcache for MSVC; only use wrappers for Xcode 2021-11-25 11:21:09 +13:00
Even Rouault e93e86ce40 Merge pull request #2957 from rouault/fix_ossfuzz_41290
Pipeline parsing: reject proj=/o_proj= before first step, to avoid bad performance pattern on hostile pipelines
2021-11-24 12:12:27 +01:00
Even Rouault a1dd3facae Pipeline parsing: reject proj=/o_proj= before first step, to avoid bad performance pattern on hostile pipelines
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41290
2021-11-24 00:31:24 +01:00
Even Rouault 4920c22637 Merge pull request #2953 from nyalldawson/esri_p3
Refactor parameter handling and sql generation when ingesting projcs from ESRI
2021-11-22 15:43:11 +01:00
Even Rouault 7ebe82026f build_db_from_esri.py: fix pyflakes3 warning, and make it python 3.8 compatible 2021-11-22 12:58:00 +01:00
Nyall Dawson a46e315eef Refactor parameter handling and sql generation when ingesting projcs
from ESRI

Avoids a bunch of duplicate code and makes it easier to add support for
additional methods in future
2021-11-22 15:00:55 +10:00
Nyall Dawson 0f7e4fdd42 Make WKT unit handling when ingesting ESRI projection db more robust 2021-11-22 15:00:55 +10:00
Even Rouault df894f50ee Merge pull request #2952 from nyalldawson/esri_cs_code
Fix mapping of coordinate system codes for ft when ingesting ESRI projection db
2021-11-22 02:27:26 +01:00
Nyall Dawson 389924d428 Fix mapping of coordinate system codes for ft when ingesting ESRI
projection db
2021-11-22 10:26:19 +10:00
Even Rouault c7219b4934 Merge pull request #2943 from nyalldawson/esri_12_9
Update ESRI projection engine db to version 12.9
2021-11-20 22:56:35 +01:00
5bb20f7ab4 Docs: Add new Ellipsoids page to explain ellipsoidal parameters (#2922)
Co-authored-by: Rohit <rohitpingale103@gmail.com>
Co-authored-by: Brendan Jurd <brendan.jurd@geoplex.com.au>
Co-authored-by: Mike Taves <mwtoews@gmail.com>
2021-11-20 20:58:13 +13:00
Even Rouault dbf55df332 Merge pull request #2949 from jschueller/patch-1
Fix windows.h conflict with Criterion::STRICT
2021-11-20 00:36:11 +01:00
Julien Schueller 59a36d6904 Fix windows.h conflict with Criterion::STRICT
If window.h is included in the same compilation unit we can expect this kind of errors:
```
util.hpp:348:15: error: expected identifier before ‘,’ token
  348 |         STRICT,
```
2021-11-19 17:56:49 +01:00
Mike Taves dd74dd05a0 CMake: add option USE_CCACHE=OFF to use ccache to compile C/C++ objs 2021-11-20 00:56:48 +13:00
Kristian Evers 81ef87fb1f Merge pull request #2945 from direvus/doxy-latex-setting
DOCS: Remove LATEX_SOURCE_CODE setting from Doxyfile.
2021-11-19 10:06:19 +01:00
Kristian Evers c43dbfc298 Merge pull request #2944 from direvus/2540-docs-missing-funcs
DOCS: Add doxygen entry for proj_context_set_search_paths.
2021-11-19 10:05:56 +01:00
Brendan Jurd 4ba562dc5b DOCS: Remove LATEX_SOURCE_CODE setting from Doxyfile.
Doxygen was issuing warnings that this setting is now obsolete, which
was causing the docs build process to abort.
2021-11-19 19:01:52 +11:00
Brendan Jurd 4bada5813e DOCS: Add doxygen entry for proj_context_set_search_paths.
Refs #2540.
2021-11-19 18:59:27 +11:00
Nyall Dawson d72a09d2c3 When matching conversions from ESRI db, keep searching if we find
a deprecated conversion for a non-deprecated CRS
2021-11-16 16:26:27 +10:00
Nyall Dawson d980257b8e Force conversion of Unity units to Years for epochs in esri projection engine db 2021-11-16 16:00:07 +10:00
Nyall Dawson ee17e57a17 Update ESRI projection db using wkt2 definitions 2021-11-16 15:16:32 +10:00
Nyall Dawson 7641c5982d Update build_db_from_esri.py to use wkt2 definitions instead of wkt1 2021-11-16 15:16:13 +10:00
Even Rouault 8772f08ee8 createOperationsGeogToGeog(): avoid potential harmless floating-point division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=41045 2021-11-15 18:58:45 +01:00
Even Rouault dff8131cc1 Code reformat 2021-11-15 18:55:52 +01:00
Even Rouault 48f018f003 Merge pull request #2938 from rouault/fix_ossfuzz_40955
createOperationsCompoundToCompound(): fix null pointer dereference when connection to proj.db doesn't exist.
2021-11-14 15:49:25 +01:00
Even Rouault 618120f659 Merge pull request #2937 from rouault/fix_2936
createOperations(): do not stop at the first operation in the PROJ namespace for vertical transformations
2021-11-14 15:48:39 +01:00
Even Rouault 5939b96213 createOperationsCompoundToCompound(): fix null pointer dereference when connection to proj.db doesn't exist. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40955 2021-11-12 23:42:09 +01:00
Peter Townsend ac882266b5 Add new option to proj_create_crs_to_crs_from_pj method to force +over on transformation operations (#2914)
Fixes #2512
2021-11-12 13:39:20 +01:00
Even Rouault 86a197a7d6 createOperations(): do not stop at the first operation in the PROJ namespace for vertical transformations
In particular helps with transformation between "NAD83 + NAVD88 height" and WGS 84 that
have regressed in 8.2.0

Fixes #2936
2021-11-11 22:29:10 +01:00
Even Rouault ac113a8898 Merge pull request #2934 from toonn/cross-platform-test
test: Make CApi test cross-platform
2021-11-10 15:27:35 +01:00
toonn e29acba814 test: Make CApi test cross-platform
The test made an assumption of being able to open 1024 - 50 files. On
some platforms, like older Darwin, the default limit is only 256. To
avoid the issue entirely we retrieve the current limit for the process.

We decrease the OPEN_MAX limit if it's too high. On some platforms fopen
returned nullptrs before reaching the limit (-50) and this doesn't
happen if we decrease the limit to 1024.
2021-11-10 14:27:12 +01:00
Even Rouault c20b3f6d1b Merge pull request #2932 from rouault/fix_2931
PROJStringFormatter::toString(): avoid invalid iterator increment (fixes #2931)
2021-11-09 12:43:13 +01:00
Even Rouault f7e9db583b CI: add a MSVC Debug build (refs #2931) 2021-11-09 01:33:06 +01:00
Even Rouault 3300531083 PROJStringFormatter::toString(): avoid invalid iterator increment (fixes #2931) 2021-11-09 00:49:02 +01:00
Even Rouault fa0c0e617e Reformatting fixes 2021-11-09 00:44:06 +01:00
Nyall Dawson 8a5240c78f Update ESRI Projection Engine db to version 12.9 2021-11-08 15:30:10 +10:00
Even Rouault 01afa55e56 Merge pull request #2926 from snowman2/warn
DOC: Add warning in proj_as_proj_string about potential information loss with CRS
2021-11-06 18:44:12 +01:00
Even Rouault dfe1de8c0e Merge pull request #2925 from snowman2/docs
DOC: add available keys to proj_context_get_database_metadata
2021-11-06 18:43:41 +01:00
snowman2 bd251fa2b1 DOC: Add warning in proj_as_proj_string about potential information loss with CRS 2021-11-05 21:39:16 -05:00
snowman2 b829151b8d DOC: add available keys to proj_context_get_database_metadata 2021-11-05 20:01:53 -05:00
Even Rouault 76dfefe8fc Merge pull request #2921 from rouault/epsg_10_039
Database: update to EPSG v10.039
2021-11-05 11:39:11 +01:00
Momtchil Momtchev 792884b035 Remove useless PROJ_DLL uses in .cpp files (#2920) 2021-11-04 23:52:34 +01:00
Even Rouault b2acc54e5f Database: update to EPSG v10.039 2021-11-04 20:48:12 +01:00
Even Rouault bc1c85c0ff Merge pull request #2917 from rouault/fix_boundcrs_name
BoundCRS WKT import: fix setting of name
2021-11-03 10:58:33 +01:00
Even Rouault f133b42e1c Doc: news.rst: formatting fixes 2021-11-03 10:57:56 +01:00
Even Rouault c3d8ca54fb BoundCRS WKT import: fix setting of name
Name was erroneously set (since 8.2.0) to SOURCECRS.

Raised in https://lists.osgeo.org/pipermail/gdal-dev/2021-November/054944.html
2021-11-03 00:22:18 +01:00
Even Rouault 13648e8e82 util.hpp: reformat 2021-11-03 00:21:43 +01:00
Kristian Evers e246e6e2f7 docs: Fix errors in 8.2.0 news section 2021-11-01 19:47:03 +01:00
Kristian Evers 895f5e3953 Update website for 8.2 release 2021-11-01 18:17:29 +01:00
Kristian Evers 44bf6b4ba9 Merge remote-tracking branch 'osgeo/master' 2021-11-01 18:10:16 +01:00
Kristian Evers a36272c594 Update website for 8.1.1 release 2021-11-01 18:02:24 +01:00
Even Rouault 3e1cfd2164 Merge pull request #2916 from rouault/cppcheck_2_7
cppcheck.sh: make it compatible with cppcheck 2.7
2021-10-31 13:13:45 +01:00
Even Rouault e4c797a6ed cppcheck.sh: make it compatible with cppcheck 2.7 2021-10-31 10:51:15 +01:00
Mike Taves a892e23d9a RFC 7: Drop Autotools, maintain CMake (#2880) 2021-10-27 11:27:19 +13:00
Kristian Evers 54c56ff68b Update NEWS for 8.2.0 release 2021-10-26 21:59:10 +02:00
Kristian Evers bbc9e49e1c Fix version number of latest release in NEWS 2021-10-26 21:09:32 +02:00
Kristian Evers c27496eb44 Update NEWS for 8.1.1 release 2021-10-26 21:09:25 +02:00
Kristian Evers f0469bf0b8 Bump PROJ-data version number in docs 2021-10-26 21:07:53 +02:00
Kristian Evers 996ec49df9 Update man-pages from Sphinx-docs 2021-10-26 21:06:11 +02:00
Kristian Evers 9d813991c6 Update ABI numbers for 8.2.0 release 2021-10-26 21:00:19 +02:00
Even Rouault 0fe32d249f Merge pull request #2913 from rouault/fix_2905
lib_proj.cmake: add a PROJ::proj alias and add BUILD_INTERFACE include directories...
2021-10-25 19:17:53 +02:00
Even Rouault 37d141a5d6 lib_proj.cmake: add a PROJ::proj alias and add BUILD_INTERFACE include directories, so that proj can be used as a subdirectory of a larger project (fixes #2905) 2021-10-25 18:20:06 +02:00
Kristian Evers 24ad521d3e Merge pull request #2912 from rouault/cmake_static_build
CMake: revise how we deal with symbol export and static builds
2021-10-25 16:46:11 +02:00
Even Rouault 6e9b324ab7 CMake: revise how we deal with symbol export and static builds
- Remove the explicit PROJ_MSVC_DLL_IMPORT symbol used for importing
  symbols from a MSVC .dll: by default on MSVC, we use
  now __declspec(dllimport), unless PROJ_MSVC_DLL_EXPORT is defined
  by PROJ at build time. This makes it easier for users: they
  don't have to define anything special. This simplifies in particular
  the build of our binaries
- For static builds, export -DPROJ_DLL= as public, so that users
  that import PROJ through CMake mechanism don't have to do it
  manually.
2021-10-23 16:27:30 +02:00
Even Rouault 9817fe7db3 Merge pull request #2911 from rouault/cmake_version
CMake: align the VERSION of the library with libtool practices
2021-10-23 15:56:43 +02:00
Even Rouault 9aed9e0297 Merge pull request #2907 from josch/tinshiftfallback
add fallback strategy for tinshift transform to use closest triangle for points not in any
2021-10-22 19:30:00 +02:00
Even Rouault 5a47650a5b CMake: align the VERSION of the library with libtool practices
Currently (at least as of 8.1.1) we don't have the same .so.x.y.z
numbers for the libtool and cmake builds (the y and z are swapped for
the cmake build). While only the SONAME (the .x part) mostly matters,
it is probably better to stick with the libtool convention to determine
the y and z.
This patch should make it easier by setting explicitly each of the
current, revision, age and computing automatically
x = current - age
y = age
z = revision
2021-10-22 18:17:38 +02:00
Johannes Schauer Marin Rodrigues f5aed82fc6 Add fallback_strategy to tinshift transform
- this bumps format_version of tinshift JSON to 1.1 for the new field
   fallback_strategy
 - the default behaviour without that field is retained
 - if fallback_strategy is set to "nearest_side", then points that do not fall
   into any of the triangles will be transformed according to the nearest
   triangle
 - if fallback_centroid is set to "nearest_side", then points that do not fall
   into any of the triangles will be transformed according to the triangle
   with the nearest centroid
2021-10-21 22:18:29 +02:00
Even Rouault 01d503cb23 Merge pull request #2908 from snowman2/const
TYPE: Update const declarations in proj_trans_bounds
2021-10-21 21:53:59 +02:00
Even Rouault f714b5300a Merge pull request #2910 from rouault/epsg_10_038
Database: update to EPSG v10.038
2021-10-21 21:53:14 +02:00
Even Rouault 0ef6f0d64a Database: update to EPSG v10.038 2021-10-21 18:27:18 +02:00
Even Rouault 5dd04d16de Merge pull request #2906 from jjimenezshaw/za_cdngi_sageoid2010
Add grid alternative for SAGEOID2010, South African geoid model
2021-10-21 11:09:04 +02:00
snowman2 4c8415dafe TYPE: Update const declarations in proj_trans_bounds 2021-10-19 07:55:55 -05:00
Even Rouault 8671b8e7ff exportToPROJStringGeneric(): avoid harmless floating-point division by zero if conversion factor is 0. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=40050 2021-10-17 21:04:29 +02:00
Even Rouault 33683634ee createOperations(): avoid harmless floating-point division by zero if conversion factor of target unit is 0. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39969 2021-10-16 16:54:31 +02:00
Even Rouault ed1ab5539a Fix previous commit 2021-10-16 15:48:02 +02:00
Even Rouault 576a075d30 CMake: fix invproj/invgeod generation on Windows when building with an explicit configuration 2021-10-16 15:28:13 +02:00
Even Rouault 22fcf6689e cmake/ProjTest.cmake: fix error in creation of tmp_user_writable_dir 2021-10-16 15:25:38 +02:00
Even Rouault 04928472db Merge pull request #2889 from jjimenezshaw/mx_inegi_ggm10
Add transformations for GGM10, Mexican geoid model
2021-10-15 23:35:04 +02:00
Even Rouault 3aad65681a Merge pull request #2902 from rouault/issue_2757
Geographic 3D CRS: allow to export to WKT1:ESRI if only the GEOGCS is known (and thus extrapolating a VERTCS) (fixes #2757)
2021-10-15 23:33:52 +02:00
Javier Jimenez Shaw 83a380b599 add za_cdngi_sageoid2010.tif vertical grid file for SAGEOID2010.dat 2021-10-13 16:44:40 +02:00
Even Rouault 785a650706 Geographic 3D CRS: allow to export to WKT1:ESRI if only the GEOGCS is known (and thus extrapolating a VERTCS) (fixes #2757) 2021-10-12 11:12:53 +02:00
Even Rouault 4387332ea6 Fix export to WKT1:ESRI of CRS, datum, ellipsoids name that don't have a EPSG equivalent and have parentheses in their name 2021-10-12 10:58:55 +02:00
Even Rouault 6a87701011 Merge pull request #2897 from rouault/fix_2852
CMake build: generate invproj/invgeod binaries (symlinks on Unix, copy otherwise) (fixes #2852)
2021-10-12 10:03:27 +02:00
Even Rouault a16ead1845 Merge pull request #2900 from rouault/cmake_wkt_parser
CMake build: add generate_wkt1_parser and generate_wkt2_parser manual target, and logic to detect when they must be run
2021-10-12 10:02:43 +02:00
Even Rouault 50728ca48b Merge pull request #2896 from rouault/ossfuzz_cmake
ossfuzz: port PROJ build to cmake
2021-10-11 11:49:21 +02:00
Even Rouault c8d53993d2 Merge pull request #2895 from rouault/cmake_BUILD_PROGRAMS
CMake: add a BUILD_APPS to be able to disable build of all applications
2021-10-11 11:48:57 +02:00
Even Rouault b68ee95723 CMake build: add generate_wkt1_parser and generate_wkt2_parser manual target, and logic to detect when they must be run 2021-10-11 11:47:34 +02:00
Mike TavesandEven Rouault d94e045816 CMake: Always build gie if testing is requested (#2899)
Co-authored-by: Even Rouault <even.rouault@spatialys.com>
2021-10-11 10:23:20 +13:00
Even Rouault 7f0b6bd9c6 proj_crs_get_datum_forced(): catch potential exception (fixes CID 358433, 358434, 358435) 2021-10-10 20:43:31 +02:00
Even Rouault bf6743caf3 ossfuzz builds: switch to cmake to build PROJ 2021-10-10 12:10:39 +02:00
Even Rouault 27e2fd3a10 CMake: add a BUILD_APPS to be able to disable build of all programs
This makes it easier to turn off all programs, rather than individually.
Useful for example to avoid https://github.com/OSGeo/gdal/blob/master/gdal/fuzzers/build.sh#L138
2021-10-10 12:08:43 +02:00
Even Rouault a159c44f35 Add testing of invproj 2021-10-09 20:32:31 +02:00
Even Rouault 42c453973f test/cli/testproj: fix wrong variable name 2021-10-09 19:58:02 +02:00
Even Rouault ca15e42b69 geod / proj: accept lt-inv[geod/proj] name for older libtool versions 2021-10-09 19:58:02 +02:00
Even Rouault 94414d32bb autoconf build: build invproj and invgeod in build directory
Due to libtool wrapper scripts, it is easier to build fully fledged
binaries.
The installed binaries will be symlinks, as before.
2021-10-09 19:26:36 +02:00
Even Rouault 7179491492 CMake build: generate invproj/invgeod binaries (symlinks on Unix, copy otherwise) (fixes #2852) 2021-10-09 19:26:36 +02:00
Even Rouault fdaf93449f Merge pull request #2893 from rouault/fix_2892
WKT1 parser: recognize Lambert_Conformal_Conic as projection name for LCC 1SP or 2SP (fixes #2892)
2021-10-09 12:53:17 +02:00
Even Rouault 371a926b39 WKT1 parser: recognize Lambert_Conformal_Conic as projection name for LCC 1SP or 2SP (fixes #2892) 2021-10-08 20:58:13 +02:00
Even Rouault 02225ff0bb Merge pull request #2891 from rouault/fix_2890
WKT concatenated operation parsing: fix when a axis order reversal conversion is the first or last operation (fixes #2890)
2021-10-08 17:25:06 +02:00
Even Rouault 2118edd31b WKT concatenated operation parsing: fix when a axis order reversal conversion is the first or last operation (fixes #2890) 2021-10-08 14:50:55 +02:00
Javier Jimenez Shaw 86bdfcf0d4 update metadata.sql to PROJ_DATA version 1.8 2021-10-08 14:21:29 +02:00
Javier Jimenez Shaw c78c85f950 Set area of use compatible with grid file 2021-10-08 14:20:49 +02:00
Even Rouault c8b28d3fd2 Merge pull request #2888 from rouault/epsg_10_037
Database: update to EPSG v10.037
2021-10-07 19:00:32 +02:00
Javier Jimenez Shaw 3dc2e6e492 extend unit test to find GGM10 for vcrs EPSG:5703 2021-10-07 18:59:44 +02:00
Javier Jimenez Shaw 55b71df675 add GGM10 (Mexico to NAVD88) to geoid_model sql table 2021-10-07 18:53:50 +02:00
Javier Jimenez Shaw 1929cb69e8 add mx_inegi_ggm10.tif vertical grid file, with custom transformation 2021-10-07 18:36:46 +02:00
Even Rouault 9df2d3085b Database: update to EPSG v10.037 2021-10-07 13:28:17 +02:00
Even Rouault 7be04dedc2 scripts/build_db.py: fix due to recent changes 2021-10-07 13:27:55 +02:00
Even Rouault b0a9822679 cmake build: install proj_symbol_rename.h 2021-10-07 11:18:34 +02:00
Even Rouault 39ecfbec93 Merge pull request #2887 from rouault/fix_2886
Fix CRS Equality with PROJ parameter order
2021-10-07 09:14:20 +02:00
Even Rouault f28d36cee9 CRS::_isEquivalentTo(): be tolerant to different order of PROJ step options (fixes #2886) 2021-10-06 19:26:09 +02:00
Even Rouault 3a67ea87fa ProjectedCRS::_isEquivalentTo(): ignore base CRS axis order even in EQUIVALENT mode if one of them is lacking an explicit CS order (refs #2886) 2021-10-06 19:21:03 +02:00
Even Rouault f057ac086e Merge pull request #2884 from rouault/fix_op_alternatives_bbox_non_greenwich
proj_create_crs_to_crs() + proj_trans(): fix when non-Greenwich prime meridian is involved
2021-10-06 11:22:46 +02:00
Even Rouault a92526a4ba proj_create_crs_to_crs() + proj_trans(): fix when non-Greenwich prime meridian is involved
This fixes a regression introduced in 7af1d5741da08d9546b907e0da2c21c54c61b27 / PROJ 7.2.0
where reprojection of area of use was broken when the source/target CRS
did not use Greenwich as prime meridian.
Fixes https://lists.osgeo.org/pipermail/gdal-dev/2021-October/054764.html

Now with the fix:
- using grid:
$ echo 286415 431434 | PROJ_NETWORK=ON src/cs2cs -d 4 EPSG:20790  EPSG:3763
86412.4262	131434.1706 0.0000

- not using it:
$ echo 286415 431434 | src/cs2cs -d 4 EPSG:20790  EPSG:3763
86412.5265	131433.8561 0.0000
2021-10-06 01:03:19 +02:00
Even Rouault 6d41d4ae26 test_c_api.cpp: reformat 2021-10-06 00:19:20 +02:00
Alan D. Snow 06d299db13 Add proj_trans_bounds to compute the image of a input bounding box through a transformation (#2882)
Fixes #2779
2021-10-05 19:27:28 +02:00
Even Rouault c50ba1b1a7 Merge pull request #2876 from rouault/iau
Add IAU_2015 CRS definitions
2021-10-05 19:21:05 +02:00
Even Rouault 6b58adb4b7 Merge pull request #2868 from rouault/proj_factors_with_projected_crs
proj_factors(): accept P to be a projected CRS (fixes #2854)
2021-10-05 19:20:32 +02:00
Even Rouault 44771f4832 Merge pull request #2883 from snowman2/build_docs
DOC: Add instructions for building docs with docker image
2021-10-04 12:06:29 +02:00
snowman2 40939fb1c5 DOC: Add instructions for building docs with docker image 2021-10-03 22:01:57 -05:00
Even Rouault ef5c77acb2 Merge pull request #2881 from rouault/fix_misidentification_of_projstring_with_ellipsoid
CRS::identify(): fix ignoring CS order when identifying a geodetic CRS by a PROJ string with just the ellipsoid
2021-09-30 12:08:34 +02:00
Even Rouault 47b9629c56 proj_factors(): accept P to be a projected CRS (fixes #2854)
Updated doc:

    Starting with PROJ 8.2, the P object can be a projected CRS, for example
    instantiated from a EPSG CRS code. The factors computed will be those of the
    map projection implied by the transformation from the base geographic CRS of
    the projected CRS to the projected CRS.

    The input geodetic coordinate lp should be such that lp.lam is the longitude
    in radian, and lp.phi the latitude in radian (thus independently of the
    definition of the base CRS, if P is a projected CRS).
2021-09-30 12:07:50 +02:00
Even Rouault 7396d4d96c CRS::identify(): fix ignoring CS order when identifying a geodetic CRS by a PROJ string with just the ellipsoid 2021-09-29 23:32:10 +02:00
Kristian Evers 64c38c2bc1 Merge pull request #2878 from kbevers/fix-latlon-doc
doc: clarify use of +datum option with +proj=latlon
2021-09-29 18:46:31 +02:00
Kristian Evers 769dcd7f63 doc: clarify use of +datum option with +proj=latlon 2021-09-29 17:52:04 +02:00
Even Rouault 24a9ad540c Merge pull request #2877 from rouault/relates_to_gdal_3927
CRS::extractGeodeticCRS(): implement for DerivedProjectedCRS (related to refs OSGeo/gdal#3927)
2021-09-29 11:41:17 +02:00
Even Rouault f269fd8fa8 CRS::extractGeodeticCRS(): implement for DerivedProjectedCRS (related to refs OSGeo/gdal#3927) 2021-09-28 23:23:38 +02:00
Even Rouault 5d6bdadfca projinfo --list-crs / proj_get_crs_info_list_from_database(): make it work with IAU generic authority name 2021-09-28 16:37:39 +02:00
Even Rouault f13c584c05 test: add tests of operations between geographic/geodetic and projected IAU CRS 2021-09-28 14:47:11 +02:00
Even Rouault 40ab72f2e9 PROJStringFormatter: add optimizations useful for IAU CRS transformation pipelines 2021-09-28 14:47:10 +02:00
Even Rouault e6e6e4ca34 Add a mapping for versioned authorities, so that one can use IAU:xxxx or IAU_2015:xxxx transparently 2021-09-28 14:47:09 +02:00
Even Rouault f982d9d310 Database: add IAU_2015 CRS 2021-09-28 14:47:08 +02:00
Even Rouault bc30adc7d8 Database: add check for Orthographic conversion 2021-09-28 14:47:08 +02:00
Even Rouault f386e22e36 AuthorityFactory::createGeodeticCRS(): use description column for remarks 2021-09-28 14:47:07 +02:00
Even Rouault 17a218964e Database reading: implement reading a GeodeticCRS with a Spherical CS 2021-09-28 14:47:07 +02:00
Even Rouault 23c44387d1 Database: add some hand made entries early 2021-09-28 14:47:06 +02:00
Even Rouault 6cea38f649 Merge pull request #2872 from rouault/epsg_10_036
Database: update to EPSG v10.036
2021-09-27 18:33:57 +02:00
Even Rouault f1efc8a7e4 Database: update to EPSG v10.036 2021-09-27 17:14:23 +02:00
Kristian Evers ac1963352d Merge pull request #2865 from direvus/doc/2864-error-handling
DOC: Add content for Development/Error handling page.
2021-09-27 09:18:59 +02:00
Brendan Jurd e27c4424ea DOC: Refresh Development/Quickstart and remove Development/Threads (#2863)
* DOC: Refresh Development/Quickstart and remove Development/Threads

The document Development/Threads was severely out of date, and was
focussed on contrasting the current API with an old API that was
deprecated several years ago, and removed from the current PROJ earlier
this year.

Update Development/Quickstart to give more information about the use of
threading context, as a replacement for the content that was previously
in Threads.

Also give the example code examples/pj_obs_api_mini_demo.c a cleanup
pass to make it at least internally consistent with its own code style.

The header comments of the example code are still, much like the Threads
document, fixated on comparing proj.h against proj_api.h, which is an
interesting historical curio to be sure, but probably doesn't need to
persist here.  It might be worth cleaning this up further as a separate
exercise.

Fixes #2451
2021-09-27 09:17:58 +02:00
Even Rouault 3a827d2e04 Merge pull request #2869 from mathstuf/cmake-dl-lib-check-fix
cmake: check the right variable for `libdl`
2021-09-25 11:00:45 +02:00
Ben Boeckel 414b3c19f4 cmake: check the right variable for libdl 2021-09-24 18:52:44 -04:00
Even Rouault a9ac32ed3a Merge pull request #2867 from rouault/fix_2866
proj_normalize_for_visualization(): set input and output units when there are several alternative transformations (fixes #2866)
2021-09-24 17:54:35 +02:00
Even Rouault 1d6c202f90 proj_normalize_for_visualization(): set input and output units when there are several alternative transformations (fixes #2866) 2021-09-24 17:16:28 +02:00
Brendan Jurd de062c1417 DOC: Add content for Development/Error handling page.
This page was previously empty.  This commits populates it with some
very basic information and a code example of how to use
proj_context_errno and proj_context_errno_string.

Something: because something is better than nothing.

It might be good to include some more fine detail about how PROJ manages
the error state internally, but I don't yet have the expertise in PROJ
internals to write that content myself.

Also the code sample probably has a segfault bug or leaks memory,
because C.
2021-09-24 16:08:15 +10:00
Even Rouault 35fe5da17d Update proj_symbol_rename.h 2021-09-20 22:31:30 +02:00
Even Rouault 4ff0aea187 Conversion::inverse(): avoid harmless division by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=39033 2021-09-20 18:50:29 +02:00
Even Rouault 5f3f02163e networkfilemanager.cpp: fix compiler warnings on 32-bit systems where time_t is 32-bit 2021-09-19 16:48:13 +02:00
Even Rouault 55dd9ab747 Merge pull request #2861 from rouault/optimize_pipelines_planetary_crs
Optimize pipelines of planetary CRS (geocentric latitude, west-positive longitude)
2021-09-18 15:09:55 +02:00
Even Rouault 527e1eb983 Optimize pipelines of planetary CRS (geocentric latitude, west-positive longitude) 2021-09-18 13:13:47 +02:00
Even Rouault 438ead90d3 Merge pull request #2859 from rouault/database_anchor
Database: add a 'anchor' field to geodetic_datum and vertical_datum tables
2021-09-18 11:20:13 +02:00
Even Rouault 483717e593 test: getInsertStatementsFor(): test datums with anchor 2021-09-17 20:42:22 +02:00
Even Rouault 2db54cc09a Database: add a 'anchor' field to geodetic_datum and vertical_datum tables
Update database layout version number to 1.2 consequently

This new capability will be used by IAU planetary CRS (refs #2601)
2021-09-17 19:20:54 +02:00
Kristian Evers f22f3028cc Merge pull request #2858 from jorisvandenbossche/patch-1
DOC: fix the inclusion of the custom css file
2021-09-17 10:18:20 +02:00
Joris Van den Bossche 8a8207ad46 DOC: fix the inclusion of the custom css file 2021-09-17 08:44:49 +02:00
Even Rouault a3e412995d Merge pull request #2851 from rouault/epsg_10_035
Database: update to EPSG v10.035
2021-09-16 12:01:39 +02:00
Waheed Barghouthi e54739954d update projsync command
I added the --all arg to the command, it seems its now a requirement, not sure if this is meant to be like this
2021-09-16 10:56:20 +02:00
Even Rouault 1cedab9d8d Merge pull request #2855 from rouault/ortho_e_followup
Inverse ortho ellipsoidal oblique: address a few remarks...
2021-09-16 10:20:14 +02:00
Even Rouault c9b5060051 Inverse ortho ellipsoidal oblique: address a few remarks from https://github.com/OSGeo/PROJ/issues/2844#issuecomment-920138371 2021-09-15 18:08:05 +02:00
Even Rouault e6e4d5aa20 Merge pull request #2853 from rouault/fix_inverse_ortho_e
Fix error in implementation of Inverse ellipsoidal orthographic projection that cause convergence to sometimes fail (fixes #2844)
2021-09-15 11:20:28 +02:00
Even Rouault d209e4ab62 Inverse ellipsoidal orthographic projection (oblique case): fix convergence at pole 2021-09-15 06:58:26 +02:00
Even Rouault 3bd64e8532 Fix error in implementation of Inverse ellipsoidal orthographic projection (oblique case) that cause convergence to sometimes fail (fixes #2844) 2021-09-15 06:41:39 +02:00
Even Rouault 85f496b267 Database: update to EPSG v10.035
This seriously impacts French CRS users with the introduction of new
datums, geodetic CRS and projected CRS based on "RGF 93 v2" and "RGF 93 v2b",
and the previous single "RGF 93" being renamed as "RGF 93 v1".

To be noted too, the addition of a null transformation between NAD83(2011)
and WGS 84, which impacts a number of tests in the test suite.
2021-09-15 00:32:58 +02:00
Even Rouault d3c615f9ce test/cli/testvarious: make one test more robust regarding EPSG updates 2021-09-15 00:29:05 +02:00
Even Rouault 7f0946ab38 isEquivalentTo(): improve comparison of datum names based on official name and aliases (preparation for EPSG v10.035 update) 2021-09-15 00:28:25 +02:00
Even Rouault 47fb85bdf0 Merge pull request #2850 from rouault/projjson_0_4
PROJJSON: support additional properties allowed in id object (version, authority_citation, uri) for parity with WKT2:2019
2021-09-14 22:03:48 +02:00
Even Rouault bca0a82921 PROJJSON: support additional properties allowed in id object (version, authority_citation, uri) for parity with WKT2:2019 2021-09-14 18:13:47 +02:00
Even Rouault 92ca1a9455 Merge pull request #2847 from rouault/spherical_ocentric
Add support for GeodeticCRS using a Spherical ocentric coordinate system
2021-09-14 16:13:05 +02:00
Kristian Evers 884cff477e Merge pull request #2848 from direvus/docs/about-license
Update docs About page to pull in license text from COPYING.
2021-09-11 13:01:31 +02:00
Brendan Jurd c8bac28284 Use literalinclude for COPYING in About page.
This avoids a sphinx error due to the leading space in front of the
horizontal divider in COPYING and also helps to indicate where the
included license text begins and ends.
2021-09-10 11:28:56 +10:00
Brendan Jurd 98c8fd29ce Update docs About page to pull in license text from COPYING.
Fixes #2709.
2021-09-10 10:57:06 +10:00
Even Rouault 078952e7f0 createOperations(): use an explicit conversion operation for geodetic <--> geocentric latitude 2021-09-08 17:05:45 +02:00
Even Rouault bc568fcc99 createConversion(): avoid nullptr dereference on a method without parameters 2021-09-08 17:05:45 +02:00
Even Rouault 85733181ee createOperations(): deal with spherical planetocentric geodetic CRS
This also fixes conversion between geocentric latlong and geodetic latlong
with cs2cs. This was dealt with in PR 1093, but in the wrong direction
(the geocentric latitude must be <= in absolute value to the geodetic one)
The issue here was linked to the semantics of the +geoc specifier, which
affects the semantics of the input coordinates in the forward direction
(+geoc means that the input coordinate is is a geocentric latitude),
which defeats the logic of doing A to B by using the inverse path of A
and the forward path of B.
2021-09-08 17:05:45 +02:00
Even Rouault 7ea1338d8c Merge pull request #2845 from rouault/fix_2843
Fix database access across fork() when SQLite3 doesn't use pread[64]() (fixes #2843)
2021-09-08 13:17:43 +02:00
Even Rouault 5527b10ed1 Support importing/exporting WKT & PROJJSON of 2D axis spherical planetocentric geodetic CRS 2021-09-07 19:57:36 +02:00
Even Rouault 312e511cde pj_obj_create(): avoid passing invalid ellipsoid parameters to geod_init(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=38192 2021-09-07 17:50:29 +02:00
Even Rouault ce08025122 Fix database access across fork() when SQLite3 doesn't use pread[64]() (fixes #2843) 2021-09-07 15:36:11 +02:00
Even Rouault e75eebac66 Merge pull request #2842 from rouault/getInsertStatementsFor_reorder_params
getInsertStatementsFor(): re-order projection parameters according to their canonical order if needed
2021-09-06 17:35:07 +02:00
Even Rouault 01559894ca getInsertStatementsFor(): re-order projection parameters according to their canonical order if needed 2021-09-05 16:06:55 +02:00
Even Rouault 71b372e6f0 Merge pull request #2841 from rouault/cppcheck_fixes
Cppcheck fixes
2021-09-05 15:41:40 +02:00
Even Rouault b91af0075a healpix.cpp: make it more obvious to cppcheck that capmap.cn is always initialized 2021-09-04 18:06:07 +02:00
Even Rouault a767ae5d14 Workaround 'Overlapping read/write of union is undefined behavior' cppcheck warning (but really fixing them would be more involved) 2021-09-04 18:01:11 +02:00
Even Rouault 49c0ef87ba Conversion::createAxisOrderReversal(): workaround cppcheck false positive 2021-09-04 17:45:12 +02:00
Even Rouault f792fde43e createFromUserInput(): make it more obvious for cppcheck and humans too 2021-09-04 17:27:41 +02:00
Even Rouault 129737b262 GeodeticCRS::identify(): make it more obvious for cppcheck 2021-09-04 17:27:41 +02:00
Even Rouault a675c26616 pipeline.cpp: remove impossible condition 2021-09-04 17:21:40 +02:00
Even Rouault 09367628bf formatting fix 2021-09-04 01:04:36 +02:00
Even Rouault 37d2bac78d Merge pull request #2839 from rouault/fix_ossfuzz_31964
pj_obj_create(): avoid passing invalid ellipsoid parameters ot pj_calc_ellipsoid_params()
2021-09-04 01:03:49 +02:00
Even Rouault d4b2acb314 Merge pull request #2840 from hobu/grid-debug-lint
Add some filename lint #2838 to output error messages
2021-09-04 01:03:39 +02:00
Howard Butler 4f5d9f0625 Add some filename lint #2838 to output error messages 2021-09-03 16:30:45 -05:00
Even Rouault 126991dea0 pj_obj_create(): avoid passing invalid ellipsoid parameters ot pj_calc_ellipsoid_params(). Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=31964 2021-09-03 22:49:12 +02:00
Even Rouault 24baa80540 formatting fix 2021-09-03 22:23:24 +02:00
Even Rouault 27fb08a9c9 Merge pull request #2835 from rouault/netcdf_cf_pole_rotation
Add proj_create_conversion_pole_rotation_netcdf_cf_convention() to address netCDF datasets using a pole rotation method
2021-09-03 11:55:24 +02:00
Even Rouault 3f018de8ec Merge pull request #2837 from OSGeo/backport-2836-to-master
[Backport master] ortho.rst: fix typo
2021-09-02 14:35:39 +02:00
Even Rouault 61f3796a2b Merge pull request #2836 from OSGeo/rouault-patch-1
ortho.rst: fix typo
2021-09-02 12:30:14 +00:00
Even Rouault f19b2948ef Add proj_create_conversion_pole_rotation_netcdf_cf_convention() to address netCDF datasets using a pole rotation method 2021-09-02 09:19:22 +02:00
Kristian Evers 1b18086441 Merge pull request #2833 from rouault/doc_topocentric_ortho_epsg_ref
Doc: mentions EPSG methods that corresponds to topocentric and ortho (fixes #2832)
2021-09-01 21:21:07 +02:00
Even Rouault 1ddad0b601 Doc: mentions EPSG methods that corresponds to topocentric and ortho (fixes #2832) 2021-09-01 11:18:31 +02:00
Even Rouault 1ed57b9e47 Merge pull request #2831 from gorlak-forks/uwp-filemanager
Make filemanager aware of UWP Win32 API
2021-09-01 10:31:44 +02:00
Even Rouault fc4663a2cb Merge pull request #2829 from rouault/epsg_10_033
Database: update to EPSG v10.033
2021-09-01 10:30:47 +02:00
Even Rouault 468ceb8c82 PROJStringFormatter::toString(): add missing iterator increment (but luckily this omission didn't result in endless loop, just an extra iteration) 2021-08-31 21:16:04 +02:00
Even Rouault 8e3b860c65 Workaround false positive in recent cppcheck 2021-08-31 21:15:15 +02:00
Even Rouault 54211c9845 io.cpp: remove always true test 2021-08-31 21:08:47 +02:00
Even Rouault 4419fe32ed io.cpp: silence Coverity false positive (CID 356032) 2021-08-29 20:54:02 +02:00
Even Rouault b6d3f29ce5 Database: update to EPSG v10.033 2021-08-28 18:11:49 +02:00
Mike Taves a2713d85ea proj.pc.in: add -lm -ldl in Libs.private (#2825) 2021-08-28 22:06:41 +12:00
Even Rouault 3bb6c1bf02 Merge pull request #2826 from rouault/doc_projjson_0.3
Doc: projjson.rst: update to PROJJSON v0.3
2021-08-27 20:05:55 +02:00
Even Rouault e4788a9c0f Merge pull request #2827 from rouault/esri_goode_homolosine
ESRI WKT: add support for import/export of (non interrupted) Goode Homolosine
2021-08-27 20:05:43 +02:00
Even Rouault 3f9c0a0b73 ESRI WKT: add support for import/export of (non interrupted) Goode Homolosine
Issue found during https://github.com/OSGeo/gdal/pull/4355 when it was found
that a WKT with Goode_Homolosine projection parsed as ESRI WKT was mapped
wrongly to Interrupted Goode Homolosine
2021-08-27 18:35:06 +02:00
Even Rouault 9f763419b5 Doc: projjson.rst: update to PROJJSON v0.3 2021-08-27 15:15:49 +02:00
Even Rouault cd1d1fbe7b Merge pull request #2824 from rouault/fix_ossfuzz_37489
Pipeline instanciation: fix performance issues on huge (broken) strings...
2021-08-27 12:52:37 +02:00
Even Rouault 2a3384e9b2 Merge pull request #2823 from rouault/fix_8353
WKT importer: better detect ESRI WKT
2021-08-27 12:52:25 +02:00
Even Rouault 1cdd0044be Pipeline instanciation: fix performance issues on huge (broken) strings which managed somehow to cause nested pipelines not caught due to some non-roundtripability in parsing/serializing. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37489 2021-08-26 22:16:36 +02:00
Even Rouault 1e5bd1ac69 WKT importer: better detect ESRI WKT on projected CRS (fixes #2822) 2021-08-26 17:01:27 +02:00
Even Rouault a667e86dd4 WKT importer: detect ESRI WKT even when datum name doesn't start with D_ (fixes #2822) 2021-08-26 16:27:38 +02:00
Even Rouault db5a6e683b Merge pull request #2820 from rouault/fix_ossfuzz_37438
Fix O(n^2) performance patterns where n is the number of steps of a pipeline
2021-08-23 16:19:59 +02:00
Even Rouault 79b2186dfc PROJStringFormatter::toString(): fix potential O(n^2) performance. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37438 2021-08-21 16:29:47 +02:00
Even Rouault be95408654 pipeline instanciation: fix potential O(n^2) performance. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=37438 2021-08-21 16:29:24 +02:00
Even Rouault 6ee8c26b60 Merge pull request #2818 from rouault/fix_2817
ConcatenatedOperation::fixStepsDirection(): fix bad chaining of steps…
2021-08-20 18:31:00 +02:00
Even Rouault fa31633658 ConcatenatedOperation::fixStepsDirection(): fix bad chaining of steps when inverse map projection is involved in non-final step (fixes #2817) 2021-08-20 17:25:15 +02:00
Even Rouault 4766b7c3a1 Merge pull request #2814 from rouault/fix_2813
BoundCRS: accept importing/exporting in WKT2 and PROJJSON the scope/area/extent/id attributes (fixes #2813)
2021-08-19 10:11:47 +02:00
Even Rouault 31692d0c06 BoundCRS: accept importing/exporting in WKT2 and PROJJSON the scope/area/extent/id attributes (fixes #2813)
For PROJJSON only, also accept the ``name`` attribute.
2021-08-19 02:15:04 +02:00
Even Rouault 92d8cc6610 Merge pull request #2809 from rouault/preserve_proj4_crs_string_wkt2_remarks
WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[]…
2021-08-16 21:08:25 +02:00
Even Rouault b89bdc21a4 Merge pull request #2811 from OSGeo/busstoptaktik-patch-1
Spell the last name of R.E. Deakin correctly
2021-08-16 21:07:34 +02:00
Thomas Knudsen aacbdaa12e Spell the last name of R.E. Deakin correctly
It's spelled correctly in the references, so better also get it right in the source
2021-08-16 20:39:13 +02:00
Even Rouault 3d9b6f488d Merge pull request #2810 from rouault/test_polar_stereo
test: more testing of Polar Stereographic variants
2021-08-16 19:12:21 +02:00
Even Rouault ed16a27e1f test: more testing of Polar Stereographic variants 2021-08-16 18:03:39 +02:00
Even Rouault 620c13c6c4 WKT2 import/export: preserve PROJ.4 CRS extension string in REMARKS[] (when the WKT2 representation isn't lossless) 2021-08-16 15:58:13 +02:00
Even Rouault 9190f2b7b0 Merge pull request #2807 from rouault/fix_2804
createOperations(): fix missing deg<-->rad conversion when transforming with a CRS that has a fallback-to-PROJ4-string behaviour and is a BoundCRS of a GeographicCRS (fixes #2804)
2021-08-16 13:49:03 +02:00
Even Rouault 30d220143a createOperations(): fix missing deg<-->rad conversion when transforming with a CRS that has a fallback-to-PROJ4-string behaviour and is a BoundCRS of a GeographicCRS (fixes #2804) 2021-08-16 11:59:22 +02:00
Even Rouault 9b0c8afcf1 Merge pull request #2805 from rouault/fix_2803
Implement promoteTo3D() / demoteTo2D() for DerivedGeographicCRS (fixes #2803)
2021-08-16 11:58:38 +02:00
Even Rouault bac2521fe7 Implement promoteTo3D() / demoteTo2D() for DerivedGeographicCRS (fixes #2803) 2021-08-16 11:14:30 +02:00
Even Rouault 88322b46e7 factory.cpp: fix latest clang -Wstring-concatenation (false positive) warning 2021-08-15 18:06:45 +02:00
Even Rouault 4468e2b473 formatting fix 2021-08-15 18:06:23 +02:00
Brendan Jurd 17f83c6f12 Add support for Degree Sign on input (#2791)
This commit adds support in dsmtor() for a Degree Sign (U+00B0), encoded
as UTF-8 (`\xc2\xb0`) or as a single byte (`\xb0`) (in ISO 8859 parts 1-4, 7-10,
13, 15, 16, and several Windows code pages), as an alternative symbol to
`D`/`d` to designate the degree unit.

Fixes #2712.
2021-08-15 13:30:57 +02:00
Even Rouault a46df0f3a2 Merge pull request #2800 from rouault/fix_gdal_4224
Inverse laea ellipsoidal: return PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN when appropriates (fixes OSGeo/gdal#4224)
2021-08-13 17:52:18 +02:00
Even Rouault ec1fe1012d Inverse laea ellipsoidal: return PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN when appropriates (fixes OSGeo/gdal#4224) 2021-08-13 13:59:45 +02:00
Brendan Jurd 7063808658 Fix order of instructions for installing from source. (#2797)
The note about running autogen.sh was previously placed below the
instructions to run configure.
2021-08-12 10:53:02 +12:00
Even Rouault 0344dbf850 Merge pull request #2795 from rouault/fix_ossfuzz_36751
Conversion::createUTM(): avoid integer overflow
2021-08-10 10:48:15 +02:00
Even Rouault 1e6ef36db9 Conversion::createUTM(): avoid integer overflow. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=36751 2021-08-10 10:04:50 +02:00
Even Rouault e41092a939 build_db.py: improve error reporting [ci skip] 2021-08-10 10:04:35 +02:00
Ben Boeckel ff22ae3a87 cmake: remove unused configure checks (#2789)
These results are just not used anywhere, so there's no need to check
them (as the compiler will do it anyways).
2021-08-05 09:22:19 +12:00
Even Rouault 2656c2980f Merge pull request #2787 from rouault/vgrid_perf_improvements
GeoTIFF grid reading: perf improvements (fixes #2785)
2021-07-23 09:16:54 +02:00
Even Rouault a871ada2a9 GeoTIFF grid reading: perf improvements (fixes #2785)
With this commit, and the 2 previous ones, given mytest.cpp
```

int main()
{
    PJ* pj = proj_create(nullptr, "+proj=vgridshift +grids=us_nga_egm96_15.tif");
    for( int i = 0; i < 5*1000*1000; i++)
    {
        PJ_COORD coord;
        coord.lpz.lam = 0;
        coord.lpz.phi = 0;
        coord.lpz.z = 0;
        proj_trans(pj, PJ_FWD, coord);
    }
    return 0;
}
```

we get a x2 speedup

Before:
```
$ PROJ_LIB=data:$HOME/proj/PROJ-data/us_nga LD_LIBRARY_PATH=src/.libs  hyperfine --warmup 1 'taskset -c 11 ./mytest'
Benchmark #1: taskset -c 11 ./mytest
  Time (mean ± σ):      1.950 s ±  0.014 s    [User: 1.945 s, System: 0.005 s]
  Range (min … max):    1.937 s …  1.971 s
```

After:
```
$ PROJ_LIB=data:$HOME/proj/PROJ-data/us_nga LD_LIBRARY_PATH=src/.libs  hyperfine --warmup 1 'taskset -c 11 ./mytest'
Benchmark #1: taskset -c 11 ./mytest
  Time (mean ± σ):     984.4 ms ±   3.1 ms    [User: 977.0 ms, System: 7.2 ms]
  Range (min … max):   979.3 ms … 990.5 ms
```
2021-07-22 23:42:05 +02:00
Even Rouault 04f333c3c0 pj_fwd()/pj_inv(): performance improvements through passing by ref and less function calls 2021-07-22 23:05:18 +02:00
Even Rouault 7e0bd99d23 Add pj_log_active() to determine if logging is active 2021-07-22 23:04:37 +02:00
Even Rouault 15639d8f45 Merge pull request #2784 from mwtoews/docs-fix
Doc: fix links to :c:func:`proj_...` by specifying "h" as "c" domain
2021-07-22 19:05:20 +02:00
Mike Taves c7bb85d107 Doc: fix links to :c:func:proj_... by specifying "h" as "c" domain 2021-07-21 15:23:04 +12:00
Even Rouault ef6094573e Merge pull request #2782 from rouault/fix_crs_extent_use_none
createOperations(): fix SourceTargetCRSExtentUse::NONE mode
2021-07-20 11:16:10 +02:00
Even Rouault be83b7dd83 createOperations(): fix SourceTargetCRSExtentUse::NONE mode
Fix issue reported in https://lists.osgeo.org/pipermail/proj/2021-July/010318.html
2021-07-20 04:28:13 +02:00
Even Rouault 88147888b8 Formatting fix [ci skip] 2021-07-20 04:24:38 +02:00
Even Rouault 23636dede2 Merge pull request #2780 from mwtoews/nlohmann_json_interface_lib
CMake: remove external nlohmann_json from INTERFACE_LINK_LIBRARIES target
2021-07-14 15:01:32 +02:00
Mike Taves dec2eac098 CMake: remove external nlohmann_json from INTERFACE_LINK_LIBRARIES target 2021-07-14 23:46:32 +12:00
marcus-elia d902272785 Add S2 projection (#2749) 2021-07-13 17:49:28 +02:00
Even Rouault 7b23d2b8c1 Merge pull request #2776 from rouault/fix_coverity_350886
ortho: remove useless and invalid log trace (CID 350886, 350887)
2021-07-12 12:19:43 +02:00
Even Rouault 0d66189bf3 ortho: remove useless and invalid log trace (CID 350886, 350887) 2021-07-11 20:43:22 +02:00
Even Rouault 8ee496716f Merge pull request #2774 from rouault/fix_2770
Logging: avoid some overhead when logging is not enabled (fixes #2770)
2021-07-10 11:56:49 +02:00
Even Rouault 8b261395b7 Logging: avoid some overhead when logging is not enabled (fixes #2770) 2021-07-08 21:56:46 +02:00
Even Rouault 1fcf669349 Merge pull request #2772 from rouault/epsg_10_028
Database: update to EPSG v10.028
2021-07-08 15:22:16 +02:00
Even Rouault a2c438509f Database: update to EPSG v10.028 2021-07-08 13:54:51 +02:00
Even Rouault fe9be0e766 Merge pull request #2769 from rouault/fix_2768
createOperations(): make sure to associate an extent to the transform…
2021-07-08 13:22:01 +02:00
Even Rouault 209d742c2f createOperations(): make sure to associate an extent to the transform of a CRS with a GEOIDMODEL using a PROJ grid, so that it is later used instead of a ballpark operation (fixes #2768) 2021-07-07 21:43:23 +02:00
Even Rouault 9a46b4ac49 Merge pull request #2765 from direvus/update-contributing-doc
Update "PROJ.4" to "PROJ" in the Contributing document.
2021-07-05 14:21:42 +02:00
Even Rouault 9917c999ee Merge pull request #2764 from SpaceIm/fix/install-exec-ios
CMake: fix installation of executables on iOS
2021-07-05 14:20:51 +02:00
Brendan Jurd 06f2dfe68b Update "PROJ.4" to "PROJ" in the Contributing document. 2021-07-05 16:43:47 +10:00
SpaceIm 30feeadab7 fix installation of executables on iOS 2021-07-04 20:50:01 +02:00
Even Rouault 0c9a7bb22c Merge pull request #2760 from rouault/fix_2759
test_factory.cpp: fix build, in particular on Alpine Edge (fixes #2759)
2021-07-02 00:51:28 +02:00
Even Rouault fc983b6e33 test_factory.cpp: fix build, in particular on Alpine Edge (fixes #2759) 2021-07-01 21:24:26 +02:00
Kristian Evers d41c10c9e1 Bump version numbers in anticipation of 8.2.0 2021-06-30 22:38:43 +02:00
Kristian Evers 5e1a78c5d6 Update website for 8.1.0 release 2021-06-30 22:19:59 +02:00
Kristian Evers b8fe7719b9 Update news for 8.1.0 release 2021-06-25 09:57:35 +02:00
Kristian Evers a07d1599a1 Update man-pages from Sphinx-docs 2021-06-25 08:47:41 +02:00
Kristian Evers 8fb12787fc Update ABI numbers for 8.1.0 release 2021-06-25 08:44:22 +02:00
Charles Karney 9d1bc0b3d4 Merge pull request #2752 from cffk/geodesic-1.52-sync
Minor changes to address lint in geodesic.c
2021-06-23 08:01:45 -04:00
Charles Karney 9a570991f5 Minor changes to address lint in geodesic.c (courtesy of Marc Emery <memery@myotest.com>) 2021-06-22 18:48:49 -04:00
Even Rouault c959db170f Merge pull request #2751 from rouault/epsg_10_027
Database: update to EPSG v10.027
2021-06-19 23:14:53 +02:00
Even Rouault 9a2f2ed950 Database: update to EPSG v10.027 2021-06-19 21:15:39 +02:00
Even Rouault a79b5558da Merge pull request #2750 from rouault/better_operation_selection
proj_trans/cs2cs: If two operations have the same accuracy, use the one that is contained within a larger one
2021-06-18 14:24:38 +02:00
Even Rouault 916eaa4349 operations_computation.rst: add note about proj_create_crs_to_crs not necessarily using the operation that appears as first 2021-06-18 13:59:43 +02:00
Even Rouault 5f6fac3afd proj_trans/cs2cs: If two operations have the same accuracy, use the one that is contained within a larger one
Relates to https://github.com/OSGeo/gdal/issues/3998

Before that change, cs2cs on a NAD83(HARN) to WGS84 transformation would
use the "NAD83(HARN) to WGS 84 (1)" transformation (a null Helmert
shift) that is valid for whole US, including non-CONUS areas, even when
used on points located on CONUS that has a "NAD83(HARN) to WGS 84 (3)"
transformation (non-null Helmert shift) with same accuracy (1m).

But if doing  EPSG:2874 "NAD83(HARN) / California zone 5 (ftUS)" to
WGS84, we would use this later "NAD83(HARN) to WGS 84 (3)"
transformation because the area of use of EPSG:2874 restricts to CONUS.
This isn't consistant.

With that change, we now have more consistent behavior, even if it can
be argued which of the 2 transformations is the best...

$ echo 34 -120 | src/cs2cs -d 8 EPSG:4326 "NAD83(HARN)" | src/cs2cs "NAD83(HARN)"  EPSG:2874
5955507.74	1828410.98 0.00

$ echo 34 -120 | src/cs2cs  EPSG:4326   EPSG:2874
5955507.74	1828410.98 0.00
2021-06-17 17:53:11 +02:00
Even Rouault 987c8e9a45 Fix build with -DPROJ_INTERNAL_CPP_NAMESPACE 2021-06-14 12:07:31 +02:00
Even Rouault 385ca0ecb4 Merge pull request #2747 from rouault/fix_gdal_3958
BoundCRS::identify(): avoid incompatible transformation for WKT1 / TOWGS84 export (fixes OSGeo/gdal#3958)
2021-06-10 20:53:51 +02:00
Even Rouault db10e86c2c BoundCRS::identify(): avoid incompatible transformation for WKT1 / TOWGS84 export (fixes OSGeo/gdal#3958) 2021-06-10 19:36:16 +02:00
Even Rouault 51ec5e346a Merge pull request #2745 from rouault/epsg_10_026
Database: update to EPSG v10.026
2021-06-10 13:13:33 +02:00
Even Rouault 230012325a Database: update to EPSG v10.026 2021-06-10 12:25:35 +02:00
Even Rouault 5436e8aa46 Merge pull request #2738 from rouault/share_sqlite_handle
Share SQLite database handle among all contexts
2021-06-09 19:58:12 +02:00
Geoff Evans 5d8abfd0ba Make filemanager aware of UWP Win32 API 2021-06-08 12:00:29 -07:00
Even Rouault fae861c75a Merge pull request #2740 from RoelvandenBerg/master
Update link in docs to Dutch coord transform website.
2021-06-05 11:47:27 +02:00
Roel van den Berg 72af007280 Update link to dutch coord transform website. 2021-06-04 16:59:57 +02:00
Even Rouault 61e25ec859 factory.cpp: lint: make memoryHandle_ a unique_ptr 2021-06-03 12:23:24 +02:00
Even Rouault dd416fd8d3 Run database layout checks only at first DB opening 2021-06-03 12:23:24 +02:00
Even Rouault 85512dd3a7 proj_cleanup(): make sure it frees the database context of the default PJ_CONTEXT 2021-06-03 11:29:56 +02:00
Even Rouault 1c80b05e00 Check that database connection sharing properly works 2021-06-03 11:29:16 +02:00
Even Rouault 9ce2d6fc0e Make proj_context_set_autoclose_database() a no-op as it would defeat the purpose of the new database connection sharing 2021-06-03 11:29:16 +02:00
Even Rouault e0a1b88e82 Database: use shared sqlite handle 2021-06-03 11:29:16 +02:00
Even Rouault 590840d6ff factory.cpp: preparation steps for global sqlite3* handle, but no functional change 2021-06-03 11:29:16 +02:00
Even Rouault dcc2a94eb1 test_c_api.cpp: avoid use of undefined .t component 2021-06-03 11:28:55 +02:00
Even Rouault 29f849485b Merge pull request #2736 from rouault/cleanup_mutex
Cleanup: add proj/internal/mutex.hpp as compat layer for mingw32 for std::mutex
2021-06-02 19:06:15 +02:00
Even Rouault a77df0d81b Merge pull request #2735 from rouault/fix_2734
proj_create(): do not open proj.db if string is a PROJ string, …
2021-06-02 18:09:46 +02:00
Even Rouault e297475f0d Cleanup: add proj/internal/mutex.hpp as compat layer for mingw32 for std::mutex 2021-06-02 18:08:48 +02:00
Even Rouault 77de7651fd proj_create(): do not open proj.db if string is a PROJ string, even if proj_context_set_autoclose_database() has been set (fixes #2734) 2021-06-02 17:33:50 +02:00
Even Rouault fdfeae1908 Merge pull request #2732 from rouault/epsg_10_024
Database: update to EPSG v10.024
2021-05-28 12:57:26 +02:00
Even Rouault edc6df3dc1 ConcatenatedOperation::fixStepsDirection(): remove recently introdued hack specific to EPSG:9731 now that is is deprecated 2021-05-27 11:57:05 +02:00
Even Rouault 548a6ab050 Database: update to EPSG v10.024 2021-05-27 11:49:06 +02:00
Even Rouault d83db69821 build_db.py: add hack to minimize diff now that we use WITHOUT ROWID 2021-05-27 11:48:54 +02:00
Even Rouault 7b407e36e6 Merge pull request #2730 from rouault/without_rowid
Database: decrease DB size by using WITHOUT ROWID tables
2021-05-25 14:47:27 +02:00
Even Rouault ee04c2725f Database: decrease DB size by using WITHOUT ROWID tables
None of our tables are indexed by a INTEGER PRIMARY KEY, but most of
them are by a (auth_name, code) primary key. Consequently they can
benefit from being created as WITHOUT ROWID tables
(https://sqlite.org/withoutrowid.html), which avoids an index to be
created on the rowid we don't use. WITHOUT ROWID is a feature added in
SQLite 3.8.2, so as our baseline is 3.11, we can use it.

This decreases the DB size from 7,749,632 to 7,229,440 bytes, without
any measurable consequence on performance.
2021-05-24 14:40:37 +02:00
Even Rouault c44a3008b0 DatabaseContext::getTransformationsForGridName(): make it work properly when different EPSG grid names map to the same PROJ grid name 2021-05-24 13:59:32 +02:00
Even Rouault e814dce2de Merge pull request #2729 from rouault/analyze_db
Database: add a ANALYZE step during proj.db creation
2021-05-24 13:29:33 +02:00
Even Rouault 08d4b05771 projinfo: fix error message regarding --output-id 2021-05-23 12:58:06 +02:00
Even Rouault 1720b0586c Database: add a ANALYZE step during proj.db creation
This will create the sqlite_stat* table (generally sqlite_stat1). This
speeds up a bit the test suite. Runtime of ``make test_cpp_api-check``
goes from the range [14.0 s, 14.6 s] to [13.0s, 13.5s] on my machine.
2021-05-23 00:48:25 +02:00
Even Rouault bfa170c032 code formatting fix 2021-05-23 00:41:46 +02:00
Kristian Evers 6a9dbe7fd9 Merge pull request #2726 from heidivanparys/projinfo_doc
Add projinfo example; update note Windows installation
2021-05-18 15:15:15 +02:00
Heidi Vanparys f671ae712b Update install.rst: update Windows note
Add info that OSGeo4W Shell may be present already when QGIS is present.
2021-05-18 12:19:53 +02:00
Heidi Vanparys 4b37ed7322 Update projinfo doc: add example --single-line 2021-05-18 12:03:01 +02:00
Even Rouault abf680353d Merge pull request #2725 from rouault/projsync_version_filtering
projsync: make it filter out files not intended for the current version
2021-05-18 11:15:32 +02:00
Even Rouault 5fbcc3a731 HOWTO-RELEASE: mention updating PROJ_DATA.VERSION 2021-05-17 19:36:25 +02:00
Even Rouault aee1709d6c projsync: make it filter out files not intended for the current version
* Add a PROJ_DATA.VERSION in proj.db to indicate the target PROJ-data
  package version
* Make projsync use that information and the version_added and
  version_removed properties added in https://github.com/OSGeo/PROJ-data/pull/67
  to filter out files that are not relevant
* Add --no-version-filtering and --verbose switches
2021-05-17 16:00:12 +02:00
Even Rouault 5fe51fad2c Merge pull request #2723 from rouault/grid_alternatives_AGQG_20201120
grid_alternatives.sql: reference AGQG_20201120.gsb
2021-05-17 12:26:59 +02:00
Even Rouault 7d2f766940 Database: map ESRI spain/peninsula and spain/baleares grids 2021-05-16 21:21:56 +02:00
Even Rouault 6cca5d6df5 grid_alternatives.sql: reference AGQG_20201120.gsb (cf OSGeo/PROJ-data#63) 2021-05-16 21:10:20 +02:00
Even Rouault cc1aca389c Merge pull request #2722 from rouault/epsg_10_022
Database: update to EPSG v10.022
2021-05-16 19:51:48 +02:00
Even Rouault 5da981bcb9 scripts/grid_checks.py: improve --not-in-grid-alternatives output 2021-05-16 15:40:26 +02:00
Even Rouault 752696eb8a Database: update to EPSG v10.022 2021-05-16 12:41:07 +02:00
Even Rouault 68a11b7724 Merge pull request #2721 from rouault/fix_2720
Fix export of transformation to PROJ string in a particular situation…
2021-05-12 16:55:52 +02:00
Even Rouault dedd291692 Fix export of transformation to PROJ string in a particular situation where CompoundCRS are involved (fixes #2720) 2021-05-12 15:36:11 +02:00
Even Rouault a962fdc54a Formatting fixes 2021-05-12 15:11:00 +02:00
Even Rouault a78f0834d9 Merge pull request #2717 from nyalldawson/esri128
Update ESRI projection db to 12.8
2021-05-11 04:22:25 +02:00
Nyall Dawson 716a2ed2d7 Minor formatting/pep fixes 2021-05-11 08:47:32 +10:00
Nyall Dawson 4df65e61e1 Update metadata 2021-05-11 08:41:20 +10:00
Nyall Dawson 6718349c7e Update build_db_from_esri.py
- Use argparse to handle arguments
- Make version and date mandatory arguments, so that they must
always be stated
- Use pathlib for paths
2021-05-11 08:40:18 +10:00
Nyall Dawson 32486209c5 Update ESRI projection db to 12.8 2021-05-10 10:33:58 +10:00
積丹尼 Dan Jacobson 3a79f0dbca Mention what the default +units are 2021-05-09 19:26:47 +02:00
Mike Taves 592a6017bc CMake: "make dist" workalike via CPack (#2690) 2021-05-09 00:09:56 +12:00
Even Rouault 641ee7029c Merge pull request #2708 from mwtoews/stereographic
Fix typo: "Mod. Stererographics" -> "Modified Stereographic"
2021-05-07 21:47:26 +02:00
Even Rouault 060151460c Doc: fix URL 2021-05-07 21:46:25 +02:00
Even Rouault c645d6b5ef Doc: update GDAL version 2021-05-07 21:31:16 +02:00
Mike Taves 71a496c4bb Fix typo: "Mod. Stererographics" -> "Modified Stereographic" 2021-05-04 09:06:11 +12:00
Mike Taves ea3f53746c DOC: configure and add spelling wordlist; fix typos, apply Sphinx syntax (#2705) 2021-05-04 09:05:06 +12:00
Even Rouault 371bc3c5e7 Merge pull request #2702 from rouault/run_nkg_gie
CMake build: run nkg.gie tests (dependent on CURL_ENABLED and RUN_NETWORK_DEPENDENT_TESTS settings)
2021-05-01 14:29:29 +02:00
Even Rouault 2b2e307af8 test/gie/Makefile.am: add nkg.gie 2021-04-30 15:38:20 +02:00
Even Rouault 1709be294d CMake build: run nkg.gie tests (dependent on CURL_ENABLED and RUN_NETWORK_DEPENDENT_TESTS settings) 2021-04-30 15:26:38 +02:00
Even Rouault 9182c15a21 nkg.gie: fix operation line. The repetition of operation worked previously by accident and wasn't necessary 2021-04-30 14:34:25 +02:00
Even Rouault 9e4205573d Fix ossfuzz builds [ci skip] 2021-04-30 14:11:26 +02:00
Even Rouault 9d1a7a68c5 Merge pull request #2686 from rouault/nlohmann_json_update
Update internal nlohmann/json to 3.9.1, and add a CMake option to be able to use external nlohmann/json
2021-04-30 14:06:29 +02:00
Even RouaultandMike Taves 29ac85d552 CMake build: add a NLOHMANN_JSON_ORIGIN=auto/external/internal setting allowing to choose which nlohmann/json to use
Co-authored-by: Mike Taves <mwtoews@gmail.com>
2021-04-30 13:27:25 +02:00
Even Rouault 36ac12c742 Update nlohmann/json to latest 3.9.1 release 2021-04-30 13:27:15 +02:00
Mike Taves 546743c838 TST/DOC: upgrade CSA to use ubuntu-18.04; sync docs (#2698) 2021-04-30 22:28:13 +12:00
Even Rouault 0f9e6bf1a2 docs/Makefile: copy triangulation.schema.json (fixes #2699) 2021-04-28 15:44:38 +02:00
Kristian Evers ee177a7b9f Update NEWS for 8.0.1 release 2021-04-28 11:16:07 +02:00
Even Rouault 4a355bcd46 CI: msys2 build: build with -Werror (#2697) 2021-04-25 21:13:56 +12:00
Even Rouault ea196217fd Merge pull request #2696 from rouault/derived_vertical_crs_unit_height_depth
Improvements related to DerivedVerticalCRS using Change Unit and Height/Depth reversal methods
2021-04-24 19:07:55 +02:00
Even Rouault 7898eaba11 Improvements related to DerivedVerticalCRS using Change Unit and Height/Depth reversal methods
- For instantiation from urn combined references, create a better name,
  using conventions of EPSG vertical CRS
- For exportToWKT(), allow export in WKT < WKT2 for such
  DerivedVerticalCRS
2021-04-24 15:51:19 +02:00
Even Rouault 01a5c03c05 test: test urn:ogc:def:ensemble: syntax 2021-04-24 15:50:13 +02:00
Even Rouault 3ffa2c50ad getInsertStatementsFor(): replace while with if (master only, CID 320133) 2021-04-24 11:39:47 +02:00
Javier Jimenez Shaw 93dc8422c4 Add proj_get_geoid_models_from_database() (#2681)
to list all geoid model names that apply to a vertical CRS
2021-04-24 10:37:19 +02:00
Even Rouault a002a3e9da Merge pull request #2692 from rouault/test_network_msys_warning
test_network.cpp: try to fix 'Please include winsock2.h before windows.h' warning with msys
2021-04-23 20:34:47 +02:00
Even Rouault d94d493979 Merge pull request #2691 from rouault/remove_useless_files
Remove useless files
2021-04-23 20:31:49 +02:00
Even Rouault 0ca0b7c537 Merge pull request #2689 from rouault/update_generated_parsers
wkt1_parser/wkt2_parser: regenerate them with bison 3.5.1 to hopefully make Coverity Scan happier
2021-04-23 20:31:35 +02:00
Even Rouault 57102f42c6 Merge pull request #2687 from rouault/pj_vlog_buffer_overflow
pj_vlog(): fix buffer overflow in case of super lengthy error message
2021-04-23 18:06:37 +02:00
Even Rouault 088c269810 test_network.cpp: try to fix 'Please include winsock2.h before windows.h' warning with msys
```
In file included from D:/a/_temp/msys/msys64/mingw64/include/curl/system.h:422,
                 from D:/a/_temp/msys/msys64/mingw64/include/curl/curl.h:38,
                 from D:/a/PROJ/PROJ/test/unit/test_network.cpp:48:
D:/a/_temp/msys/msys64/mingw64/x86_64-w64-mingw32/include/winsock2.h:15:2: warning: #warning Please include winsock2.h before windows.h [-Wcpp]
   15 | #warning Please include winsock2.h before windows.h
      |  ^~~~~~~
```

Seems to be what is described in https://curl.se/mail/lib-2016-12/0047.html
2021-04-23 16:07:55 +02:00
Even Rouault 0db141863f wkt1_parser/wkt2_parser: regenerate them with bison 3.5.1 to hopefully make Coverity Scan happier 2021-04-23 16:03:00 +02:00
Even Rouault 889ccf481b Move data/proj_outIGNF.dist-real to test/cli 2021-04-23 15:57:03 +02:00
Even Rouault 61736e153c Remove useless src/runmultistresstest.sh 2021-04-23 15:56:22 +02:00
Even Rouault 37fadb2963 Remove uselss data/epsg-deprecated and update data/README 2021-04-23 15:55:47 +02:00
Even Rouault 3a8a9f4329 Remove useless file data/sql/method_triggers.sql 2021-04-23 15:54:34 +02:00
Even Rouault 2733271888 test_o.cpp: add more sensical example for DerivedVerticalCRS built from urn: syntax 2021-04-23 15:43:04 +02:00
Even Rouault c221134bc3 pj_vlog(): fix buffer overflow in case of super lengthy error message
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=33594
2021-04-23 14:57:22 +02:00
Even Rouault 64f5b18c0a projinfo: increase file size limit of files opened with @filename to 1MB to be able to read file generated by ossfuzz 2021-04-23 14:44:16 +02:00
Even Rouault 399cba5726 getInsertStatementsFor(): replace while with if (master only, CID 320133) 2021-04-23 12:39:35 +02:00
Even Rouault a275d45912 projinfo: catch potential exception (master only, CID 193527) 2021-04-23 12:37:36 +02:00
Even Rouault 52e0536a88 Merge pull request #2685 from rouault/ci_coverity_scan
CI: add Coverity Scan weekly job
2021-04-23 11:35:38 +02:00
Even Rouault 9e8fd3a7f0 coverity-scan.yml: do not build tests 2021-04-23 11:33:21 +02:00
Even Rouault d590798d32 CI: add Coverity Scan weekly job 2021-04-23 11:03:58 +02:00
Even Rouault 99939f327e Merge pull request #2683 from rouault/epsg_10_019
Database: update to EPSG v10.019
2021-04-23 10:10:15 +02:00
Even Rouault f6abb7d75c Database: update to EPSG v10.019
Non-trivial updates:
- some vertical CRS are now encoded as DerivedVerticalCRS. e.g EPSG:8228
  "NAVD88 height (ft)", with base EPSG:5703 "NAVD88 height". As we don't
  have support in our PROJ db model for DerivedVerticalCRS, modify the
  import script to 'resolve' the derivation up to the original datum.
- Method EPSG:1069 'Change of Vertical Unit' is no longer used. It is
  replaced by a generic-purpose EPSG:1104 method that doesn't take any
  conversion factor. And generic conversions EPSG:7812 and EPSG:7813 are
  now used in concatenated operations, which require code changes as
  well.
2021-04-23 01:07:04 +02:00
Even Rouault c6dba3fffb ConcatenatedOperation::fixStepsDirection(): fix potential nullptr dereference 2021-04-22 22:51:19 +02:00
Even Rouault 81899cee11 Merge pull request #2680 from jjimenezshaw/run-clang-format
run reformat_cpp.sh to fix some leftovers
2021-04-20 20:53:39 +02:00
Javier Jimenez Shaw 11b422cbc7 run reformat_cpp.sh to fix some leftovers 2021-04-20 20:41:28 +02:00
Even Rouault 8d0c7cef4b Merge pull request #2678 from rouault/revert_ebe3425bf
Revert "proj_create_crs_to_crs_from_pj(): do not use PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified"
2021-04-20 11:20:16 +02:00
Even Rouault f9d034afb7 Revert "proj_create_crs_to_crs_from_pj(): do not use PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified"
This reverts commit ebe3425bf6.

It was found to break gdalwarp usage in
https://github.com/OSGeo/gdal/issues/3695 when passing a bbox that is
quite large.
2021-04-20 00:32:49 +02:00
Even Rouault bd1d3d9a79 Merge pull request #2677 from rouault/change_name_of_urn_combined_references
createFromUserInput(): change name of CRS built from URN combined references to match the convention of EPSG projected CRS
2021-04-18 17:08:05 +02:00
Even Rouault c70a7447c1 Merge pull request #2676 from rouault/fix_geog_to_geog_deprecated
createOperations(): fix Geog to Geog when one is deprecated (fix master regression)
2021-04-18 16:29:57 +02:00
Even Rouault 16c50fbe33 createFromUserInput(): change name of CRS built from URN combined references to match the convention of EPSG projected CRS 2021-04-18 16:12:50 +02:00
Even Rouault dd79ca70ed createOperations(): fix Geog to Geog when one is deprecated (fix master regression) 2021-04-18 14:28:34 +02:00
Alan D. Snow e4e2991b17 Added proj_get_celestial_body_list_from_database (#2674)
Closes #2667
2021-04-18 12:34:29 +02:00
Even Rouault 3d1c573dc9 Merge pull request #2672 from rouault/utm_invalid_zone
utm: error out when value of +zone= is not an integer (fixes #2671)
2021-04-15 23:47:40 +02:00
Even Rouault 773583b448 utm: error out when value of +zone= is not an integer (fixes #2671) 2021-04-15 21:07:49 +02:00
Javier Jimenez Shaw a850aac5e0 createFromUserInput(): parse compound id with two authorities, like ESRI:103668+EPSG:5703 (#2669) 2021-04-13 14:48:35 +02:00
Even Rouault 58b991b8b9 Merge pull request #2668 from rouault/reformat_cpp_docker
reformat_cpp.sh: run inside Docker image if clang-format is not at version 10
2021-04-13 12:22:18 +02:00
Even Rouault 2a64d4c8b0 reformat_cpp.sh: run inside Docker image if clang-format is not at version 10 2021-04-13 00:31:54 +02:00
Even Rouault ff771264d7 Merge pull request #2662 from rouault/celestial_body
Add proj_get_celestial_body_name() and …
2021-04-12 13:29:22 +02:00
Even Rouault d582ac8bae Add proj_get_celestial_body_name() and make proj_get_crs_info_list_from_database() filter on and return celestial body name 2021-04-12 12:48:42 +02:00
Even Rouault 3bc25ac8a9 Merge pull request #2659 from rouault/fix_2603
CRS::normalizeForVisualization(): propagate domains/extent of original CRS (fixes #2603)
2021-04-12 11:51:10 +02:00
Even Rouault 3361e52868 Merge pull request #2664 from rouault/improve_projinfo_listcrs_area
projinfo --list-crs --area: make it work when multiple areas matches the specified name
2021-04-11 23:29:51 +02:00
Even Rouault 2ac8170863 projinfo --list-crs --area: make it work when multiple areas matches the specified name 2021-04-11 22:50:12 +02:00
Even Rouault f683aa04d6 Reformatting fix 2021-04-11 22:24:15 +02:00
Javier Jimenez Shaw 78792a7e42 projinfo: add option --list-crs (#2663) 2021-04-11 21:44:52 +02:00
Even Rouault 6fffba7efa Merge pull request #2660 from rouault/getCRSInfoList_deterministic_result_order
getCRSInfoList(): make result order deterministic (by increasing auth_name, code)
2021-04-11 01:03:55 +02:00
Even Rouault 88426c18e4 projinfo: add a --normalize-axis-order undocument switch 2021-04-11 00:22:03 +02:00
Even Rouault d870b33803 CRS::normalizeForVisualization(): propagate domains/extent of original CRS (fixes #2603) 2021-04-11 00:22:03 +02:00
Even Rouault ea51372c79 createFromUserInput(): support URN:OGC:DEF:CRS:OGC:1.3:CRS84 2021-04-11 00:04:10 +02:00
Even Rouault f92383ae58 getCRSInfoList(): make result order deterministic (by increasing auth_name, code) 2021-04-10 22:56:36 +02:00
Even Rouault 5f3fda7527 Merge pull request #2657 from rouault/cmake_test_cli
CMake: for test/cli, generate the output files in /test/cli like autoconf builds
2021-04-10 21:59:22 +02:00
Even Rouault d52de4dc0b Doc: remove mention of k_0 and lat_ts in aeqd projection. They are not used. Fixes #2638 and fixes #2639 2021-04-10 20:58:02 +02:00
Even Rouault 51e57204e0 CMake: for test/cli, generate the output files in /test/cli like autoconf builds 2021-04-10 20:30:54 +02:00
Even Rouault 16183da6c1 fix typo in comment 2021-04-10 20:16:06 +02:00
Even Rouault 34ea139137 Merge pull request #2656 from rouault/createFromUserInput_improvements
createFromUserInput(): various enhancements
2021-04-10 20:15:34 +02:00
Even Rouault a77ce5cf34 Recognize OGC:84 as an alias of OGC:CRS84 2021-04-10 19:17:40 +02:00
Even Rouault b6c12e6968 createFromUserInput(): add support for WMS AUTO: syntax 2021-04-10 19:17:40 +02:00
Even Rouault efef14e274 Add UnitOfMeasure::FOOT and US_FOOT 2021-04-10 19:17:39 +02:00
Even Rouault 0db805dfab createFromUserInput(): add support for (legacy) urn:x-ogc:def:crs:EPSG:XXXX syntax 2021-04-10 19:17:39 +02:00
Even Rouault 76d8cb9daf createFromUserInput(): add support for (legacy) urn:opengis:crs:EPSG:0:XXXX syntax 2021-04-10 19:17:39 +02:00
Even Rouault 35a9ffc2d1 Add hard-coded definitions for OGC:AnsiDate/JulianDate/UnixTime 2021-04-10 19:17:39 +02:00
Even Rouault 21f0af0f8b createFromUserInput(): add support for OGC URLs
e.g:
http://www.opengis.net/def/crs/EPSG/0/4326
http://www.opengis.net/def/crs-compound?1=http://www.opengis.net/def/crs/EPSG/0/4326&2=http://www.opengis.net/def/crs/EPSG/0/3855
2021-04-10 19:17:39 +02:00
Even Rouault 84a679954b projinfo: remove spurious -- in help message (master only) 2021-04-10 11:46:56 +02:00
Even Rouault fc6ff7a481 Merge pull request #2647 from rouault/integer_or_text
Database: decrease db size
2021-04-08 19:29:54 +02:00
Even Rouault 78e3768a71 Merge pull request #2653 from mwtoews/ci-msys2
CI: build and test on MSYS2 with Windows
2021-04-08 00:03:22 +02:00
Even Rouault 1918883532 Merge pull request #2654 from rouault/show_that_pr_2616_is_wrong
test: add datum shift related tests for transformations crossing antimeridian
2021-04-07 23:28:20 +02:00
Mike Taves f21b552108 Drop set/export of PROJ_LIB for Windows CI runs 2021-04-08 09:23:59 +12:00
Even Rouault 3a267909e4 proj_trans(): add a more expressive log message 2021-04-07 22:54:28 +02:00
Even Rouault 86c6761674 test: add datum shift related tests for transformations crossing antimeridian
If using the proposed patch in PR #2616 refreshed as,

```
diff --git a/src/4D_api.cpp b/src/4D_api.cpp
index c7725d3a..3bd58a97 100644
--- a/src/4D_api.cpp
+++ b/src/4D_api.cpp
@@ -998,7 +998,7 @@ static void reproject_bbox(PJ* pjGeogToCrs,
         constexpr int XY_SIZE = N_STEPS_P1 * 4;
         std::vector<double> x(XY_SIZE);
         std::vector<double> y(XY_SIZE);
-        const double step_lon = (east_lon - west_lon) / N_STEPS;
+        const double step_lon = (((east_lon >= west_lon) ? east_lon : east_lon + 360) - west_lon) / N_STEPS;
         const double step_lat = (north_lat - south_lat) / N_STEPS;
         for( int j = 0; j <= N_STEPS; j++ )
         {
@@ -1244,7 +1244,7 @@ std::vector<PJCoordOperation> pj_create_prepared_operations(PJ_CONTEXT *ctx,
             {
                 const bool isOffshore =
                     areaName && strstr(areaName, "- offshore");
-                if( west_lon <= east_lon )
+                if( true || west_lon <= east_lon )
                 {
                     op = add_coord_op_to_list(i, op,
                         west_lon, south_lat, east_lon, north_lat,
```

we'd get an incorrect result on one point, using the 'Pulkovo 1942 to WGS 84 (16)' less accurate transformation
due to mis-computation of bounding boxes.
```
--- ../test/cli/tv_out.dist	2021-04-07 22:29:02.706095239 +0200
+++ test/cli/tv_out	2021-04-07 22:29:35.809579495 +0200
@@ -499,7 +499,7 @@
 ##############################################################
 Check that we can use a transformation spanning the antimeridian (should use Pulkovo 1942 to WGS 84 (20))
 50 179.999999999	49d59'59.36"N	179d59'52.133"W 0.000
-50 -179.999999999	49d59'59.36"N	179d59'52.133"W 0.000
+50 -179.999999999	49d59'59.422"N	179d59'52.184"W 0.000
 ##############################################################
 Check that we can use a transformation spanning the antimeridian (should use Pulkovo 1942 to WGS 84 (20))
 5540944.47  499999.999	49d59'59.36"N	179d59'52.133"W 0.000
```
2021-04-07 22:34:03 +02:00
Even Rouault b5d3f2a250 Database: more thorough consistency checks on extent of coordinate operations 2021-04-07 12:49:54 +02:00
Mike Taves 0abacbc927 CI: build and test on MSYS2 with Windows 2021-04-07 13:08:22 +12:00
Even Rouault ec25bdc7b5 Merge pull request #2652 from rouault/extra_consistency_checks
Database: extra consistency checks
2021-04-07 00:01:02 +02:00
Even Rouault 950ce787b2 Database: nullify auth_name, code of usage table
We never select by those columns, so don't set them. Reduce from 8.4 to
7.9 MB.

Upgrade the minor version of the database layout. (that database can
still be read by PROJ 8.0)
2021-04-06 23:30:19 +02:00
Even Rouault ea624e0d29 Database: more consistency checks on helmert_transformation and grid_transformation 2021-04-06 23:28:14 +02:00
Even Rouault 59f344df91 Database: do not create Helmert transformations in IGNF between CRS of different nature, and also adjust the method code/name to the nature of the CRS 2021-04-06 23:28:12 +02:00
Even Rouault 9a6c7c7814 Database: minor refresh of ignf.sql and import script with new locations of resources 2021-04-06 23:26:37 +02:00
Even Rouault cfe5615b5b Merge pull request #2646 from rouault/db_proj_version
Database: add a PROJ.VERSION metadata entry
2021-04-06 22:16:31 +02:00
Even Rouault 754e1eef9b Merge pull request #2650 from rouault/fix_createBetweenGeodeticCRSWithDatumBasedIntermediates
createOperations(): make createBetweenGeodeticCRSWithDatumBasedIntermediates() reachable...
2021-04-05 22:47:48 +02:00
Even Rouault 34e93f1139 createOperations(): make createBetweenGeodeticCRSWithDatumBasedIntermediates() reachable...
... and optimize its execution time by rewriting it completely.

This code path was no longer triggered in tests since EPSG got a direct
transformation for GDA94 to WGS 84 (G1762).
2021-04-05 21:30:52 +02:00
Kristian Evers 3ae02ac091 Merge pull request #2648 from jidanni/patch-1
Add missing comma
2021-04-05 07:05:29 +02:00
積丹尼 Dan Jacobson 1abe7a7a82 Add missing comma
For https://github.com/OSGeo/PROJ/issues/2645 .
2021-04-05 09:47:33 +08:00
Even Rouault f85b072313 Database: decrease db size by using a INTEGER_OR_TEXT data type on codes
Most codes (especially *all* in EPSG) are integers. As integers are
stored as variable-length in the db, it is preferable to store them as
such when possible.

So use a special INTEGER_OR_TEXT data type. This is a
"non-standard" type declaration, but this is perfectly legal as SQLite is
loosely typed.

As this declaration contains the string INT, it is assigned INTEGER affinity.
Which means that values provided either as text (that contains integer value)
or integer will be stored as integers, whereas text values will be stored as
text. See paragraph 3 and 3.1 of https://www.sqlite.org/datatype3.html.
The "INTEGER_OR_TEXT" name is a hint for the user, and software like
GDAL (>= 3.3) to expose the column as string...

The effect of using this rather than TEXT is making the DB size go from
9 MB to 8.4.

There is no need to change the DATABASE.LAYOUT version numbering as this
is completely forward and backward compatible.
2021-04-04 21:51:10 +02:00
Even Rouault 5c9e2e9d43 Database: add missing column type specifir for method_name in grid_transformation and other_transformation. No practical impact 2021-04-04 21:07:36 +02:00
Even Rouault 399a833219 Database: add a PROJ.VERSION metadata entry 2021-04-04 20:09:00 +02:00
Even Rouault b6210a0e25 Merge pull request #2637 from rouault/hyperbolic_cass
Add support for hyperbolic Cassini-Soldner
2021-04-03 21:59:05 +02:00
Even Rouault 2594b3a224 Add mapping between EPSG method 'Hyperbolic Cassini-Soldner' and +proj=cass +hyperbolic 2021-04-03 20:18:10 +02:00
Even Rouault 970c849cc7 cass: add +hyperbolic switch for variant used by EPSG:3139 'Vanua Levu 1915 / Vanua Levu Grid' 2021-04-03 20:18:08 +02:00
Even Rouault bf79113d1d Generic inverse: fix when initial guess if super close to result 2021-04-03 20:17:15 +02:00
Even Rouault d436d4fbbf cass: rewrite ellipsoidal formulas in a clearer way using EPSG guidance note names 2021-04-03 17:54:39 +02:00
Even Rouault 722cf8840c reproject_bbox(): reduce number of magic values 2021-04-03 17:52:58 +02:00
Even Rouault d6d46c2102 Merge pull request #2635 from rouault/epsg_10_018
Database: update to EPSG v10.018
2021-04-02 18:12:01 +02:00
Even Rouault c8e0c2c14b Database: update to EPSG v10.018
Just fixes 4 wrong transformations of v10.017
2021-04-02 17:35:41 +02:00
積丹尼 Dan Jacobson b964253ccd Doc: geod.rst: reduce doubled information (#2631)
Don't repeat neighboring information.
2021-04-02 12:17:51 +02:00
Even Rouault 8d9e27c875 Merge pull request #2627 from rouault/improve_grid_transformation_check
Database: refine checks for 'Geog3D to Geog2D+XXX' transformations, …
2021-04-01 23:21:35 +02:00
Even Rouault 17b42f68f3 Database: stronger checks on extent of grid_transformation regarding the extent of the source and target CRS 2021-04-01 22:45:23 +02:00
Even Rouault dbf4789414 Database: add extra check for 'Vertical Offset by Grid Interpolation' transformations 2021-04-01 22:26:12 +02:00
Even Rouault a028ecd97b Database: refine checks for 'Geog3D to Geog2D+XXX' transformations, and create less synthetic 'Geographic3D to GravityRelatedHeight' synthetic transformations 2021-04-01 22:20:21 +02:00
Even Rouault 5c56836dd1 Merge pull request #2625 from rouault/epsg_10_017
Database: update to EPSG 10.017
2021-04-01 21:11:32 +02:00
Even Rouault e6a0966a47 Database: update to EPSG 10.017 2021-04-01 15:59:35 +02:00
Even Rouault 381d4f6ff3 Merge pull request #2622 from rouault/fix_sped2etv2_supersession
createOperation(): make sure no to discard deprecated operations...
2021-03-29 12:31:54 +02:00
Even Rouault b7f9a9b834 createOperation(): make sure no to discard deprecated operations...
if the replacement uses a grid unknown to us.

Fixes issue reported at https://lists.osgeo.org/pipermail/gdal-dev/2021-March/053771.html

The issue comes from the fact that EPSG has created 2 transformations
using grids BALR2009.gsb ad PENR2009.gsb that supersede the one which
uses the single grid SPED2ETV2 we have in PROJ-data.
2021-03-28 23:42:34 +02:00
Even Rouault 292943edbe Merge pull request #2620 from rouault/fix_build_solaris
Fix build on Solaris 11.4
2021-03-28 22:29:55 +02:00
Howard Butler 79c90906be GitHub Action to build both the 'proj' and 'proj-docs' container (#2618)
* adapt PDAL's docker build script for PROJ

* try building doc builder container too

* don't push containers on pull_request
2021-03-28 15:03:58 -05:00
Even Rouault 50fd9af378 Fix build on Solaris 11.4 2021-03-28 21:59:50 +02:00
Even Rouault 72f53cf06e Merge pull request #2613 from rouault/doc_fix_app_typo
Doc: fix typo in man page of utilities, and reduce copy&paste
2021-03-28 13:07:56 +02:00
Even Rouault 2153dd96bd Doc: fix typo in man page of utilities, and reduce copy&paste 2021-03-27 21:48:38 +01:00
Even Rouault b10e98fe43 Dockerfile osgeo/proj-docs: update to doxygen 1.9.1 (fixes OSGeo/gdal#3619) 2021-03-27 20:45:56 +01:00
Even Rouault 703bc5b4a9 Merge pull request #2611 from rouault/fix_2610
Add mapping of ESRI Equal_Area projection method to EPSG (fixes #2610)
2021-03-27 19:50:42 +01:00
Even Rouault f20b4870a6 Add mapping of ESRI Equal_Area projection method to EPSG (fixes #2610) 2021-03-27 16:45:12 +01:00
Even Rouault 14ce3d9fa8 Build: simplify proj.db generation (#2605)
- change foreign key check, so that it is enabled outside of the
  transaction where we insert things, and can make the sqlite3
  process fail in case of violations, without the postcheck done
  in the autoconf build
- autoconf and cmake builds: simplification related to the above
  (which also means that cmake builds now have the fkey check, which
  was omitted until now)
2021-03-26 12:49:35 +01:00
Javier Jimenez Shaw 969ae0712c Database: add grid alternatives and transformation custom for ch_swisstopo_chgeo2004_ETRS89_LHN95 and ch_swisstopo_chgeo2004_ETRS89_LN02 (#2584) 2021-03-25 14:47:23 +01:00
Even Rouault e3d7e18f98 Merge pull request #2598 from himsve/nkg_sweden
Incorrect EPGS extent code for EPSG:7789>EPSG:4976 NKG transformation
2021-03-23 15:31:54 +01:00
Sveinung Himle b0cc7eae01 Incorrect EPGS extent code for EPSG:7789>EPSG:4976 transformation 2021-03-23 14:40:10 +01:00
Javier Jimenez Shaw 0d4c31f787 data/CH: fix wrong capitalization of CHENyx06_ETRS.gsb (#2596)
The file data/CH containing the +proj string to use CHENyx06_ETRS.gsb was wrongly capitalized. It was not consistent with EPSG and therefore other entries in proj.db.
2021-03-23 12:24:15 +01:00
Even Rouault cf89f95ad8 Merge pull request #2594 from rouault/fix_of_fix_2588
createOperations(): fix regression for the fix of #2588
2021-03-21 00:23:09 +01:00
Even Rouault 6206a37ac9 createOperations(): fix regression for the fix of #2588
Issue spotted by GDAL autotest suite.
2021-03-20 23:34:38 +01:00
Even Rouault e04029cbc0 Merge pull request #2592 from rouault/fix_2588
createOperations(): fix Compound to Geog3D CRS computations in the ca…
2021-03-20 12:02:48 +01:00
Even Rouault dd8edd87e8 createOperations(): fix Compound to Geog3D CRS computations in the case... (fixes #2588)
when the source and target CRS share the same geog CRS, but the interpolation
CRS of the vertical transformation isn't the same, and a Helmert
transformation exists between them...

For example, for "CH1903+ + EGM96" to CH1903+ 3D where the interpolation
CRS is WGS84.
2021-03-20 01:14:01 +01:00
Kristian Evers 3697e946c9 Merge pull request #2590 from kbevers/update-foss4g
docs: update community site with links to FOSS4G 2021
2021-03-19 18:39:56 +01:00
Kristian Evers 3e5c5187d5 docs: update community site with links to FOSS4G 2021 2021-03-19 18:09:43 +01:00
Kristian Evers 15119f29cd backport action: specify pull_request_target instead of pull_request 2021-03-19 17:40:19 +01:00
Kristian Evers 8f4074e428 Add missing(?) id to backport action 2021-03-19 17:36:47 +01:00
Even Rouault ac9c36e1b4 Merge pull request #2589 from rouault/fix_2587
CRS::promoteTo3D(): propagate the extent from the 2D CRS (fixes #2587)
2021-03-19 16:46:33 +01:00
Even Rouault 573d5ea0fd CRS::promoteTo3D(): propagate the extent from the 2D CRS (fixes #2587)
This will help getting more consistent results between the 2D and 3D
cases, as identified in
https://github.com/OSGeo/PROJ/issues/2587#issue-836061171
2021-03-19 16:00:29 +01:00
Kristian Evers bbdf037bc6 Merge pull request #2586 from kbevers/update-backport-bot
Update backport action to what is currently used by QGIS
2021-03-19 15:04:40 +01:00
Kristian Evers 5edc28e933 Update backport action to what is currently used by QGIS 2021-03-19 13:38:40 +01:00
Even Rouault 338a3c4a26 Merge pull request #2585 from rouault/insert_sql_improvements
SQL output: make it possible to export non-EPSG projection methods or…
2021-03-19 13:07:04 +01:00
Even Rouault ed9b63dcce Tests: add new error cases of SQL output 2021-03-19 12:01:17 +01:00
Even Rouault 219758a4c9 SQL output: make it possible to export non-EPSG projection methods or methods and params lacking an explicit EPSG id 2021-03-19 11:30:54 +01:00
Even Rouault 76906029f3 Database: relax trigger check when inserting a conversion to accept any conversion method in the PROJ namespace
Helps for example to use CRS definitions using the non-EPSG codified
Sinusoidal method.
2021-03-19 11:26:42 +01:00
Even Rouault 663a77095d Merge pull request #2575 from mwtoews/container-locale
Set the container locale for spelling
2021-03-19 10:15:56 +01:00
Even Rouault d20145a979 Merge pull request #2583 from rouault/improve_perf_createFromCRSCodesWithIntermediates
createFromCRSCodesWithIntermediates(): improve perf when no match
2021-03-18 16:04:19 +01:00
Even Rouault 862cb97c22 createFromCRSCodesWithIntermediates(): improve perf when no match
createFromCRSCodesWithIntermediates() runs a rather costly self-join.
Only run it if the source and target CRS are the source/target of a
coordinate operation. This helps for the performance of
proj_create_crs_to_crs() when run on projected CRS for example that are
extremely unlikely to be the source/target of an operation (except
currently the Finish ones). For the EPSG:26915 to EPSG:3857 case of
https://github.com/OSGeo/gdal/issues/3470, this helps decreasing the
time of proj_create_crs_to_crs() from 18 ms to 10 ms.
2021-03-18 15:18:48 +01:00
Even Rouault 1e4ad55fbe Code formatting fix 2021-03-18 15:01:31 +01:00
Even Rouault d4e5e1a833 Merge pull request #2577 from rouault/insert_sql
Add capability to get SQL statements to add custom CRS in the database
2021-03-18 14:49:13 +01:00
Even Rouault 979e3a3ba0 Merge pull request #2581 from rouault/proj_version_number
proj.h: add PROJ_COMPUTE_VERSION, PROJ_VERSION_NUMBER, PROJ_AT_LEAST_VERSION macros
2021-03-17 16:30:22 +01:00
Even Rouault ee19a2d4d3 Merge pull request #2582 from rouault/fix_proj_clone
Fix proj_clone() to work on 'meta' coordinate operation PJ* objects that can be returned by proj_create_crs_to_crs()
2021-03-17 16:30:13 +01:00
Even Rouault b37d7a72ee Doc: add a page to document macros 2021-03-17 15:52:22 +01:00
Even Rouault cbbf3d6040 Fix proj_clone() to work on 'meta' coordinate operation PJ* objects that can be returned by proj_create_crs_to_crs() 2021-03-17 14:56:50 +01:00
Even Rouault 130d70228f proj.h: add PROJ_COMPUTE_VERSION, PROJ_VERSION_NUMBER, PROJ_AT_LEAST_VERSION macros
Makes it easier for users to test if they build against a PROJ version
later than a given x.y.z version.
2021-03-17 14:00:25 +01:00
Even Rouault eae06c94db Doc improvements regarding recomandation not to alter official registries and use auxiliary databases 2021-03-15 16:50:02 +01:00
Even Rouault 72f4f49bf3 Add support for PROJ_AUX_DB environment variable to set the path to one or several auxiliary DBs 2021-03-15 16:16:32 +01:00
Even Rouault eda2311513 projinfo: add a --dump-db-structure switch 2021-03-15 16:16:32 +01:00
Even Rouault 80ef9cee87 Add proj_context_get_database_structure() to dump structure of empty valid auxiliary DB 2021-03-15 16:16:32 +01:00
Even Rouault 7293d657a6 SQL export: add support for DatumEnsemble 2021-03-15 16:16:32 +01:00
Even Rouault d618dcc33b SQL export: add publication_date and frame_reference_epoch to datums 2021-03-15 16:16:32 +01:00
Even Rouault 8a67a3fb96 SQL output: add capability to restrict the authorities into which to look for intermediate objects 2021-03-15 16:16:31 +01:00
Even Rouault e33f6b5ecc CRS::identify(): take into account allowed authority to identify hard-coded WGS84-based CRSs 2021-03-15 16:16:31 +01:00
Even Rouault a234207957 projinfo: add a '-o SQL --output-id AUTH:CODE' SQL output 2021-03-15 16:16:31 +01:00
Even Rouault 5ddddfac62 Add C/C++ API to get SQL statements to insert a CRS into database 2021-03-15 16:16:31 +01:00
Even Rouault 1b07ef00c5 mingw_w64/start.sh: switch to http due to osgeo SSL certificate expiration 2021-03-15 16:16:13 +01:00
Even Rouault 5f1e54eb04 Merge pull request #2578 from cffk/geod-1.52-fix
geodesic.c: fix conditions under which hypot workaround is applied.
2021-03-14 13:20:11 +01:00
Charles Karney 7dbfc2590d geodesic.c: fix conditions under which hypot workaround is applied.
Now it applies with 32-bit compiles for all versioins of Visual Studio;
versions tested on: 2015, 2017, 2019.
2021-03-14 07:28:35 -04:00
Charles Karney 468b43c289 Merge pull request #2576 from cffk/geod-1.52
Update geodesic routines from GeographicLib 1.52
2021-03-13 16:18:14 -05:00
Charles Karney 70a6188c3c Work around inaccurate hypot for Visual Studio 2105 (32-bit) 2021-03-13 13:50:36 -05:00
Mike Taves 955bb4e9b6 Set the container locale for spelling [skip ci] 2021-03-14 07:06:07 +13:00
Charles Karney eb881d2957 Update geodesic routines from GeographicLib 1.52
Be more aggressive in preventing negative s12 and m12 for short lines.
Initialize reference argument to remquo.
2021-03-13 09:28:00 -05:00
Even Rouault 56dce02c70 typo fix in comment 2021-03-13 12:58:25 +01:00
Even Rouault fba602f3a1 Doxyfile: remove obsolete COLS_IN_ALPHA_INDEX tag 2021-03-13 12:14:12 +01:00
Even Rouault 9167cd4dc2 fix_typos.sh: update while lists 2021-03-13 12:11:30 +01:00
Even Rouault b2fde1adf4 Merge pull request #2573 from mwtoews/breathe
Use breathe>=4.27 to support Doxygen \page, \section, etc.
2021-03-12 12:44:52 +01:00
Even Rouault a3246a4d14 Merge pull request #2574 from mwtoews/patch-sphinxcontrib-spelling
CI: workaround for sphinxcontrib-spelling 7.1.0 on Python 3.6.9
2021-03-12 11:52:45 +01:00
Mike Taves 83af3dca00 CI: workaround for sphinxcontrib-spelling 7.1.0 on Python 3.6.9 2021-03-12 23:26:47 +13:00
Mike Taves 8b4bb4409d DOC: Use breathe>=4.27 to support Doxygen \page, \section, etc. 2021-03-12 07:33:22 +13:00
Even Rouault e10a849cd0 Database: fix NKG transformations 2021-03-11 16:12:30 +01:00
Sveinung HimleandEven Rouault 763939849b Database: Additions to the norwegian NKG2020 transformation (#2548)
* Correction grid NKG:ETRF14 to EPSG:7922

* Added NKG:ITRF_TO_NO GIE test

* Correction grid no_kv_NKGETRF14_EPSG7922_2000 added to grid_alternatives.sql

* proj_method 'velocity_grid' added in check_grid_alternatives_proj_method. NKG velocity grid added to grid_alternatives.sql

Co-authored-by: Even Rouault <even.rouault@spatialys.com>
2021-03-11 10:48:49 +01:00
Mike Taves b2d8e255da Fix configuration for sphinxcontrib-bibtex version 2 or later (#2572) 2021-03-11 21:44:17 +13:00
Kristian Evers cf86b44bdd Merge pull request #2571 from kbevers/proj_lp_dist_docs
Improve docs for geodesic distance functions in proj.h
2021-03-10 21:19:41 +01:00
Even Rouault 554f95d705 Merge pull request #2570 from rouault/fix_proj_lp_dist_crs
Make proj_lp_dist() and proj_geod() work on a PJ* CRS object
2021-03-10 20:44:42 +01:00
Kristian Evers 77d6e671ab Improve docs for geodesic distance functions in proj.h 2021-03-10 20:08:13 +01:00
Even Rouault 1e47f2bda5 Make proj_lp_dist() and proj_geod() work on a PJ* CRS object 2021-03-10 19:44:56 +01:00
Even Rouault e6b20d968a Merge pull request #2569 from rouault/cleanup_SQLITE_OPEN_URI
Code cleanup: remove conditional testing of SQLITE_OPEN_URI.
2021-03-10 19:09:25 +01:00
Even Rouault 3c27205bf0 Code cleanup: remove conditional testing of SQLITE_OPEN_URI. It is present in sqlite >= 3.11 2021-03-10 18:22:29 +01:00
Even Rouault 47dd37ff79 Fix comment 2021-03-10 16:37:52 +01:00
Sveinung Himle ffc6e876d0 Database: add NGO48 (EPSG:4273) to ETRS89 (EPSG:4258) triangulation-based transformation (#2554) 2021-03-10 10:36:24 +01:00
Even Rouault 20295afe2f Merge pull request #2567 from rouault/fix_s45b_pol
s45b.pol: remove trailing backslashes that prevent it from being used
2021-03-09 15:09:45 +01:00
Even Rouault 7aa6383566 s45b.pol: remove trailing backslashes that prevent it from being used 2021-03-09 12:45:11 +01:00
Even Rouault d7a2bdefb8 typo fixes 2021-03-07 20:31:43 +01:00
Even Rouault 36a5a178cb doc: typo fixes 2021-03-07 20:31:43 +01:00
Even Rouault 044d4c305f README.md: comment out Cirrus CI [ci skip] 2021-03-07 19:53:18 +01:00
Even Rouault c021126079 pipeline: avoid CLang Static Analyzer 10.0 likely false positive about dereferencing a nullptr 2021-03-07 19:18:58 +01:00
Even Rouault b0fa082511 dmstor_ctx(): avoid setting a variable that is not read 2021-03-07 19:18:33 +01:00
Even Rouault 4cc4e038bc Merge pull request #2560 from rouault/coverityscan_fixes
Several fixes/improvements spotted by CoverityScan
2021-03-07 11:57:55 +01:00
Even Rouault 5b9d009293 Merge pull request #2561 from rouault/cppcheck_fixes
Two Cppcheck fixes
2021-03-07 11:57:33 +01:00
Even Rouault 5089106b18 Merge pull request #2562 from rouault/travis_arm64
Travis ARM64: set NPROC=4 to avoid the autodetected 32 to blow out RAM
2021-03-07 11:57:16 +01:00
Even Rouault 23ef6450fa Travis ARM64: set NPROC=4 to avoid the autodetected 32 to blow out RAM 2021-03-07 00:41:17 +01:00
Even Rouault 8d786107bd insertIntoHierarchy(): avoid confusing cppcheck about potential use of moved grid 2021-03-07 00:30:19 +01:00
Even Rouault a14026d715 NTv2Grid: remove useless m_name member (redundant with one of base class) 2021-03-07 00:27:13 +01:00
Even Rouault e3b0dda249 igh: check return value of setup_zone() (CID 314816) 2021-03-07 00:20:21 +01:00
Even Rouault 23e5bf8535 Check return value of curl_easy_setopt() (CID 314805) 2021-03-07 00:20:21 +01:00
Even Rouault 63823ccc76 is2DPartOf3D(): catch potential exception (CID 314817) 2021-03-07 00:20:21 +01:00
Even Rouault ec67ee73d1 initcache.cpp: add assertions for potential failed mem alloc (CID 314809, 314812) 2021-03-07 00:20:21 +01:00
Even Rouault ecd5a542c1 projinfo: catch exception on bad value for --accuracy (CID 314810) 2021-03-07 00:20:21 +01:00
Even Rouault 7e4c94f5fd gie.cpp: use correct type in error message (CID 314813) 2021-03-07 00:20:20 +01:00
Even Rouault 9093dc498e cs2cs: catch exception on bad value for --accuracy (CID 314818) 2021-03-07 00:20:20 +01:00
Even Rouault 58d59c3617 cct: remove useless nullptr checking (CID 314822) 2021-03-07 00:20:20 +01:00
Even Rouault bef4d8fe2e proj_info(): remove useless nullptr checking (CID 314807) 2021-03-07 00:20:20 +01:00
Even Rouault 43e1235334 BaseObject: add a move assignment operator (CID 314820) 2021-03-07 00:20:20 +01:00
Even Rouault 6dae91bd06 UnitOfMeasure: add a move assignment operator (CID 314811) 2021-03-06 23:14:25 +01:00
Even Rouault 3af34fc1c4 Merge pull request #2559 from rouault/gcc11_wnonnull
Fix gcc 11 -Wnonnull warnings
2021-03-06 22:40:35 +01:00
Even Rouault 194b13a876 Merge pull request #2558 from rouault/gie_self_tests_fix_uninitialized
gie_self_tests: fix use of uninitialized memory (fixes #2557)
2021-03-06 22:40:00 +01:00
Even Rouault feeca61287 Fix gcc 11 -Wnonnull warnings
```
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp: In function 'osgeo::proj::operation::TransformationNNPtr osgeo::proj::operation::createBallparkGeographicOffset(const CRSNNPtr&, const CRSNNPtr&, const DatabaseContextPtr&)':
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1860:36: warning: 'this' pointer is null [-Wnonnull]
 1860 |                 ->coordinateSystem()
      |                                    ^
In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35:
/proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr& osgeo::proj::crs::SingleCRS::coordinateSystem() const'
  196 |     PROJ_DLL const cs::CoordinateSystemNNPtr &coordinateSystem() PROJ_PURE_DECL;
      |                                               ^~~~~~~~~~~~~~~~
/proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:1864:36: warning: 'this' pointer is null [-Wnonnull]
 1864 |                 ->coordinateSystem()
      |                                    ^
In file included from /proj-8.0.0/src/iso19111/operation/coordinateoperationfactory.cpp:35:
/proj-8.0.0/include/proj/crs.hpp:196:47: note: in a call to non-static member function 'const CoordinateSystemNNPtr& osgeo::proj::crs::SingleCRS::coordinateSystem() const'
  196 |     PROJ_DLL const cs::CoordinateSystemNNPtr &coordinateSystem() PROJ_PURE_DECL;
      |                                               ^~~~~~~~~~~~~~~~
/proj-8.0.0/src/iso19111/factory.cpp: In member function 'std::vector<dropbox::oxygen::nn<std::shared_ptr<osgeo::proj::operation::CoordinateOperation> > > osgeo::proj::io::AuthorityFactory::createBetweenGeodeticCRSWithDatumBasedIntermediates(const CRSNNPtr&, const string&, const string&, const CRSNNPtr&, const string&, const string&, bool, bool, bool, bool, const std::vector<std::__cxx11::basic_string<char> >&, const ExtentPtr&, const ExtentPtr&) const':
/proj-8.0.0/src/iso19111/factory.cpp:4724:66: warning: 'this' pointer is null [-Wnonnull]
 4724 |         dynamic_cast<crs::GeodeticCRS *>(sourceCRS.get())->datum();
      |                                                                  ^
In file included from /proj-8.0.0/src/iso19111/factory.cpp:36:
/proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr& osgeo::proj::crs::GeodeticCRS::datum() const'
  254 |     PROJ_DLL const datum::GeodeticReferenceFramePtr &datum() PROJ_PURE_DECL;
      |                                                      ^~~~~
/proj-8.0.0/src/iso19111/factory.cpp:4726:66: warning: 'this' pointer is null [-Wnonnull]
 4726 |         dynamic_cast<crs::GeodeticCRS *>(targetCRS.get())->datum();
      |                                                                  ^
In file included from /proj-8.0.0/src/iso19111/factory.cpp:36:
/proj-8.0.0/include/proj/crs.hpp:254:54: note: in a call to non-static member function 'const GeodeticReferenceFramePtr& osgeo::proj::crs::GeodeticCRS::datum() const'
  254 |     PROJ_DLL const datum::GeodeticReferenceFramePtr &datum() PROJ_PURE_DECL;
      |                                                      ^~~~~
```
2021-03-06 22:21:57 +01:00
Even Rouault 27e1f4076c gie_self_tests: fix use of uninitialized memory (fixes #2557) 2021-03-06 22:12:27 +01:00
Even Rouault 652f86b4fb Merge pull request #2556 from rouault/uint_t
grids.cpp: use C99/C++11 uint16_t/uint32_t
2021-03-06 20:13:19 +01:00
Even Rouault c750f874af grids.cpp: use C99/C++11 uint16_t/uint32_t
libtiff has historically defined uint16 and uint32 as custom typedefs,
but those will be deprecated in the next libtiff release, and using them
will emit warnings, so use standard types as recommended.
2021-03-06 19:13:59 +01:00
Even Rouault 667b7c1f11 Merge pull request #2555 from rouault/fix_2541
createOperations(): fix incorrect height transformation between 3D promoted RGF93 and CH1903+ (fixes #2541)
2021-03-05 21:17:02 +01:00
Even Rouault c6a241f2fe createOperations(): fix incorrect height transformation between 3D promoted RGF93 and CH1903+ (fixes #2541) 2021-03-05 18:18:35 +01:00
Even Rouault f278b5bee6 Merge pull request #2551 from rouault/clang_format
Reformat code with clang-format-10 from ubuntu 20.04
2021-03-04 11:39:14 +01:00
Even Rouault 948f39a4da Merge pull request #2552 from rouault/disable_freebsd
CI: disable FreeBSD / Cirrus builds
2021-03-03 18:40:44 +01:00
Even Rouault de9c1ecf64 CI: disable FreeBSD / Cirrus builds
They started to fail a few weeks ago with the following error
```
./autogen.sh
Running aclocal
autom4te-2.69: need GNU m4 1.4 or later: /usr/local/bin/gm4
aclocal: error: autom4te failed with exit status: 1

  Something went wrong, giving up!
```
2021-03-03 18:23:38 +01:00
Even Rouault 095731d534 Reformat code with clang-format-10 from ubuntu 20.04 2021-03-03 17:45:53 +01:00
Kristian Evers 9e2eb06758 +proj=latlon docs: Datum list is given with cs2cs -ld
Closes #2549
2021-03-01 13:31:18 +01:00
Kristian Evers 82665e3baf HOWTORELEASE: Do not up update proj_api.h version numbers 2021-03-01 13:22:14 +01:00
Kristian Evers 316ea22bd2 Bump version numbers in anticipation of 8.1.0 release 2021-03-01 13:21:12 +01:00
Kristian Evers bd3702ed99 reconfigure 'edit on github' links to 8.0 branch 2021-03-01 13:05:34 +01:00
Kristian Evers b6c588ee75 Update web docs for 8.0.0 release 2021-03-01 13:01:25 +01:00
Mike Taves 12e7a43957 Update NEWS for CMake pkg-config support 2021-02-26 11:31:15 +13:00
Kristian Evers cbd4506ddd Merge pull request #2544 from sebastic/spelling-errors
Fix spelling errors.
2021-02-25 19:18:22 +01:00
Mike Taves 3d22f6f0a7 CMake: add support for pkg-config (#2547) 2021-02-26 00:45:42 +13:00
Even Rouault 1a51877361 Merge pull request #2545 from rouault/fix_gdal_test_issue_due_to_intl_rename
isEquivalentName(): fix for GDAL test failure
2021-02-22 17:05:21 +01:00
Even Rouault 6ef286ec69 isEquivalentName(): fix for GDAL test failure
https://github.com/OSGeo/PROJ/pull/2536 changed the name of the
ellps=intl to "International 1924 (Hayford 1909, 1910)"
When writing a GeoTIFF file from GDAL using a SRS built from a
PROJ string, GDAL massages the datum name to
"Unknown_based_on_International_1924_Hayford_1909_1910_ellipsoid"
Before this fix, this wasn't considered as equivaleent to the non-massaged
datum name "Unknown based on International 1924 (Hayford 1909, 1910) ellipsoid"
2021-02-22 16:37:26 +01:00
Even Rouault 4dcce2a857 Formatting fix 2021-02-22 16:36:45 +01:00
Bas Couwenberg 6b449e5533 Fix spelling errors.
* Allow to <verb> -> Allows <verb>ing
2021-02-20 15:40:13 +01:00
Kristian Evers 6a8d39c11e Updated NEWS for 8.0.0 2021-02-20 14:21:48 +01:00
Kristian Evers bc5f652914 Update man-pages from Sphinx-docs 2021-02-20 12:30:25 +01:00
Kristian Evers 57214ee34a Bump ABI numbers for 8.0.0 release 2021-02-20 12:23:24 +01:00
Kristian Evers c4015280a4 Merge pull request #2514 from mloskot/ml/enable-build-with-static-curl
Enable linking against static cURL on Windows
2021-02-20 11:58:29 +01:00
Kristian Evers 7645c38d2f Merge pull request #2542 from snowman2/warn
LOG: Default log level PJ_LOG_ERROR
2021-02-20 11:57:43 +01:00
snowman2 650ed38f31 LOG: Default log level PJ_LOG_ERROR 2021-02-19 20:39:53 -06:00
Kristian Evers d7f8b0ef22 Merge branch 'master' into ml/enable-build-with-static-curl 2021-02-19 14:01:21 +01:00
Kristian Evers 9c299f3848 Merge pull request #2538 from mwtoews/cmake-target-name
CMake: replace '${PROJ_CORE_TARGET}' with 'proj'
2021-02-19 13:51:41 +01:00
Mateusz Łoskot 842ed0e1b5 Enable linking against static cURL on Windows
This is preliminary fix to allow linking the library
as well as its dependants (e.g. PROJ apps) against cURL
built as static library on Windows with support of native
Windows TLS/SSL.
On Windows, such static cURL (and its dependants) requires linking
against Winsock, CryptoAPI and other networking libaries.
2021-02-19 13:18:03 +01:00
Kristian Evers 584a475207 Merge pull request #2532 from snowman2/autoclose
BUG: Close database connection when autoclose set to True
2021-02-19 08:14:59 +01:00
Kristian Evers ac7b1b1638 Merge pull request #2539 from nyalldawson/10_015
Update to EPSG v10.015
2021-02-19 05:32:17 +01:00
Nyall Dawson 7c52fed34c Update to EPSG v10.015 2021-02-19 13:26:23 +10:00
Mike Taves 59803d8222 CMake: replace '${PROJ_CORE_TARGET}' with 'proj' 2021-02-19 08:54:18 +13:00
Kristian Evers e8a535ee02 Merge pull request #2536 from OSGeo/busstoptaktik-patch-1
International ellipsoid designation correction
2021-02-16 12:07:35 +01:00
Thomas Knudsen c7543c2ff4 International ellipsoid designation correction
The "International 1909 (Hayford)" designation is an unfortunate mix of different aspects of the same ellipsoid.

The Hayford ellipsoid was based on investigations in 1909, published in 1910 as J.F. Hayford: *Supplementary Investigation in 1909 of the Figure of the Earth and Isostasy*, Coast and Geodetic Survey, 80pp. (freely accessible through Google Books).

In 1924 Hayford's ellipsoid was adopted by the IUGG as "the International Ellipsoid".

Hence either of 

- Hayford, 1909 (for the year the work was done),
- Hayford, 1910 (for the year of publication), or
- International, 1924

are reasonable names, in common use, but the "International, 1909" really is a peculiar mix of concepts.

Resolves #2534
2021-02-16 11:03:37 +01:00
Kristian Evers cd10468ece Merge pull request #2533 from mloskot/ml/cmake-keyword-target-commands
CMake: Prefer keyword signature of target_link_libraries command
2021-02-14 11:33:47 +01:00
Mateusz Łoskot 5fc8ab2de9 CMake: Prefer keyword signature of target_link_libraries command
Closes #2515
2021-02-14 10:21:21 +01:00
snowman2 6353da92f1 BUG: Close database connection if autoclose set to True 2021-02-13 19:14:29 -06:00
Even Rouault 32d442ddc6 Merge pull request #2527 from rouault/fix_2526
C API: avoid error messages to be emitted in PJ_LOG_NONE log level (fixes #2526)
2021-02-12 12:23:40 +01:00
Even Rouault d79850629a C API: avoid error messages to be emitted in PJ_LOG_NONE log level (fixes #2526) 2021-02-11 15:44:08 +01:00
Even Rouault 7f6c35f0cc Merge pull request #2525 from rouault/epsg_10_014
Database: update to EPSG v10.014
2021-02-11 12:05:32 +01:00
Even Rouault d3a6ca45ad Database: update to EPSG v10.014 2021-02-11 11:06:49 +01:00
Even Rouault 93d2571d56 Merge pull request #2521 from rouault/boundcrs_proj_based_method
Allow a BoundCRS to use a PROJ string transformation
2021-02-11 10:43:31 +01:00
Even Rouault 755d6d396e Merge pull request #2524 from rouault/fix_2510
Fix handling of +proj=ob_tran +o_proj=longlat combined with +over (fixes #2510)
2021-02-10 18:53:54 +01:00
Even Rouault 36d8691b20 Merge pull request #2522 from rouault/update_operations_computation
operations_computation.rst: update 'Filtering and sorting of coordinate operations' section
2021-02-10 18:53:27 +01:00
Even Rouault 836af9dcf1 Fix handling of +proj=ob_tran +o_proj=longlat combined with +over (fixes #2510) 2021-02-10 17:51:13 +01:00
Even Rouault 3ea7abc133 operations_computation.rst: update 'Filtering and sorting of coordinate operations' section 2021-02-10 17:05:03 +01:00
Even Rouault 4b44a55f6f Allow a BoundCRS to use a PROJ string transformation
Related to https://lists.osgeo.org/pipermail/proj/2021-February/010040.html

Given test.wkt with
```
BOUNDCRS[
    SOURCECRS[
        GEOGCRS["unknown",
            DATUM["Unknown based on GRS80 ellipsoid",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1],
                    ID["EPSG",7019]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433],
                ID["EPSG",8901]],
            CS[ellipsoidal,2],
                AXIS["longitude",east,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433,
                        ID["EPSG",9122]]],
                AXIS["latitude",north,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433,
                        ID["EPSG",9122]]]]],
    TARGETCRS[
        GEOGCRS["WGS 84",
            DATUM["World Geodetic System 1984",
                ELLIPSOID["WGS 84",6378137,298.257223563,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            CS[ellipsoidal,2],
                AXIS["latitude",north,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["longitude",east,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433]],
            ID["EPSG",4326]]],
    ABRIDGEDTRANSFORMATION["Transformation from unknown to WGS84",
        METHOD["PROJ-based operation method: +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=cart +ellps=GRS80 +step +proj=helmert +convention=coordinate_frame +exact +step +inv +proj=cart +ellps=WGS84 +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg"]]]
```

``projinfo -s @test.wkt -t "WGS 84" -o PROJ -q``

outputs:
```
+proj=pipeline
  +step +proj=unitconvert +xy_in=deg +xy_out=rad
  +step +proj=axisswap +order=2,1
  +step +proj=cart +ellps=GRS80
  +step +proj=helmert +convention=coordinate_frame +exact
  +step +inv +proj=cart +ellps=WGS84
  +step +proj=axisswap +order=2,1
  +step +proj=unitconvert +xy_in=rad +xy_out=deg
```
2021-02-10 15:48:29 +01:00
Even Rouault a7f6b40744 test_operation: use correct variable name 2021-02-10 15:43:16 +01:00
Kristian Evers 617f92e3d1 Merge pull request #2519 from nyalldawson/esri_update
Update ESRI projection db to 12.7 (10.8.1/2.6)
2021-02-10 07:03:36 +01:00
Nyall Dawson 2275b2dad9 Update ESRI projection db to 12.7 (10.8.1/2.6) 2021-02-10 08:34:41 +10:00
Kristian Evers 6ce2c1174a Merge pull request #2518 from rouault/epsg_10_013
Database: update to EPSG v10.013
2021-02-09 21:24:14 +01:00
Even Rouault c72dabdc3f Database: update to EPSG v10.013 2021-02-09 19:46:25 +01:00
Even Rouault ad2cb7a120 Merge pull request #2517 from nyalldawson/epsg_update
Database: update to EPSG v10.012
2021-02-09 18:02:42 +01:00
Even Rouault 0b8f6e3586 createOperations(): remove involved logic that was done for GDA94 -> WGS84 (G1762)
It is no longer needed for that particular case, since there's now a concatenated
operation for it. It could in theory be useful for other cases, but removing it
doesn't break existing tests, so...
2021-02-09 16:54:17 +01:00
Nyall Dawson 88618bb412 Database: update to EPSG v10.012 2021-02-09 16:53:36 +01:00
Even Rouault 6882017ff6 Merge pull request #2513 from jjimenezshaw/ahd-tasmania
Better grid_alternatives entries to include 'GDA94 to AHD (Tasmania) height' using 'au_ga_AUSGeoid98.tif'
2021-02-08 18:50:52 +01:00
Kristian Evers 5366db1b15 Merge pull request #2511 from mwtoews/remove-cmake-configurations-8.0
CMake: remove old configuration option aliases
2021-02-07 11:24:58 +01:00
Kristian Evers 197ea0569b Merge pull request #2476 from rouault/fix_2399
Add build time option to make PROJ_LIB env var tested last (fixes #2399)
2021-02-07 11:16:21 +01:00
Kristian Evers c0fb0041c2 Merge pull request #2503 from havingsexonthebeach/epsg10_011
Database: update to EPSG v10.011
2021-02-07 11:14:18 +01:00
Mike Taves af7cbf0ad1 CI: specify pip < 21.0; avoid using pip3 script (#2516) 2021-02-07 23:04:39 +13:00
Javier Jimenez Shaw 58840ddd5a change grid_alternatives entries to include 'GDA94 to AHD (Tasmania) height' 2021-02-03 16:20:10 +01:00
Mike Taves 2ceb24ce20 CMake: remove old configuration option aliases 2021-02-03 05:38:59 +13:00
Kristian Evers db2950e56e Merge pull request #2505 from visr/typos
fix a few typos in the docs
2021-01-17 16:29:38 +01:00
Martijn Visser f0bff3680a update julia binding description
This matches the go binding description. And fixes the colon.
2021-01-17 11:58:56 +01:00
Martijn Visser 169ccbb7a0 fix a few typos in the docs 2021-01-17 11:57:39 +01:00
Modern Slave 7b33d9180e Database: update to EPSG v10.011 2021-01-15 23:27:33 +01:00
Even Rouault 1e7f6c68bf Merge pull request #2502 from rouault/bug_projjson_geoid
createOperations(): fix bug involving geoidmodel and non-metre vertical unit
2021-01-14 23:01:22 +01:00
Even Rouault 9bbd56fca9 createOperations(): fix bug involving geoidmodel and non-metre vertical unit 2021-01-14 21:44:52 +01:00
Even Rouault 84c65702d1 formatting fix 2021-01-14 20:46:53 +01:00
Even Rouault bf5a2f6c79 Merge pull request #2501 from rouault/32bit_immediate
workflow linux_gcc_32bit: fix Could not perform immediate configuration on 'libgcc-s1:i386'
2021-01-13 18:11:31 +01:00
Even Rouault 99b2e8e24e Merge pull request #2500 from rouault/fix_compound_to_geog_non_metre_vert
createOperations(): fix Compound to Geog3D/Projected3D CRS with non-metre ellipsoidal height
2021-01-13 17:57:52 +01:00
Even Rouault e854ed469a workflow linux_gcc_32bit: fix Could not perform immediate configuration on 'libgcc-s1:i386' 2021-01-13 17:36:31 +01:00
Even Rouault 4a10b0f864 createOperations(): fix Compound to Geog3D/Projected3D CRS with non-metre ellipsoidal height 2021-01-13 17:23:34 +01:00
Even Rouault 99b06ef5e7 ellps_size(): do not log error if ellipsoid absent and not needed 2021-01-12 14:36:46 +01:00
Sveinung Himle f44df597b9 Database: add Norwegian height transformations grids to grid_alternatives table (#2359) 2021-01-06 15:20:10 +01:00
Even Rouault 93d8fccd51 createFromUserInput(): accept leading white space (fixes #2498) 2021-01-05 16:49:56 +01:00
Kristian Evers 367771f4ba Update website for 7.2.1 2021-01-01 17:09:45 +01:00
Even Rouault 26e07082d3 Merge pull request #2496 from rouault/proj_crs_is_derived
C API: add proj_crs_is_derived()
2020-12-28 22:25:48 +01:00
Even Rouault 882d84b086 C API: add proj_crs_is_derived() 2020-12-28 17:07:44 +01:00
Kristian Evers 9e7c39abac Update CITATION year to 2021 2020-12-26 19:57:07 +01:00
Kristian Evers 4424a9caeb Update NEWS for 7.2.1 release 2020-12-26 19:42:14 +01:00
Kristian Evers 5aad0d25f8 Merge remote-tracking branch 'osgeo/master' 2020-12-21 17:28:48 +01:00
Kristian Evers 1cafe3e602 Merge pull request #2494 from kbevers/nkg_trans_final
Implementing the NKG transformations in proj.db
2020-12-21 17:26:21 +01:00
Kristian Evers f969d51e0b Implementing the NKG transformations in proj.db
This adds the NKG 2008 and 2020 transformations to proj.db. The NKG
transformations offers transformations between global reference frames
and the national realisations of ETRS89 in Denmark, Estonia, Finland,
Latvia, Lithuania, Norway and Sweden.

The 2008 transformations are already implemented in the NKG 2008 file
but will now be more accessible with the modern API.

The 2020 transformations are new to PROJ and offers and updated version
of the 2008 transformations using a new and improved deformation model
(eu_nkg_nkgrf17vel.tif). A 2020 version of the NKG transformations are
currently not available for Norway but will in all likelyhood be
included at a later point in time.
2020-12-21 16:37:57 +01:00
Even Rouault fd98b78140 test_factory.cpp: add missing checks 2020-12-19 17:38:21 +01:00
Even Rouault a2f4d61f72 Database: register AGQG_20191107.gsb grid. Related to https://github.com/OSGeo/PROJ-data/pull/53 2020-12-18 22:42:31 +01:00
Even Rouault edcf6a2ea6 Merge pull request #2491 from glostis/documentation
Fix typos in resource_files.rst
2020-12-17 15:31:34 +01:00
Even Rouault 7766b1aad7 Merge pull request #2488 from rouault/crs_to_crs_improved_filtering
Improved coordinate operation filtering
2020-12-16 21:02:37 +01:00
Even Rouault da066800e5 cs2cs: add --no-ballpark and --accuracy options 2020-12-16 18:48:46 +01:00
Guillaume Lostis e685921b45 Fix typos in resource_files.rst 2020-12-16 16:50:47 +01:00
Even Rouault 1a84a71349 Merge pull request #2489 from rouault/update_to_epsg_10.0.8
Database: update to EPSG v10.008
2020-12-16 16:09:07 +01:00
Even Rouault 643ce02edf Database: update to EPSG v10.008 2020-12-16 15:24:16 +01:00
Even Rouault 5e07772927 Merge pull request #2487 from rouault/error_mgt_improvements
Error management: revise error codes and expose them to the public API
2020-12-16 15:12:51 +01:00
Even Rouault 37755e4edc proj_create_crs_to_crs_from_pj(): add ACCURACY and ALLOW_BALLPARK options 2020-12-15 18:30:50 +01:00
Even Rouault e570630579 projinfo: add a --accuracy option to define the minimum accuracy 2020-12-15 18:30:24 +01:00
Even Rouault a27c0255e7 Remap ENOMEM from PROJ_ERR_INVALID_OP to PROJ_ERR_OTHER 2020-12-15 17:53:29 +01:00
Even Rouault b020666081 horner.cpp: remove uses of EINVAL and EDOM errno 2020-12-15 17:48:24 +01:00
Even Rouault 41c4e54f03 Remove internal use of PJ_LOG_DEBUG_MINOR and PJ_LOG_DEBUG_MAJOR 2020-12-15 17:24:55 +01:00
Even Rouault df96a13d2c Various operations: remove explicit short name prefixing in log messages now that it is automatically added 2020-12-15 17:24:55 +01:00
Even Rouault ab7b02702a proj_log_XXX functions(): add the short name of the operation as prefix in the error message 2020-12-15 17:24:54 +01:00
Even Rouault 1d803550e7 proj_trans_array(): make it transform all coordinates even when an error occurs 2020-12-15 17:24:54 +01:00
Even Rouault 2abc0aaf3a tmerc exact: set errno to PROJ_ERR_COORD_TRANSFM_OUTSIDE_PROJECTION_DOMAIN when it returns invalid coordinate 2020-12-15 14:59:52 +01:00
Even Rouault 54b861e140 Doc: document error codes and proj_context_errno_string() 2020-12-15 14:59:52 +01:00
Even Rouault 244a24104d Revise error codes to have a reduced set exposed in the public API.
Fixes #2482

And also add proj_context_errno_string()

Revise gie 'expect failure errno XXXX' strings
2020-12-15 01:13:43 +01:00
Even Rouault 1e9894b0e2 Remove ancient no longer used implementation of pj_ell_set() 2020-12-15 00:52:51 +01:00
Even Rouault 0af437949d Move proj_log_XXX() functions from internal.cpp to log.cpp 2020-12-15 00:52:51 +01:00
Even Rouault 8b1ef9504d Merge pull request #2486 from rouault/fix_bound_proj_ntf_paris_to_bound_geog_ntf_paris_rebased
createOperations(): fix inconsistent chaining exception when transforming from BoundCRS of projected CRS based on NTF Paris to BoundCRS of geog CRS NTF Paris
2020-12-14 21:42:15 +01:00
Even Rouault 95340fb1d1 createOperations(): fix inconsistent chaining exception when transforming from BoundCRS of projected CRS based on NTF Paris to BoundCRS of geog CRS NTF Paris. Fixes https://github.com/OSGeo/gdal/issues/3273 2020-12-14 21:12:43 +01:00
Even Rouault bfc54bbac8 Merge pull request #2483 from rouault/split_coordinateoperation
Split coordinateoperation.cpp and test_operation.cpp in several parts
2020-12-14 18:14:31 +01:00
Even Rouault 69994f1922 CMake: install data/*.json files (fixes #2485) 2020-12-13 21:22:56 +01:00
Kristian Evers c3efbd23a5 Merge remote-tracking branch 'osgeo/master' 2020-12-13 15:30:47 +01:00
Even Rouault 49c6a49d83 Split test_operation.cpp in two parts 2020-12-12 22:34:11 +01:00
Even Rouault 4bc3fec94a Split coordinateoperation.cpp in many files in iso19111/operation directory
The big size of coordinateoperation.cpp could require significant amount
of RAM to build it with -O2 level, and cause compiler crashes in some
environments.
2020-12-12 22:23:28 +01:00
Even Rouault 6857d1a4a8 conda.yml: restrict to main repository builds, otherwise fails to build in forks 2020-12-11 22:15:38 +01:00
Even Rouault f51c723b45 .github/workflows/clang_static_analyzer/start.sh: add apt update 2020-12-11 21:50:49 +01:00
Even Rouault acab18920e funtions.rst: fix sphynx syntax 2020-12-11 21:50:35 +01:00
Even Rouault 2e13f14493 test_operation.cpp: remove debug message 2020-12-11 20:37:03 +01:00
Even Rouault 372b5b7480 Doc: fix return data type of proj_trans_array() 2020-12-09 19:28:27 +01:00
Zac Miller 29d2542cc3 Update isea.rst
Clarifying defaults for ISEA.
2020-12-08 23:02:32 +01:00
Even Rouault f3c51143b5 Merge pull request #2477 from rouault/fix_2442
cs2cs / proj_create_crs_to_crs_from_pj(): add a --authority switch to  control where coordinate operations are looked for (fixes #2442)
2020-12-04 23:52:23 +01:00
Even Rouault fe2c5e04d5 Merge pull request #2481 from rouault/ci_build_with_sqlite_dqs_zero
CI: test with a SQLite3 binary built with SQLITE_DQS=0 to avoid issue #2480
2020-12-04 23:51:28 +01:00
Even Rouault bf81813e9f CI: test with a SQLite3 binary built with SQLITE_DQS=0 to avoid issue #2480 2020-12-04 22:46:45 +01:00
Even Rouault 73ff92cfeb Merge pull request #2480 from rouault/fix_build_with_sqlite_3_29
Database: fix building proj.db with SQLite built with -DSQLITE_DQS=0
2020-12-04 22:45:49 +01:00
Even Rouault 2fc8821480 Database: fix building proj.db with SQLite built with -DSQLITE_DQS=0
That is the option to make SQLite reject misuses of double quotes instead
of single quotes. Most SQLite builds are forgiving, but some forks proposing
a CMake build system default to SQLITE_DQS=0
2020-12-04 22:29:58 +01:00
Even Rouault 18ab7ef2e3 cs2cs / proj_create_crs_to_crs_from_pj(): add a --authority switch to control where coordinate operations are looked for (fixes #2442) 2020-12-02 21:11:41 +01:00
Even Rouault 9488b26ca5 Add build time option to make PROJ_LIB env var tested last (fixes #2399)
If PROJ is built with the PROJ_LIB_ENV_VAR_TRIED_LAST CMake option /
--enable-proj-lib-env-var-tried-last configure switch, then the
hard-wired path ($prefix/share/proj) will be tried before looking at the
environment PROJ_LIB.
2020-12-02 15:41:53 +01:00
Even Rouault ebe00831b7 fix build 2020-12-02 15:22:48 +01:00
Even Rouault b7fb045ebd Merge pull request #2444 from rouault/topocentric
Add +proj=topocentric geocentric->topocentric conversion (fixes #500)
2020-12-02 14:42:33 +01:00
Even Rouault f9655458a9 Merge pull request #2474 from rouault/database_version_number
Database: add metadata with the version number of the database layout …
2020-11-30 17:37:49 +01:00
Even Rouault dc7a0c3c6f Merge pull request #2466 from rouault/fix_2423
cs2cs: add --area and --bbox  options to restrict candidate coordinate operations (fixes #2423)
2020-11-30 16:39:18 +01:00
Even Rouault e9f7439946 Merge pull request #2471 from rouault/extent_spherical_tmerc_domain
Spherical tmerc forward: do not restrict to [-90,90] longitude range
2020-11-30 15:18:54 +01:00
Even Rouault eef73e3eca Database: add metadata with the version number of the database layout and check it in the code
This is aimed at detecting running a PROJ version against a proj.db that is not
meant to work with it. This happens sometimes in complex setups mixing PROJ
versions. Hopefully this will help spotting the issue earlier.
2020-11-30 14:09:37 +01:00
Even Rouault 36c700192c test_io.cpp: formatting fix 2020-11-30 13:35:33 +01:00
Even Rouault 89deeee6c0 Merge pull request #2473 from rouault/further_old_api_cleanup
API cleanup: unexport number of internal symbols, and remove/replace …
2020-11-30 12:57:04 +01:00
Even Rouault 2bd09af7d0 Merge pull request #2467 from rouault/gha_windows
Migrate appveyor VS2017 build to github action VS2019
2020-11-30 01:43:31 +01:00
Even Rouault f4dc79075c API cleanup: unexport number of internal symbols, and remove/replace a few unused ones 2020-11-30 01:35:59 +01:00
Even Rouault ebf63e1fd7 Merge pull request #2472 from rouault/improve_pj_datum_set
pj_datum_set(): make code more obvious to humans and analyzers
2020-11-30 01:19:41 +01:00
Even Rouault ee534a70ef pj_datum_set(): make code more obvious to humans and analyzers 2020-11-30 00:32:32 +01:00
Even Rouault 284feecd27 Spherical tmerc forward: do not restrict to [-90,90] longitude range
The restriction was a copy&paste from the Evenden/Snyder approximate
ellipsoidal implementation, but the spherical one is exact, so this
restriction isn't needed.

Also tune a bit the handling of lat=0, |lon| > 90
2020-11-29 20:57:40 +01:00
Even Rouault edd7f165f8 Merge pull request #2450 from rouault/setAllowEllipsoidalHeightAsVerticalCRS
Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDAL
2020-11-29 17:30:16 +01:00
Even Rouault 2ae0766eef Merge pull request #2469 from rouault/fix_2468
Inverse tmerc spherical: fix wrong sign of latitude when lat_0 is used (fixes #2468)
2020-11-29 16:30:26 +01:00
Even Rouault bc0c9f3e96 Inverse tmerc spherical: fix wrong sign of latitude when lat_0 is used (fixes #2468)
Corrected formula given by @evanmiller
2020-11-29 15:46:23 +01:00
Even Rouault 87270ae6f1 createOperations(): get a '+proj=noop' instead of '+proj=affine +s33=-1' when attempting (non-sensical) EPSG:3855 to EPSG:4326 2020-11-28 23:39:33 +01:00
Even Rouault c6dda7637c WKT1 import: better deal with apps.epsg.org output w.r.t datum ensemble names 2020-11-28 20:02:15 +01:00
Even Rouault e44a2acd9b test/fuzzers: remove standard_fuzzer that used proj_api.h now removed 2020-11-28 19:10:58 +01:00
Even Rouault cc5d46523e appveyor.yml: disable VS2017 x64 build 2020-11-28 18:08:22 +01:00
Even Rouault 2a13213dcf Add github action for VS2019 x64 build 2020-11-28 18:08:22 +01:00
Even Rouault ebe3425bf6 proj_create_crs_to_crs_from_pj(): do not use PROJ_SPATIAL_CRITERION_PARTIAL_INTERSECTION if area is specified 2020-11-28 15:57:17 +01:00
Even Rouault 0b4c8b0a76 cs2cs: add --area and --bbox options to restrict candidate coordinate operations (fixes #2423) 2020-11-28 15:51:27 +01:00
Houder 24c74a4d1c Use same arguments to printf format string for both radians and degrees in output by cct (#2453)
Currently the output of the cct utility is different between radians
and degrees (as expected by cct), because of a bug in cct:

$ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad
  1.0000000000    2.0000000000        0.0000        0.0000

$ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=deg
       1.0000         2.0000        0.0000        0.0000

The arguments to the printf format string are as follows:

 * radians: width 14, precision 10
 * degrees: width 13, precision  4 (this is by mistake. bug!)

After the suggested fix has been applied, output will be the same for
both radians and degrees:

$ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad
  1.0000000000    2.0000000000        0.0000        0.0000

$ printf "1 2\n" | cct -z 0 -t 0 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=deg
  1.0000000000    2.0000000000        0.0000        0.0000

The cause of the bug is that cct does test if it "has radians to output",
but "neglects" to test if it "has degrees to output", resulting in using
different arguments to the printf format string in the latter case.

The fix makes cct test if it "has either radians or degrees to output".
2020-11-28 13:45:06 +01:00
Even Rouault 5283d926f7 Merge pull request #2462 from rouault/improve_createObjectsFromName
createObjectsFromName(): in exact match, make looking for 'ETRS89 / UTM zone 32N' return only the exact match
2020-11-28 02:08:06 +01:00
Even Rouault 4de6f0bd24 createObjectsFromName(): in exact match, make looking for 'ETRS89 / UTM zone 32N' return only the exact match 2020-11-28 00:15:11 +01:00
Even Rouault 24c3bbb299 testcct: create 'a' and 'b' from scratch 2020-11-27 23:43:28 +01:00
Even Rouault 9e8a790fc4 Merge pull request #2460 from rouault/gha_linux_gcc4.8
Move linux_gcc 4.8 job to github action, and on Travis-CI only keep the doc publishing
2020-11-27 22:43:00 +01:00
Even Rouault 90737bcf69 Move linux_gcc 4.8 job to github action, and on Travis-CI only keep the doc publishing 2020-11-27 22:00:33 +01:00
Even Rouault c85a44110d Add github action for cppcheck 2020-11-27 21:27:59 +01:00
Even Rouault 59b112687a crs.hpp: add cppcheck suppression for cppcheck 1.90 of ubuntu 20.04 2020-11-27 21:27:31 +01:00
Even Rouault 60ae9abbf9 Merge pull request #2459 from rouault/gha_gcc_32bit
Move linux gcc 32bit job to Github actions
2020-11-27 21:26:17 +01:00
Even Rouault 3b0102df6f Travis-CI: remove linux_gcc8 job 2020-11-27 20:41:42 +01:00
Even Rouault cdac370a9c Github action: add a linux_gcc_32bit job 2020-11-27 20:41:42 +01:00
Even Rouault a24c02199f Merge pull request #2455 from rouault/primem_fixes
PRIMEM WKT handling: fixes on import for 'sexagesimal DMS' or from WKT1:GDAL/ESRI when GEOGCS UNIT != Degree; morph to ESRI the PRIMEM name on export
2020-11-27 13:15:28 +01:00
Even Rouault f5b4060847 formatting fixes 2020-11-27 00:39:49 +01:00
Even Rouault b27efedef0 PRIMEM WKT handling: fixes on import for 'sexagesimal DMS' or from WKT1:GDAL/ESRI when GEOGCS UNIT != Degree; morph to ESRI the PRIMEM name on export 2020-11-27 00:39:18 +01:00
Even Rouault 968b06fbb6 Merge pull request #2457 from rouault/gha_linux_clang
Move linux_clang Travis-CI job to Github action
2020-11-27 00:36:52 +01:00
Even Rouault 74944e3af4 Merge pull request #2458 from rouault/fix_mingw_w64_pj_mutex_warning
Fix mingw_w64 warning about pj_acquire_lock() prototype being missing
2020-11-27 00:36:37 +01:00
Even Rouault 83754e1f77 Fix mingw_w64 warning about pj_acquire_lock() prototype being missing 2020-11-26 21:12:00 +01:00
Kristian Evers 3cb26a406a Merge pull request #2403 from kbevers/remove-proj_api.h
Remove proj_api.h
2020-11-26 20:58:01 +01:00
Even Rouault f0842bb0b0 Travis-CI: remove linux_clang job 2020-11-26 20:31:08 +01:00
Even Rouault 7562eee171 Github action: add a clang linux build job 2020-11-26 20:31:08 +01:00
Even Rouault e7fc87b21e travis/install.sh: make it robust to objdump on 20.04 and/or clang outputing symbols in different order 2020-11-26 20:31:07 +01:00
Even Rouault f5b3616bb0 Merge pull request #2456 from rouault/gha_csa
Move Clang Static Analyzer job to Github action
2020-11-26 20:08:59 +01:00
Even Rouault eeec780b20 Travis-CI: remove CSA job 2020-11-26 19:14:25 +01:00
Even Rouault 7cce6e6444 Github action: add a clang static analyzer job 2020-11-26 19:14:25 +01:00
Even Rouault 4caf32aedd Add option to allow export of Geographic/Projected 3D CRS in WKT1_GDAL
as CompoundCRS with a VerticalCRS being an ellipsoidal height, which is
not conformant. But needed for LAS 1.4 that only supports WKT1
2020-11-24 19:52:39 +01:00
Even Rouault 5172091009 Merge pull request #2449 from rouault/geoidmodel_ballpark
createOperation(): add a ballpark vertical transformation when dealing with GEOIDMODEL[]
2020-11-24 17:29:09 +01:00
Even Rouault d6f6862352 createOperation(): add a ballpark vertical transformation when dealing with GEOIDMODEL[] 2020-11-24 16:41:06 +01:00
Even Rouault 28aa4f1309 Merge pull request #2448 from rouault/gha_mingw_w64
CI: move mingw job to GitHub actions
2020-11-24 11:39:17 +01:00
Charles Karney 2414eb2bb6 Sync w GeographicLib 1.51. Remove C99 compatibility functions. (#2445)
Should be no changes in the compiled code.
2020-11-24 01:13:24 +01:00
Even Rouault 452f1dbb25 mutex.cpp: replace NULL by nullptr 2020-11-24 01:04:23 +01:00
Even Rouault 5d867c43a7 .travis.yml: remove mingw job 2020-11-24 00:56:25 +01:00
Even Rouault 78c8889a76 GitHub action: add a mingw_w64 build 2020-11-24 00:56:25 +01:00
Even Rouault d8fe9964bc Add +proj=topocentric geocentric->topocentric conversion (fixes #500) 2020-11-23 20:58:26 +01:00
Even Rouault 5974b85665 Merge pull request #2447 from rouault/gha_osx
CI: move Mac job to GitHub actions with Conda as the base for dependencies
2020-11-23 20:51:07 +01:00
Even Rouault 95fd9665ef .travis.yml: remove mac job 2020-11-23 20:23:50 +01:00
Even Rouault 42b8c2012d GitHub action: add a Mac build 2020-11-23 20:23:50 +01:00
Even Rouault 97eea25cb1 Merge pull request #2446 from rouault/fix_projectedCRS_3D_is_WKT1_equivalent_to_WKT2
GeographicCRS::_isEquivalentTo(EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS):…
2020-11-23 19:22:53 +01:00
Even Rouault b503c2e5ae GeographicCRS::_isEquivalentTo(EQUIVALENT_EXCEPT_AXIS_ORDER_GEOGCRS): make it work when comparing easting,northing,up and northing,easting,up 2020-11-23 16:56:44 +01:00
Even Rouault 765faba898 Remove no longer used build_db_create_ignf.py script 2020-11-22 23:53:22 +01:00
Even Rouault 6bc444c1b0 Database ESRI: map 2 grids in grid_alternatives 2020-11-22 23:52:42 +01:00
Even Rouault f50221ed66 projinfo.cpp: improve hint when to use --spatial-test intersects 2020-11-22 23:16:48 +01:00
Even Rouault 427a4545e0 Merge pull request #2443 from rouault/fix_parse_wkt2_2019_projected_with_base_geocentric
WKT parsing: fix ingestion of WKT with a Geocentric CRS as the base of the projected CRS
2020-11-22 01:23:12 +01:00
Even Rouault 650e37f159 PROJJSON parsing: fix parsing of a Geodetic CRS with a DatumEnsemble, and fix parsing of a ProjectedCRS whose base is a Geocentric CRS 2020-11-21 23:59:33 +01:00
Even Rouault eb66679cde WKT parsing: fix ingestion of WKT with a Geocentric CRS as the base of the projected CRS 2020-11-21 23:58:50 +01:00
Even Rouault 3f4058308b Merge pull request #2441 from rouault/fix_obtran_towgs84
createOperation(): make it work properly when one of the CRS is a BoundCRS of a DerivedGeographicCRS (+proj=ob_tran +o_proj=lonlat +towgs84=....)
2020-11-21 15:20:56 +01:00
Even Rouault c2edd467c5 createOperation(): make it work properly when one of the CRS is a BoundCRS of a DerivedGeographicCRS (+proj=ob_tran +o_proj=lonlat +towgs84=....) 2020-11-21 13:56:18 +01:00
Even Rouault 3dea81d9be Make GeographicCRS/GeodeticCRS::isEquivalentTo() work properly when comparing to a DerivedGeographicCRS/DerivedGeodeticCRS 2020-11-21 13:55:11 +01:00
Even Rouault 3b3ec2bd6a Merge pull request #2440 from rouault/update_backport_action
backport.yml: update to what QGIS uses
2020-11-21 13:13:18 +01:00
Even Rouault c3a83ef5ea backport.yml: update to what QGIS uses 2020-11-21 13:11:59 +01:00
Nomit Rawat 571096201b Update utm.rst
Typo
2020-11-20 17:04:25 +01:00
Kristian Evers d9205b9245 Update list of exported symbols 2020-11-20 16:40:40 +01:00
Kristian Evers 046270a85f Remove old pj_ memory (de)allocation functions
Gone are pj_malloc, pj_calloc, pj_dalloc and pj_dealloc. Their primary
function as API memory functions in proj_api.h is no longer there and
the other use as a workaround for old errno problems is no longer valid
either.

Replaced with malloc and free across the codebase.
2020-11-20 16:40:40 +01:00
Kristian Evers 56f0ad7005 Remove pj_errno and related functions 2020-11-20 16:40:40 +01:00
Kristian Evers 43efca4ab8 Remove pj_free() and move it's functional parts to proj_destroy() 2020-11-20 16:40:40 +01:00
Kristian Evers ddb3b8da07 Removed unused function pj_set_searchpath() and pj_set_finder() 2020-11-20 16:40:40 +01:00
Kristian Evers eb04ffca4c Remove unused pj_apply_gridshift() 2020-11-20 16:40:40 +01:00
Kristian Evers 8e13c3acd8 Removed unused functions from src/utils.cpp 2020-11-20 16:40:40 +01:00
Kristian Evers a74b985b50 Remove pj_ctx_* functions and use their proj_context counterparts 2020-11-20 16:40:40 +01:00
Kristian Evers 7f79fe7325 Remove legacy file API 2020-11-20 16:40:40 +01:00
Kristian Evers 70c4c41731 Convert multistresstest to new API 2020-11-20 16:40:40 +01:00
Kristian Evers aa46197d66 Weed out proj_api.h datatypes and replace them with their proj.h counterparts 2020-11-20 16:40:40 +01:00
Kristian Evers e2dd223c56 Remove src/transform.cpp and related tests 2020-11-20 16:40:40 +01:00
Kristian Evers eb82aa83f2 Raise error when ACCEPT_USE_OF_DEPRECATED_PROJ_API_H is defined 2020-11-20 16:40:40 +01:00
Kristian Evers 9e50c8c0e2 Remove ACCEPT_USE_OF_DEPRECATED_PROJ_API_H macro 2020-11-20 16:40:40 +01:00
Kristian Evers 9419b42ade Remove proj_api.h
Removes proj_api.h from the public API. The contents of the header file
has been moved to proj_internal.h verbatim and any references to
proj_api.h has been changed to proj_internal.h.

The documentation of proj_api.h has been removed. The only exception to
this is the API migration guides which still mention the old API.

Fixes #837
2020-11-20 16:40:39 +01:00
J.H. van de Water 2cbf659bfc Replace line feed in input line by null character
As result of a modification in logging (adding a line feed),
many changes had to be made in different places of cct.cpp.
However, one missed the line feed in input to cct.
As result of missing this, the output from cct showed a
superfluous empty line after each output line, but only if
the corresponding input line ended with comment.
Replacing the LF in the "comment" string (present if the
input line ended with comment) by a null character ('\0')
solves this issue.

Modification in logging?
https://github.com/OSGeo/PROJ/commit/37da5e243191c04607597f6b8a77acfa017a5c99
( cct: revise end-of-line handling in logging, and always output debug )

See also:
https://github.com/OSGeo/PROJ/issues/1677
( cct outputs excessive whitespace comments are included in input data )
2020-11-19 11:45:47 +01:00
Even Rouault 4478eed4f5 Merge pull request #2434 from rouault/update_to_epsg_10.0.7
Database: update to EPSG v10.007
2020-11-18 18:05:53 +01:00
Even Rouault 0476db2b05 Database: update to EPSG v10.007 2020-11-18 17:19:41 +01:00
Even Rouault c560b79576 cs2cs, cct, proj and geod: fflush(stdout) after each line to emit each result as soon as it is produced
This is needed when working with pipes, when stdout is not an interactive terminal,
and thus the behaviour is to have it buffered as a regular file, whereas with
an interactive terminal, each newline character causes an implicit flush.
2020-11-17 17:27:50 +01:00
Even Rouault 7eda8aacb6 github actions: update to conda-incubator/setup-miniconda@v2 to be compatible with latest github action security fix constraints 2020-11-17 16:35:39 +01:00
Even Rouault 63f9f4e09a WKT2 parsing: several fixes related to map projection parameter units
- WKT2 grammar: accept PARAMETER[name,value,id] without unit
- Recognize "Ellipsoid scaling factor" as a parameter with a scaling unit,
  and defaults to Unity when not specified
- WKT2 parsing: implement the requirement of 18-010r7.html#80, that is
  when a map projection parameter has no explicit unit, use metre/degree/unity
  as the default unit (contrary to WKT1 parsing rules where they are deduced
  from the GeogCRS angular unit and coordinate system)
2020-11-16 14:34:33 +01:00
Even Rouault 1a98229ed2 Merge pull request #2422 from rouault/fix_polar_stere_at_pole
Polar stereographic at pole: make it return (0,0)
2020-11-12 11:46:38 +01:00
Even Rouault b38d0143a6 Polar stereographic at pole: make it return (0,0)
Due to the improved accuracy of pj_tsfn(), it no longer returns
0 when phi=90° due to the conversion in radians.
Some GDAL tests are very sensitive to the pole transforming to (0,0)
exactly, so add a special case for that.

master only
2020-11-12 00:05:31 +01:00
Even Rouault d5b0ea29b6 Merge pull request #2420 from rouault/cct_improvements
cct: allow @filename syntax
2020-11-10 15:45:20 +01:00
Even Rouault 6be4e25c66 cct: allow @filename syntax
Similarly as for projinfo, allow "cct @filename" to mean read filename and
use its content as if it was provided inline. Useful for WKT or PROJJSON

And a tiny improvements, when the object definition contains ':', only try
proj_create_from_database() if the left part (authority name) matches a known
authority, to avoid a warning.
2020-11-10 14:47:41 +01:00
Even Rouault a8be7bc87c cct.rst: fix indentation 2020-11-10 14:23:09 +01:00
Kristian Evers af342bf74c Allow cct to instantiate operations via object codes or names (#2419)
Running cct like

    cct EPSG:8366

or

    cct "ITRF2014 to ETRF2014 (1)"

is now possible.
2020-11-10 14:08:30 +01:00
Even Rouault bcfb194060 Merge pull request #2417 from rouault/refresh_COPYING
COPYING: update and install COPYING, NEWS and AUTHORS
2020-11-09 20:36:56 +01:00
Even Rouault c87ace6908 automake and cmake: install COPYING, NEWS and AUTHORS in /share/doc/proj 2020-11-06 19:32:38 +01:00
Even Rouault b56f39dec5 COPYING: update
Fixes #2415

- Change mention of PROJ.4 to PROJ
- Change 'I' pronoun to Frank Warmerdam
2020-11-06 19:32:12 +01:00
Even Rouault 848ee7b6a8 createBoundCRSToWGS84IfPossible(): make it return same result with a CRS built from EPSG code or WKT1
Related to https://github.com/OSGeo/gdal/issues/3144
2020-11-04 18:50:36 +01:00
Even Rouault 9c28184f6f Code formatting 2020-11-04 15:27:56 +01:00
Even Rouault 20c987854f docs/Makefile: restore custom 'html' target
Fixes #2408

https://github.com/OSGeo/PROJ/pull/2377 removed our customized 'html' and
.doxygen_up_to_date targets. Let's restore them
2020-11-04 06:38:35 +01:00
Kristian Evers 126445148d Fix vim regex for making github links 2020-11-03 07:15:03 +01:00
Martin Steinisch c64c209f4a Correct links to github issues in release notes from 7.1.0 to 7.2.0 2020-11-03 07:12:39 +01:00
Olli Raisa dd829c94ff cmake build: set CURL_ENABLED definition on projinfo build (#2404)
Fixes projinfo operation, when --remote-data command line option is parsed.
2020-11-02 08:25:48 +01:00
Even Rouault 3b7c3a6ad4 Merge pull request #2371 from rouault/epsg10_part2
EPSG v10 update part 2: ingest DatumEnsemble from the database
2020-11-01 18:50:58 +01:00
Even Rouault 119888b041 proj.h: add PJ_CATEGORY_DATUM_ENSEMBLE for proj_create_from_database() 2020-11-01 12:57:35 +01:00
Even Rouault 1e5acb00a0 projinfo / createObjectsFromName(): support returning a datum ensemble 2020-11-01 12:57:34 +01:00
Even Rouault c2b0dcc468 When reading from database, possibly return VerticalCRS with a DatumEnsemble
Only occurence for now is EPSG:9451 'BI height' using the
'British Isles height ensemble'
2020-11-01 12:57:34 +01:00
Even Rouault 82695cce86 When reading from database, possibly return Geographic/GeodeticCRS with a DatumEnsemble, typically for WGS 84 and ETRS89 ('breaking change') 2020-11-01 12:57:34 +01:00
Charles Karney cccd65e50d Merge pull request #2397 from cffk/merc-update
Update Mercator projection, more accurate, faster
2020-11-01 06:53:02 -05:00
Even Rouault b7bf499b84 Merge pull request #2402 from rouault/improved_comments_datum
Doxygen: improve doc of functions related to Datum/DatumEnsemble
2020-11-01 11:25:29 +01:00
Even Rouault 2d778088f1 Merge pull request #2401 from rouault/improve_remarks
Fill remarks on coordinate operations in more situations
2020-11-01 11:25:19 +01:00
Even Rouault 12274943fb Merge pull request #2400 from rouault/proj_create_ellipsoidal_2D_cs_doc_improvement
proj_create_ellipsoidal_2D/3D_cs(): doc improvement
2020-11-01 11:25:03 +01:00
Kristian Evers 42634f5d71 Switch website 'edit on GitHub' to 7.2 branch 2020-11-01 11:04:07 +01:00
Kristian Evers ed782cb37f Update version numbers in preparation for 8.0.0 release 2020-11-01 11:00:45 +01:00
Kristian Evers a7b98870d8 Merge remote-tracking branch 'osgeo/master' 2020-11-01 10:41:05 +01:00
Kristian Evers c6ede221ed Update docs for 7.2.0 release 2020-11-01 10:40:17 +01:00
Even Rouault 6e7124c8b1 Doxygen: improve doc of functions related to Datum/DatumEnsemble 2020-10-31 15:53:15 +01:00
Even Rouault 67718853e1 Fill remarks for PROJ-based operation mixing horizontal and vertical transformations 2020-10-31 15:47:52 +01:00
Even Rouault baed8dae49 Make sure that remarks is preserved when substituting (EPSG) grid name by PROJ one 2020-10-31 13:59:25 +01:00
Even Rouault c08da1a660 proj_create_ellipsoidal_2D/3D_cs(): doc improvement 2020-10-31 10:52:44 +01:00
Even Rouault 64d46a6b29 Merge pull request #2398 from hernando/japanese-geoid
Update GSIGEO2011 grid alternative to latest PROJ-data
2020-10-28 11:56:51 +01:00
Juan Hernando 2d679fd66f Update GSIGEO2011 grid alternative to latest PROJ-data 2020-10-28 08:55:43 +01:00
Charles Karney 692fc26b6d merc.cpp + phi2.cpp: Avoid declaring multiple variables in 1 statement. 2020-10-27 16:44:43 -04:00
Charles Karney 94e36270ca Use nm units in builtins.gie. Remove backward looking comments in code. 2020-10-27 10:02:27 -04:00
Charles Karney 6bd7c777f8 Fix/add some comments. 2020-10-26 19:03:26 -04:00
Charles Karney 75a8436b24 Use sincos optimization in merc_e_forward. Revised timing data...
Times per call in ns = nanoseconds.

                Fedora 31    Ubuntu 18
                g++-9.3.1    g++-7.5.0
                fwd   inv    fwd   inv
    old merc    207   461    217   522
    new merc    159   457    137   410
      etmerc    212   196    174   147

The new forward method is now 25% faster (resp 35% faster) on Fedora
31 (resp Ubuntu 18).  The new inverse method is the same speed (resp 20%
faster) on Fedora 31 (resp Ubuntu 18).

The accuracy is hardly affected: rms error increases from 0.30 nm to
0.33 nm, max error increases from 1.83 nm to 1.84 nm (a barely
noticeable degradation).
2020-10-26 18:29:19 -04:00
Charles Karney ee35d15db5 phi2.cpp: Slight cosmetic changes to sinpsi2tanphi. 2020-10-26 17:50:51 -04:00
Charles Karney 1081e496a0 lcc.cpp: fix abs -> fabs
Also some corrected information...

Timing UPDATED
--------------

Sorry the previous timing data was wrong.  Here are corrected values..

Here's what I get with g++ -O3 on two Linux machines with recent
versions of g++.  As always, you should take these with a grain of
salt.  Times per call in ns = nanoseconds.

                Fedora 31    Ubuntu 18
                g++-9.3.1    g++-7.5.0
                fwd   inv    fwd   inv
    old merc    207   461    217   522
    new merc    228   457    168   410
      etmerc    212   196    174   147

The new forward method is the 10% slower (resp 20% faster) on Fedora
31 (resp Ubuntu 18).  The new inverse method is the same speed (resp
20% faster) on Fedora 31 (resp Ubuntu 18).

Roughly speaking the speed comparison is a wash.  Maybe we should pay
attention more to the Fedora 31 results since these are with a newer
version of the compiler.  I would still make the argument that a 20%
time penalty (which in a full PROJ pipeline would probably be no more
than a 5% penalty) would be a worthwhile price to pay for a more
robust implementation of the projection.
2020-10-26 16:06:19 -04:00
Charles Karney 6c2363e88f phi2.cpp: remove unused static consts + minor code tweak 2020-10-26 14:57:52 -04:00
Charles Karney 1b484f8530 Address comments by @schwehr 2020-10-26 14:05:06 -04:00
Charles Karney b3a20c5b9c Try to fix compiler complaints for max and constexpr sqrt 2020-10-26 13:58:42 -04:00
Charles Karney 5d22d137b1 Update Mercator projection
Introduction
------------

The existing formulation for the Mercator projection is
"satisfactory"; it is reasonably accurate.  However for a core
projection like Mercator, I think we should strive for full double
precision accuracy.

This commit uses cleaner, more accurate, and faster methods for
computing the forward and inverse projections.  These use the
formulation in terms of hyperbolic functions that are manifestly odd
in latitude

    psi = asinh(tan(phi)) - e * atanh(e  * sin(phi))

(phi = latitude; psi = isometric latitude = Mercator y coordinate).
Contrast this with the existing formulation

    psi = log(tan(pi/4 - phi/2))
          - e/2 * log((1 + e * sin(phi)) / (1 - e * sin(phi)))

where psi(-phi) isn't exactly equal to -psi(phi) and psi(0) isn't
guaranteed to be 0.

Implementation
--------------

There's no particular issue implementing the forward projection, just
apply the formulas above.  The inverse projection is tricky because
there's no closed form solution for the inverse.  The existing code
for the inverse uses an iterative method from Snyder.  This is the
usual hokey function iteration, and, as usual, the convergence rate is
linear (error reduced by a constant factor on each iteration).  This
is OK (just) for low accuracy work.  But nowadays, something with
quadratic convergence (e.g., Newton's method, number of correct digits
doubles on each iteration) is preferred (and used here).  More on this
later.

The solution for phi(psi) I use is described in my TM paper and I
lifted the specific formulation from GeographicLib's Math::tauf, which
uses the same underlying machinery for all conformal projections.  It
solves for tan(phi) in terms of sinh(psi) which as a near identity
mapping is ideal for Newton's method.

For comparison I also look at the approach adopted by Poder + Engsager
in their TM paper and implemented in etmerc.  This uses trigonometric
series (accurate to n^6) to convert phi <-> chi.  psi is then given by

    psi = asinh(tan(chi))

Accuracy
--------

I tested just the routines for transforming phi <-> psi from merc.cpp
and measured the errors (converted to true nm = nanometers) for the
forward and inverse mapping.  I also included in my analysis the
method used by etmerc.  This uses a trigonometric series to convert
phi <-> chi = atan(sinh(psi)), the conformal latitude.

		forward      inverse
		max  rms     max    rms
    old merc    3.60 0.85 2189.47 264.81
      etmerc    1.82 0.38    1.42   0.37
    new merc    1.83 0.30    2.12   0.31

1 nm is pretty much the absolute limit for accuracy in double
precision (1 nm = 10e6 m / 2^53, approximately), and 5 nm is probably
the limit on what you should routinely expect.  So the old merc
inverse is considerably less accurate that it could be.  The old merc
forward is OK on accuracy -- except that if does not preserve the
parity of the projection.

The accuracy of etmerc is fine (the truncation error of the 6th order
series is small compared with the round-off error).  However,
situation reverses as the flattening is increased.  E.g., at f =
1/150, the max error for the inverse projection is 8 nm.  etmerc is OK
for terrestrial applications, but couldn't be used for Mars.

Timing
------

Here's what I get with g++ -O3 on various Linux machines with recent
versions of g++.  As always, you should take these with a grain of
salt.  You might expect the relative timings to vary by 20% or so when
switching between compilers/machines.  Times per call in ns =
nanoseconds.

               forward inverse
    old merc     121      360
      etmerc    4e-6      1.4
    new merc      20      346

The new merc method is 6 times faster at the forward projection and
modestly faster at the inverse projection (despite being more
accurate).  The latter result is because it only take 2 iterations of
Newton's method to get full accuracy compared with an average of 5
iterations for the old method to get only um accuracy.

A shocking aspect of these timings is how fast etmerc is.  Another is
that forward etmerc is streaks faster that inverse etmerc (it made be
doubt my timing code).  Evidently, asinh(tan(chi)) is a lot faster to
compute than atan(sinh(psi)).  The hesitation about adopting etmerc
then comes down to:

  * the likelihood that Mercator may be used for non-terrestrial
    bodies;

  * the question of whether the timing benefits for the etmerc method
    would be noticeable in a realistic application;

  * need to duplicate the machinery for evaluating the coefficients
    for the series and for Clenshaw summation in the current code
    layout.

Ripple effects
==============

The Mercator routines used the the Snyder method, pj_tsfn and pj_phi2,
are used in other projections.  These relate phi to t = exp(-psi) (a
rather bizarre choice in my book).  I've retrofitted these to use the
more accurate methods.  These do the "right thing" for phi in [-pi/2,
pi/2] , t in [0, inf], and e in [0, 1).  NANs are properly handled.

Of course, phi = pi/2 in double precision is actually less than pi/2,
so cos(pi/2) > 0.  So no special handling is needed for pi/2.  Even if
angles were handled in such a way that 90deg were exactly represented,
these routines would still "work", with, e.g., tan(pi/2) -> inf.

(A caution: with long doubles = a 64-bit fraction, we have cos(pi/2) <
0; and now we would need to be careful.)

As a consequence, there no need for error handling in pj_tsfn; the
HUGE_VAL return has gone and, of course, HUGE_VAL is a perfectly legal
input to tsfn's inverse, phi2, which would return -pi/2.  This "error
handling" was only needed for e = 1, a case which is filtered out
upstream.  I will note that bad argument handling is much more natural
using NAN instead of HUGE_VAL.  See issue #2376

I've renamed the error condition for non-convergence of the inverse
projection from "non-convergent inverse phi2" to "non-convergent
sinh(psi) to tan(phi)".

Now that pj_tsfn and pj_phi2 now return "better" results, there were
some malfunctions in the projections that called them, specifically
gstmerc, lcc, and tobmerc.

  * gstmerc invoked pj_tsfn(phi, sinphi, e) with a value of sinphi
    that wasn't equal to sin(phi).  Disaster followed.  I fixed this.
    I also replaced numerous occurrences of "-1.0 * x" by "-x".
    (Defining a function with arguments phi and sinphi is asking for
    trouble.)

  * lcc incorrectly thinks that the projection isn't defined for
    standard latitude = +/- 90d.  This happens to be false (it reduces
    to polar stereographic in this limit).  The check was whether
    tsfn(phi) = 0 (which only tested for the north pole not the south
    pole).  However since tsfn(pi/2) now (correctly) returns a nonzero
    result, this test fails.  I now just test for |phi| = pi/2.  This
    is clearer and catches both poles (I'm assuming that the current
    implementation will probably fail in these cases).

  * tobmerc similarly thinks that phi close to +/- pi/2 can't be
    transformed even though psi(pi/2) is only 38.  I'm disincline to
    fight this.  However I did tighten up the failure condition
    (strict equality of |phi| == pi/2).

OTHER STUFF
===========

Testing
-------

builtins.gei: I tightened up the tests for merc (and while I was about
it etmerc and tmerc) to reflect full double precision accuracy.  My
test values are generated with MPFR enabled code and so should be
accurate to all digits given.  For the record, for GRS80 I use f =
1/298.2572221008827112431628366 in these calculations.

pj_phi2_test: many of the tests were bogus testing irrelevant input
parameters, like negative values of exp(-psi), and freezing in the
arbitrary behavior of phi2.  I've reworked most for the tests to be
semi-useful.  @schwehr can you review.

Documentation
-------------

I've updated merc.rst to outline the calculation of the inverse
projection.

phi2.cpp includes detailed notes about applying Newton's method to
find tan(phi) in terms of sinh(psi).

Future work
-----------

lcc needs some tender loving care.  It can easily (and should) be
modified to allow stdlat = +/- 90 (reduces to polar stereographic),
stdlat = 0 and stdlat_1 + stdlat_2 = 0 (reduces to Mercator).  A
little more elbow grease will allow the treatment of stdlat_1 close to
stdlat_2 using divided differences.  (See my implementation of the
LambertConformalConic class in GeographicLib.)

All the places where pj_tsfn and pj_phi2 are called need to be
reworked to cut out the use of Snyder's t = exp(-psi() variable and
instead use sinh(psi).

Maybe include the machinery for series conversions between all
auxiliary latitudes as "support functions".  Then etmerc could use
this (as could mlfn for computing meridional distance).  merc could
offer the etmerc style projection via chi as an option when the
flattening is sufficiently small.
2020-10-26 12:44:18 -04:00
Kristian Evers 91a767b0cd Use correct PROJ_API_VERSION following updated procedure in HOWTORELEASE 2020-10-26 14:32:19 +01:00
Kristian Evers 16a8e74ca0 Update PROJ_API_VERSION instructions 2020-10-26 14:06:40 +01:00
Kristian Evers e1a43ab05b Update NEWS for 7.2 release 2020-10-26 11:59:31 +01:00
Kristian Evers 37b645059c Update man-pages from Sphinx-docs 2020-10-26 11:02:11 +01:00
Kristian Evers 3bd548d816 Bump ABI version numbers for 7.2 release 2020-10-26 10:42:18 +01:00
Even Rouault 8e4399f668 build_esri_projection_mapping.py: use symbolic name EPSG_NAME_METHOD_COLOMBIA_URBAN 2020-10-26 00:31:13 +01:00
Even Rouault 177143442a Merge pull request #2396 from nyalldawson/notes
Remove 'Local' from list of unsupported ESRI projections
2020-10-26 00:18:22 +01:00
Even Rouault 8850bcb275 Map ESRI IGAC_Plano_Cartesiano to EPSG Colombia Urban (refs #2395) 2020-10-26 00:17:13 +01:00
Nyall Dawson 619994e2b8 Remove 'Local' from list of unsupported ESRI projections 2020-10-26 08:23:52 +10:00
Even Rouault a1513668db Merge pull request #2395 from rouault/colombia_urban
Add +proj=col_urban projection, implementing a EPSG projection method used by a number of projected CRS in Colombia (fixes #589)
2020-10-25 22:19:42 +01:00
Even Rouault 4559a3f702 Add +proj=col_urban projection, implementing a EPSG projection method used by a number of projected CRS in Colombia (fixes #589) 2020-10-25 21:17:29 +01:00
Even Rouault 6476108774 Fix issues spotted by cppcheck 2020-10-25 19:18:06 +01:00
Even Rouault 9f2500e74e More typo fixes 2020-10-25 16:24:37 +01:00
Even Rouault d0f552bd4d scripts/fix_typos.sh: adjust qgis.txt for our script 2020-10-25 16:24:31 +01:00
Even Rouault 64312b3367 Fix typos spotted by scripts/fix_typos.sh 2020-10-25 16:18:58 +01:00
Even Rouault 32f92851c0 projsync: fix --list-files to be compatible with filtering options 2020-10-24 21:18:51 +02:00
Even Rouault 4e95a04f1b triangulation.schema.json: add a 'name' member in 'extent' 2020-10-24 20:57:03 +02:00
Even Rouault 99a84ae742 triangulation.schema.json: add an 'extent' member 2020-10-24 19:45:09 +02:00
Even Rouault 99152afb0b Database: move NZGD2000 deformation model from customizations.sql to new other_tranformation_custom.sql 2020-10-24 17:39:52 +02:00
Even Rouault 469520cbc8 grid_checks.py: rename variables / messages to proj-data 2020-10-24 17:27:33 +02:00
Even Rouault eb1eee51ab Merge pull request #2393 from hernando/japanese-geoid
Added transformation from JGD2011 Geographic 3D to JGD2011 height using GSIGEO2011
2020-10-24 17:14:35 +02:00
Juan Hernando 3fc4b3d4a9 Added transformation from JDG2011 geog 3D to JGD2011 height using GSIGEO2011 2020-10-24 16:37:56 +02:00
Juan Hernando 0b86cc9bce Sort grid_alternatives.sql by agency alphabetically 2020-10-24 16:13:15 +02:00
Charles Karney f27c3d3c2e Merge branch 'master' of github.com:OSGeo/PROJ 2020-10-23 15:32:44 -04:00
Charles Karney f0458a9c79 Minor fixes to tmerc documentation 2020-10-23 15:32:35 -04:00
Even Rouault 2dabb14ec8 Merge pull request #2392 from rouault/fi_nls_tins
Database (and tweaks in core): Add Finland tinshift operations
2020-10-23 19:03:23 +02:00
Even Rouault e30be68ce1 Database: add Finland tinshift operations 2020-10-23 17:44:51 +02:00
Even Rouault 06162ef3cc PROJStringFormatter::getUsedGridNames(): recognize +file= parameter of operation +proj=tinshift 2020-10-23 17:44:29 +02:00
Even Rouault 19b4bba25c Add logic to handle interpolationCRS in PROJBasedOperation and ConcatenatedOperation 2020-10-23 17:44:07 +02:00
Even Rouault ef443bdf0e Database: add interpolation_crs_auth_name and interpolation_crs_code columns to other_transformation table 2020-10-23 17:42:39 +02:00
Charles Karney 30e0b09275 Merge pull request #2388 from cffk/merc-doc-update
Improve the documentation for the Mercator projection
2020-10-23 09:10:09 -04:00
Charles Karney f472a97490 merc.rst: change "origins from 15th cent" to 16th cent. 2020-10-23 08:20:17 -04:00
Even Rouault e6a992b599 AuthorityFactory::createCoordinateOperation(): correctly compute accuracy of concatenated operation when there is a conversion step 2020-10-23 14:17:13 +02:00
Even Rouault 03bede92da Merge pull request #2390 from rouault/db_interleave_usage
Database: for clarity, put usage records after the object they are for
2020-10-23 13:27:57 +02:00
Even Rouault b45891d778 Database: for clarity, put usage records after the object they are for 2020-10-23 12:11:30 +02:00
Even Rouault aaa159247b Merge pull request #2389 from rouault/wkt_parse_implict_compound_crs_esri
WKT1_ESRI: fix import and export of CompoundCRS
2020-10-23 10:28:05 +02:00
Even Rouault 6351422cc2 WKT1_ESRI export: try to export Geographic3D and Projected3D CRS when we can find a corresponding ellipsoidal vertical datum 2020-10-23 00:03:40 +02:00
Even Rouault 4969076c15 Database: import ESRI VERTCS that uses a (geodetic) datum to express ellipsoidal height 2020-10-23 00:03:40 +02:00
Even Rouault 9a11293155 WKT1_ESRI export: generate VERTCS[...,DATUM[...,SPHEROID[]] syntax when ellipsoidal height is found 2020-10-23 00:03:29 +02:00
Even Rouault 82cd218a7a WKT1_ESRI export: export CompoundCRS as PROJCS[...],VERTCS[...] or GEOGCS[...],VERTCS[...] 2020-10-22 21:22:43 +02:00
Even Rouault f2cd2b3b99 WKT parser: accept ESRI VERTCS[...,DATUM[...,SPHEROID[]] syntax to express ellipsoidal heights 2020-10-22 21:13:03 +02:00
Charles Karney 5b72015b0a merc.rst: revert to ln instead of log.
Also define merc (resp. tmerc) as the conformal projection in which the
equator (resp. a chosen meridan} projects to a straight line at constant
scale.
2020-10-22 13:53:45 -04:00
Even Rouault 698e51f476 WKT parser: accept implicit compoundCRS from ESRI WKT, like "PROJCS[...],VERTCS[...]" 2020-10-22 19:34:23 +02:00
Even Rouault 4fa0c250c1 WKTParser::createFromWKT(): minor adjustement for DATUM[],PRIMEM[] constructs
The WKT parser on the second part was called with "RIMEM[...]" (leading P skipped),
which has no visible consequence, as we didn't care about the actual value of the
keyword due to how we used it. But this is better fixing that.

Only applies to recent master changes.
2020-10-22 18:15:39 +02:00
Charles Karney 02ef4ed32e Flesh out the documentation for Mercator
This addresses item 1 in issue #2387

Things to note:

* I made "editorial" changes to the text.  The virtues and vices of
  Mercator are a hot topic.  So check these out.  (I judged that the
  text I replaced to be pretty misleading.)

* I include the radius of the sphere/ellipsoid in the formulas (and I
  did this also for my mods for tmerc documentation).  Surely this is
  better than leaving the reader to figure out how this is introduced.

* I include the "old-style" (ca 18th century) formulas and the newer
  ones in terms of hyperbolic functions.  The former may be the familiar
  ones, but the latter are better for computation (more succinct, more
  accurate, faster, preserve parity).

* For the inverse ellipsoidal transformation, I just say that the
  formula for psi is inverted iteratively.  This is probably sufficient,
  but it could be expanded later.
2020-10-22 11:01:29 -04:00
Even Rouault b61a1d0575 Merge pull request #2386 from rouault/improve_compoundcrs_identification
Improve CompoundCRS identification and name morphing in VerticalCRS with ESRI WKT1
2020-10-21 11:41:51 +02:00
Even Rouault 31f272708e VerticalCRS: morph CRS and datum name using ESRI aliases on import from / export to WKT1:ESRI 2020-10-20 21:51:45 +02:00
Even Rouault 45c819b69f Improve identification of compound CRS from ESRI WKT1, and for compound CRS whose result is not in the DB but whose horiz and vertical parts are known 2020-10-20 21:14:30 +02:00
Even Rouault 6b8ef545c4 projinfo: make '-q -o WKT1:ESRI' work 2020-10-20 20:37:49 +02:00
Even Rouault d18c1972df Orthographic projection: do not add f=0 to PROJ string if the ellipsoid is a sphere (fixes GDAL PDS4 tests) 2020-10-20 14:43:57 +02:00
Even Rouault a8ca9b4b9f test_c_api.cpp: reformat 2020-10-20 14:43:22 +02:00
Even Rouault 5180f5ceb3 Merge pull request #2363 from rouault/reactivate_s390x
.travis.yml: re-enable s390x and add arm64
2020-10-20 12:12:29 +02:00
Alan D. Snow 084f5f6cb3 C API: add proj_context_clone() (#2383)
Fixes #2382
2020-10-19 17:20:27 +02:00
Charles KarneyandCharles Karney 85137d9354 Document the default poder_engsager algorithm for tmerc. (#2379)
* Document the default poder_engsager algorithm for tmerc.

* Give exact expression for phi' in terms of phi

* Aadd another datapoint on range of applicability + explanation for
complex numbers.

* Update tmerc figure with one reflecting poder/engsager algo.

Courtesy of @hobu.

Co-authored-by: Charles Karney <charles.karney@sri.com>
2020-10-18 23:36:24 +02:00
Even Rouault 2357d264d4 Merge pull request #2381 from rouault/fix_1453
Add multi-line PROJ string export capability, and use it by default in projinfo (unless --single-line is specified) (fixes #1543)
2020-10-18 18:42:31 +02:00
Even Rouault 3a2df3462c CompoundCRS with ellipsoidal height: make sure the vertical axis has 'ellipsoid height' as name and 'h' as abbreviation 2020-10-17 22:41:55 +02:00
Even Rouault ffe1922d54 travis/install.sh: make output less verbose to hopefully avoid log size limitation on Mac 2020-10-16 18:49:58 +02:00
Even Rouault d981e01e3f projinfo: restrict PROJ multiline output to coordinate operations only 2020-10-16 18:49:58 +02:00
Even Rouault 53e716f80f projinfo.rst: fix typo 2020-10-16 18:49:58 +02:00
Even Rouault 149366116a Add multi-line PROJ string export capability, and use it by default in projinfo (unless --single-line is specified) (fixes #1543) 2020-10-16 18:49:58 +02:00
Even Rouault 82b496fb32 Merge pull request #2370 from rouault/epsg10
Update to EPSG 10.003 and make code base robust to dealing with WKT CRS with DatumEnsemble
2020-10-16 18:26:09 +02:00
Even Rouault 93508fbec1 Merge pull request #2378 from rouault/enable_gigs_5104
test/gigs: 5104 is passing now. Enable it
2020-10-15 11:28:33 +02:00
Even Rouault 3f575aec77 test/gigs: 5104 is passing now. Enable it 2020-10-15 10:56:43 +02:00
Howard Butler a762daddb5 Plot building Github Action (#2377)
* implement conda package building

* paths

* need libtool

* PLATFORM check

* point to my PROJ feedstock for now

* point to PROJ repos

* plot building and artifact upload

* syntax

* add proj conda package for plotting

* retab

* no doxygen

* syntax

* update docs Makefile

* doc building

* needs

* consolidate doc/plots

* plot updates

* put updated plot output into docs

* register spelling module

* use v2 download-artifact

* artifact upload
2020-10-14 14:40:42 -05:00
Howard Butler bb7dde0752 Add Conda package GitHub Action (#2373)
* implement conda package building

* paths

* need libtool

* PLATFORM check

* point to my PROJ feedstock for now

* point to PROJ repos
2020-10-14 12:30:50 -05:00
Even Rouault 686713479e C API: add proj_dynamic_datum_get_frame_reference_epoch() 2020-10-11 20:13:42 +02:00
Even Rouault d1a0d95da5 Database query: add AuthorityFactory::ObjectType::DYNAMIC_GEODETIC_REFERENCE_FRAME and DYNAMIC_VERTICAL_REFERENCE_FRAME, and make corresponding C API work 2020-10-11 20:01:29 +02:00
Even Rouault ad80dc88a7 Database: add a frame_reference_epoch column in vertical_datum to be able to handle dynamic vertical datums, and instanciate them properly from database 2020-10-11 19:50:09 +02:00
Even Rouault 9751f31ca9 Merge pull request #2372 from rouault/datum_with_pm
WKT2:2019 import/export: handle DATUM (at top level object) with PRIMEM
2020-10-10 15:38:54 +02:00
Even Rouault 5163741254 WKT2:2019 import/export: handle DATUM (at top level object) with PRIMEM
This is a peculiarity of the WKT grammar. Despite ISO 19111 saying that the
prime meridian is a component of the datum, in WKT, they are placed at the
same level, for backward compatibility with earlier WKT versions. So handle
exporting and importing that. The fix is only for situation where DATUM is
the top level object (was working fine otherwise), which is a uncommon use
case. And to limit the amount of issue, on export emit the prime meridian only
if it is not Greenwich.
2020-10-10 14:23:50 +02:00
Even Rouault a5dd7bbb85 Merge pull request #2369 from rouault/fix_2368
promoteTo3D(): add a remark with the original CRS identifier (fixes #2368)
2020-10-09 16:05:59 +02:00
Even Rouault d83c7af5ee projinfo: fix usage formatting 2020-10-09 01:43:32 +02:00
Even Rouault f0f9ec43e5 promoteTo3D(): add a remark with the original CRS identifier (fixes #2368)
```
$ projinfo EPSG:32631 --3d

WKT2:2019 string:
PROJCRS["WGS 84 / UTM zone 31N",
[ ...snip ]
    REMARK["Promoted to 3D from EPSG:32631"]]
```
2020-10-08 18:06:50 +02:00
Even Rouault acd1cf3278 Make GeographicCRS::is2DPartOf3D() work with DatumEnsemble 2020-10-08 17:31:57 +02:00
Even Rouault 67af1d5741 Make proj_create_crs_to_crs() / cs2cs work with CRS with DatumEnsemble 2020-10-08 17:31:57 +02:00
Even Rouault f147821920 Add C API to work with datum ensemble
Add:
- proj_crs_get_datum_ensemble()
- proj_crs_get_datum_forced()
- proj_datum_ensemble_get_member_count()
- proj_datum_ensemble_get_accuracy()
- proj_datum_ensemble_get_member()

Make proj_create_geographic_crs_from_datum() and
proj_create_geocentric_crs_from_datum() accept a datum ensemble.
2020-10-08 17:31:57 +02:00
Even Rouault 4049f4cc96 createGeodeticCRS(): more DatumEnsemble compatibility in the case when creating from text_definition 2020-10-08 17:31:57 +02:00
Even Rouault 492c95ce77 Make createOperations() work with DatumEnsemble 2020-10-08 17:31:57 +02:00
Even Rouault 53672bdf70 Make CRS identification work with CRS with DatumEnsemble 2020-10-08 17:31:56 +02:00
Even Rouault 9dc3bf503b Add DatumEnsemble::asDatum() and use it in exportToWkt()
to allow exporting DatumEnsemble to WKT < 2019.
2020-10-08 17:31:56 +02:00
Even Rouault b5369cc79e Add a AuthorityFactory::createDatumEnsemble() method, and make it inherit from ObjectUsage
as mandated by ISO 19111:2019
2020-10-08 17:31:56 +02:00
Even Rouault fece8a6c6e Database: add aliases for 'old' names of WGS84 and ETRS89 datums, and remove one hack 2020-10-08 17:31:56 +02:00
Even Rouault e51a7db2bd Database: avoid importing duplicated alias names 2020-10-08 17:31:55 +02:00
Even Rouault ff9a386c72 Database: import datum ensemble accuracy and members (but do not use them) 2020-10-08 17:31:55 +02:00
Even Rouault ecf9cf0d97 getCRSInfoList(): make it use area description 2020-10-08 17:31:54 +02:00
Even Rouault 3ed9a613d8 Database: use extended description for extent/area of use, as done by epsg.org WKT export 2020-10-08 17:31:50 +02:00
Even Rouault 2cfdd6f7fc Database: instanciate DynamicGeodeticReferenceFrame (things like ITRFxxx, WGS 84 (Gxxxx), etc.) when possible 2020-10-06 23:48:52 +02:00
Even Rouault 4c992038ea Database: add a reference_frame_epoch column to the geodetic_datum for dynamic datums, but not yet used 2020-10-06 23:48:52 +02:00
Even Rouault a9b6f39494 Database: "minimal" update to EPSG v10.003
Content mostly unchanged since v9.9

This update is "minimal" in that it mostly reflects the removal of the 'area'
table, replaced now by 'extent', 'scope' and 'usage'

Other new aspects of EPSG v10 are left aside.
2020-10-06 23:48:52 +02:00
Even Rouault 7cec30b85e Merge pull request #2366 from rouault/fix_reference_exported_symbols
Update scripts/reference_exported_symbols.txt and fix checking of them in travis/install.sh
2020-10-06 23:32:39 +02:00
Even Rouault 80c00d2727 Update scripts/reference_exported_symbols.txt and fix checking of them in travis/install.sh 2020-10-06 22:55:23 +02:00
Even Rouault f9c17392ad Merge pull request #2365 from rouault/bound_crs_to_wgs84_vertcrs
proj_crs_create_bound_crs_to_WGS84(): make it work on verticalCRS/compoundCRS such as EPSG:4326+5773 and EPSG:4326+3855
2020-10-05 21:02:32 +02:00
Even Rouault a227423cda proj_crs_create_bound_crs_to_WGS84(): make it work on verticalCRS/compoundCRS such as EPSG:4326+5773 and EPSG:4326+3855 2020-10-05 18:14:53 +02:00
Even Rouault 390d1ee101 Merge pull request #2364 from rouault/fix_issue_NAD83_NAD83_2011
createOperations(): several fixes affecting NAD83 -> NAD83(2011)
2020-10-05 11:32:22 +02:00
Even Rouault 7f7f2921ad createOperations(): avoid elimination of ballpark transformation that can help for NAD83->WGS84->NAD83(2011) hops 2020-10-02 23:58:08 +02:00
Even Rouault cd00bd6d0c createOperations(): when combining transformations, reject those with a non-intersecting area of validity 2020-10-02 23:57:18 +02:00
Even Rouault d00b2bdec0 CoordinateOperation: fix issue with ballpark flag not being copied with shallowClone() which affected result sorting 2020-10-02 21:52:33 +02:00
Even Rouault 3feddc89cb .travis.yml: add a arm64 platform 2020-10-02 11:05:51 +02:00
Even Rouault c939d1f9c5 Revert ".travis.yml: disable s390x target since Travis-CI infra is KO regarding this"
This reverts commit 11d2e04051.

This is now stable again
2020-10-02 11:02:28 +02:00
Even Rouault 1cd25bb01d Merge pull request #2361 from rouault/ortho_ellipsoidal
Implement ellipsoidal formulation of +proj=ortho (fixes #397)
2020-09-30 13:37:40 +02:00
Even Rouault 48c3a9a225 Merge pull request #2344 from rouault/tinshift
Add a +proj=tinshift for triangulation-based transformations
2020-09-30 13:37:21 +02:00
Even Rouault 164c85cc8e Add a +proj=tinshift for triangulation-based transformations
Implements RFC-6
2020-09-30 11:26:48 +02:00
Even Rouault 016e8e6074 ortho.cpp: more precise reference to guidance note 2020-09-30 11:17:13 +02:00
Kristian Evers 63541cc268 Merge pull request #2362 from rouault/tmerc_tidy_setup
tmerc: setup_exact(): do not recompute third flattening already available as P->n
2020-09-30 10:32:50 +02:00
Even Rouault 713a5ad61b tmerc: setup_exact(): do not recompute third flattening already available as P->n 2020-09-27 19:43:46 +02:00
Even Rouault 5e7d58ec69 Ortho ellipsoidal inverse: improve accuracy in polar case with (x,y) close to (0,0) 2020-09-27 16:19:56 +02:00
Even Rouault fedeeec68f Ortho ellipsoidal inverse: add domain check for oblique case, and slighly improve initial guessing 2020-09-27 13:51:15 +02:00
Even Rouault b04894819e Ortho ellipsoidal inverse: add non iterative implementations for polar and equatorial 2020-09-26 19:07:55 +02:00
Even Rouault 3d88b6fc89 Ortho: add visibility condition for ellipsoidal case. Credits to @cffk 2020-09-26 18:55:25 +02:00
Even Rouault 2e104e0925 Implement ellipsoidal formulation of +proj=ortho (fixes #397)
- Map ESRI 'Local' to +proj=ortho when Scale_Factor = 1 and Azimuth = 0
- Map ESRI 'Orthographic' to a PROJ WKT2 'Orthographic (Spherical)'
  which maps to +proj=ortho +f=0 to froce spherical evaluation
2020-09-26 11:09:23 +02:00
Even Rouault 485509f3b3 build_db.py: fix previous commit (those files were transient only) 2020-09-24 16:43:10 +02:00
Even Rouault 4376e2233b build_db.py: remove unneeded files 2020-09-24 16:13:56 +02:00
Howard Butler ae2f258a94 update Dockerfile for osgeo/proj-docs to include spell checking 2020-09-22 15:36:16 +02:00
Even Rouault 81aaa47b4e Merge pull request #2357 from rouault/fix_2356
Adjust createBoundCRSToWGS84IfPossible() and operation filtering (for POSGAR 2007 to WGS84 issues) (fixes #2356)
2020-09-18 13:31:36 +02:00
Even Rouault 75074ce863 createOperations(): tune sorting of transformations so that the ones with greater 'version numbers' are prefered over other ones, when all other comparison criteria are equal. Helps with Amersfoort RD New to EPSG:4326 2020-09-17 19:46:07 +02:00
Even Rouault aeb024f2df Adjust createBoundCRSToWGS84IfPossible() and operation filtering (for POSGAR 2007 to WGS84 issues) (fixes #2356)
- We make createBoundCRSToWGS84IfPossible() more restrictive. If there are more
  than one Helmert transformation from the CRS to WGS 84 covering the area of
  use of the CRS, we do not create a BoundCRS / +towgs84
- In createOperations() filtering, we are less aggressive in discarding operations
  that have the same area of use but worse accuracy. We do it only if they involve
  more transformation steps.

We now get:
```
$ projinfo EPSG:5340 -o PROJ
PROJ.4 string:
+proj=longlat +ellps=GRS80 +no_defs +type=crs

$ projinfo -s EPSG:5340 -t EPSG:4326 --spatial-test intersects --summary
Candidate operations found: 2
EPSG:9264, POSGAR 2007 to WGS 84 (2), 0.5 m, Argentina
EPSG:5351, POSGAR 2007 to WGS 84 (1), 1.0 m, Argentina
```
2020-09-17 18:36:22 +02:00
Even Rouault 1e11bf646d projjson.schema.json: indicate v0.2.1 (refs #2354) 2020-09-17 13:31:20 +02:00
Even Rouault 339f1e57d3 projjson.schema.json: update to reflect that prime_meridian.longitude can just be a number, in which case the unit is implicitly degrees (fixes #2354) 2020-09-17 00:19:24 +02:00
Even Rouault e3905b559a Merge pull request #2353 from rouault/fix_2352
proj_trans(): reset errno before attemptying a retry with a new coordinate operation (fixes #2352)
2020-09-11 11:49:44 +02:00
Even Rouault eedfc8908d proj_trans(): reset errno before attemptying a retry with a new coordinate operation (fixes #2352) 2020-09-10 21:17:14 +02:00
Even Rouault ed32f8e4f4 Merge pull request #2351 from rouault/update_to_epsg_9_9
Database: update to EPSG 9.9
2020-09-10 12:14:08 +02:00
Even Rouault ca7f41d0c4 Merge pull request #2350 from rouault/ogc_crs27_crs83
Database: add OGC:CRS27 and OGC:CRS83 CRS entries for NAD27 and NAD83 in longitude, latitude order
2020-09-09 22:41:00 +02:00
Even Rouault 9436c84196 Map EPSG:1083 'Geog3D to Geog2D+Vertical (AUSGeoid v2)' method to +proj=vgridshift 2020-09-09 22:29:19 +02:00
Even Rouault b69aa99cab Database: update to EPSG 9.9 2020-09-09 22:28:41 +02:00
Even Rouault eb2705fb93 Database: add OGC:CRS27 and OGC:CRS83 CRS entries for NAD27 and NAD83 in longitude, latitude order 2020-09-08 13:21:07 +02:00
Even Rouault 7c2718623d Merge pull request #2347 from saprykin/master
Fix compiling warnings when using GCC 4.8.x
2020-09-04 18:30:24 +02:00
Alexander Saprykin 97f06e4c5e Fix compiling warnings when using GCC 4.8.x 2020-09-04 14:50:16 +02:00
Alan D. Snow 50bf1180df DOC: Fix reference to proj_get_codes_from_database in proj_get_crs_info_list_from_database docstring (#2345) 2020-09-04 08:35:45 +02:00
Even Rouault 252bb9d461 Merge pull request #2283 from rouault/rfc6_text
Add RFC-6 text: triangulation-based transformations
2020-09-02 12:52:16 +02:00
Even Rouault 30bfb38c0a Add RFC-6 text 2020-09-02 11:58:49 +02:00
Even Rouault af2ab20b50 Doc: document members of C structures generated from Doxygen 2020-09-02 11:12:39 +02:00
Kristian Evers ff25c66351 Update docs for 7.1.1 release
Conflicts:
	docs/source/conf.py
2020-09-01 16:20:09 +02:00
Javier Jimenez Shaw f38c54e7fb fix typo in Canary Islands 2020-09-01 16:18:28 +02:00
Kristian Evers 55addc07a0 Update NEWS for 7.1.1 2020-09-01 16:18:15 +02:00
Kristian Evers 310fa2ce67 docs: Document missing members of PJ_COORD 2020-08-31 13:33:52 +02:00
Even Rouault ef48acb4ab Merge pull request #2342 from rouault/proj_create_vertical_crs_ex_accuracy
proj_create_vertical_crs_ex(): add a ACCURACY option to provide an explicit accuracy, or derive it from the grid name if it is known
2020-08-26 20:10:22 +02:00
Even Rouault 138555c249 proj_create_vertical_crs_ex(): add a ACCURACY option to provide an explicit accuracy, or derive it from the grid name if it is known 2020-08-26 00:18:36 +02:00
Even Rouault 683d3097ff lcc: avoid harmless division by zero in untypical case. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24442 2020-08-23 18:11:43 +02:00
Even Rouault 403bd8b267 createObjectsFromName(): add back case insensitivity when comparing names
Fixes #2332
Didn't affect released versions
2020-08-21 08:46:38 +02:00
Even Rouault b104bc7afb Helmert: fix regression when rotation terms are 0, but scale is not
Fixes #2333
Was due to 3dc92ad701
Doesn't affect released versions
2020-08-21 08:45:47 +02:00
Alan D. Snow bc1dcf2cd5 projCtx_t: Copy ini file settings, proj4_init_rules, etc.. when initializing context from global (#2331) 2020-08-20 17:48:40 +02:00
Even Rouault 2b3475c853 Code reformatting 2020-08-19 16:31:27 +02:00
Even Rouault 846455f958 Merge pull request #2329 from snowman2/ensure_cpp_context
Add methods to projCtx_t for safer interactions with cpp_context
2020-08-19 16:19:40 +02:00
snowman2 8c41cfc3a7 Add methods to ensure safer interactions with cpp_context 2020-08-19 08:06:18 -05:00
Alan D. Snow 84713021ed Clone projCppContext context when copying projCtx_t (#2324) 2020-08-19 15:02:42 +02:00
Even Rouault 62ad09fe02 Revert compiler generated Fused Multiply Addition optimized routines (#2327)
Fixes #2326

Partially reverts commit b84c9d0cb6 to
remove the use of the gcc 6 mechanism of generated multiple versions of
functions with different optimization flags, which was found to causes
crashes when dlopen'ing PROJ on CentOS 7.8 with gcc 8.3.1
2020-08-19 14:25:28 +02:00
Alan D. Snow e1dc2d5516 ENH: Add support for custum CA Bundle path (#2323)
Fixes #2320
2020-08-16 12:30:58 +02:00
Even Rouault b8c198897d WKT importer: tune for Oracle WKT and 'Lambert Conformal Conic' (#2321)
Fixes https://github.com/qgis/QGIS/issues/37898
2020-08-13 18:06:22 +02:00
Kristian Evers 9701afb98c cs2cs/cct docs: Align versionadded directives correctly for -d option 2020-08-13 12:22:53 +02:00
Even Rouault 6f78d5604e WKT parser: avoid null pointer dereference on corrupted WKT
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24809
2020-08-11 09:51:05 +02:00
Even Rouault 56bacd3dc9 ProjectedCRS::identify(): fix to be able to identify EPSG:2154 as a candidate for 'RGF93_Lambert_93' (contributes to fixes https://github.com/qgis/QGIS/issues/32255) (#2315) 2020-08-07 17:22:31 +02:00
Javier Jimenez Shaw 916026cc34 Fix url for CDN GitHub project (#2313) 2020-08-06 13:36:58 +02:00
Even Rouault 17827338d0 Merge pull request #2312 from jjimenezshaw/add-canary-islands-geoid
Add Canary Islands geoid file
2020-08-06 11:19:08 +02:00
Javier Jimenez Shaw ca1a6ab916 add Canary Islands geoid file in grid_alternatives.sql 2020-08-05 12:58:58 +02:00
Even Rouault 14f868d922 Merge pull request #2309 from rouault/update_to_epsg_9_8_15
Database: update to EPSG v9.8.15 database
2020-08-03 11:40:09 +02:00
6d6229ca7b Database: update to EPSG v9.8.15 database
Co-authored-by: jmckenna <jmckenna@gatewaygeomatics.com>
Co-authored-by: Javier Jimenez Shaw <j1@jimenezshaw.com>
Co-authored-by: Even Rouault <even.rouault@spatialys.com>
2020-08-02 12:18:11 +02:00
Even Rouault 53abcb0425 PROJ CRS string ingestion: fix typo in identification of projection steps (fixes #2307) 2020-07-30 17:42:27 +02:00
Even Rouault 9488a7264a Merge pull request #2304 from rouault/fix_helmert_2D
Helmert 2D: do not require a useless convention= parameter
2020-07-24 16:00:47 +02:00
Even Rouault 886499e3a2 Helmert 2D: do not require a useless convention= parameter 2020-07-24 15:22:53 +02:00
Even Rouault 062c7f160f Transverse Mercator South Orientated: restrict export to PROJ string to cases where false_easting and false_northing are 0 2020-07-09 15:45:28 +02:00
Even Rouault 668fb0aacd Merge pull request #2300 from rouault/krovak_czech
PROJ string export of +proj=krovak +czech: make sure we export +czech…
2020-07-09 11:50:44 +02:00
Even Rouault 24624869b4 Merge pull request #2298 from rouault/gh_workflows_doc_build
Move doc building (without deployment) to github action
2020-07-09 00:12:32 +02:00
Even Rouault 5c9bd6e722 PROJ string export of +proj=krovak +czech: make sure we export +czech instead of +axis=swu (fixes #2299) 2020-07-09 00:11:28 +02:00
Even Rouault cf3caffd45 formatting fix 2020-07-08 23:47:59 +02:00
Even Rouault b5e13c2118 github workflows: add a workflow for doc building 2020-07-08 16:50:06 +02:00
Even Rouault dd38200142 travis/osx/before_install.sh: remove most brew actions and doc building
Brew is just to unstable
2020-07-08 16:35:58 +02:00
Even Rouault 08f287dc5d Merge pull request #2294 from dg0yt/mingw
CMake build: Check "target_clones" before use
2020-07-08 13:11:05 +02:00
Even Rouault 35468fd4f7 travis/osx/before_install.sh: fix related to installing python (#2295) 2020-07-07 23:14:33 +02:00
Kai Pastor 7ab3ee7370 CMake build: Check "target_clones" before use
gcc's "target_clones" and "ifunc" function attributes rely on
extensions to the ELF standard. Using them on MinGW causes "error:
the call requires 'ifunc', which is not supported by this target".
Amends 5396b72.
2020-07-07 21:04:16 +02:00
Even Rouault 7cfde8d0b3 Merge pull request #2274 from snowman2/pjtype
ENH: Added temporal, engineering, and parametric datum PJ_TYPE enumerations
2020-07-06 11:25:59 +02:00
Even Rouault b8fef0901b C API: missing a few SANITIZE_CTX() in entry points (#2292)
Found when investigating https://github.com/OSGeo/gdal/issues/2744
but the root cause of the GDAL issue is different.
2020-07-04 18:31:10 +02:00
Even Rouault c859c40dae Doc: improve cs2cs doc by mentionning possibility to use EPSG CRS names (#2290) 2020-07-03 11:18:29 +02:00
Even Rouault 66d5ffd529 Parse '+proj=something_not_latlong +vunits=' without +geoidgrids as a Projected3D CRS and not a compound CRS with a unknown datum (fixes #2287) (#2288) 2020-07-02 15:05:12 +02:00
anbj 6458c7cf2e improve cmake instructions (#2278) 2020-07-02 20:27:49 +12:00
Even Rouault becef63fbc news.rst: fix version number 2020-07-01 16:21:15 +02:00
Even Rouault f80567bf31 PROJ 7.1.0 NEWS and release notes: add missing mention of +proj=defmodel 2020-07-01 15:19:28 +02:00
Even Rouault ab2acccadf Doc: add alias in pages of transformation methods 2020-07-01 15:13:41 +02:00
anbj ce952dbe58 Doc: add projsync info (#2279) 2020-07-01 14:28:25 +02:00
Even Rouault 75ab93d19c Database: register Brazil' grids (refs https://github.com/OSGeo/PROJ-data/pull/39) (#2277) 2020-07-01 14:15:05 +02:00
Even Rouault c99cfa8ee7 WKT parser: do not raise warning when parsing a WKT2:2015 TIMECRS whose TIMEUNIT is at the CS level, and not inside (#2276)
Adresses testTemporal() and testCompoundWithTime() cases of
https://github.com/OSGeo/PROJ/issues/2275#issuecomment-650765730
2020-07-01 14:14:24 +02:00
Even Rouault 42cd771306 Update version numbers 2020-07-01 13:04:47 +02:00
Kristian Evers bb15481e66 Post release updates (#2270)
* Minor updates to HOWTO-RELEASE

* Update webpage for 7.1.0 release
2020-07-01 12:40:35 +02:00
snowman2 71ddcf9757 move new enums to bottom 2020-06-27 08:06:42 -05:00
snowman2 ed1eb90ef3 ENH: Added temporal, engineering, and parametric datum PJ_TYPE enumerations 2020-06-26 20:22:50 -05:00
Kristian Evers 0a995bb421 Mention new API function deprecations 2020-06-24 21:26:17 +02:00
Even Rouault d989bf3919 ESRI WKT: correctly map 'Goode Homolosine' from ESRI:54052 (resp. 54053) to 'Interrupted Googe Homolosine' (resp. 'Interrupted Googe Homolosine Ocean') 2020-06-24 17:19:16 +02:00
Even Rouault f40ab9fd0b c_api.cpp: code reformating 2020-06-24 17:06:12 +02:00
Alan D. Snow b8c2a2dba1 Replace assert with errors in c_api.cpp when some preconditions are not met (#2269)
Closes #2268
2020-06-24 15:22:56 +02:00
Even Rouault 7523645bae test_defmodel.cpp: increase comparison tolerance for ARM and MIPS platforms (fixes #2271) 2020-06-24 11:08:54 +02:00
Kristian Evers 57ccf582fc Update NEWS for 7.1.0 release 2020-06-23 20:37:53 +02:00
Kristian Evers 070db93ca4 Update man-pages from Sphinx-docs 2020-06-23 19:38:54 +02:00
Kristian Evers 720d3fd19b Update ABI version numbers for 7.1.0 release 2020-06-23 19:30:59 +02:00
Even Rouault af8334a5c8 Merge pull request #2267 from rouault/update_to_epsg_9_8_12
Database: update to EPSG v9.8.12
2020-06-19 14:53:50 +02:00
Even Rouault ee743a74c2 Database: update to EPSG v9.8.12 2020-06-19 13:50:12 +02:00
Even Rouault 6872529880 Merge pull request #2250 from and-marsh/pr-add-main-uk-geoid
Database: register geoid file for UK added in  OSGeo/PROJ-data#25
2020-06-18 11:48:25 +02:00
Even Rouault c408466fde Merge pull request #2265 from rouault/fix_createOperations_bound_to_geod
createOperations(): fix transformations between BoundCRS and Geocentric CRS
2020-06-17 11:42:37 +02:00
Even Rouault 963a4d4cae Merge pull request #2248 from rouault/database_nzgd2000_defmodel
Database: register NZGD2000 -> ITRF96 transformation for NZGD2000 database
2020-06-16 22:50:35 +02:00
Even Rouault 3d9aa5c82f createOperations(): fix transformations between BoundCRS and Geocentric CRS 2020-06-16 20:07:40 +02:00
Even Rouault 3005bcbc15 Doc building: workaround Doxygen issue that cause trouble with recent Sphinx/Breathe 2020-06-13 22:33:54 +02:00
Kristian Evers 09bbf268d6 Update code contributor guidelines so they reflect current state of affairs 2020-06-13 10:25:32 +02:00
Kristian Evers 6a36ac3c0f Merge pull request #2264 from jjimenezshaw/add-favicon
Add favicon.png in html
2020-06-12 21:33:35 +02:00
Javier Jimenez Shaw f0b231b37a add favicon.png in html 2020-06-12 19:56:34 +02:00
Even Rouault a3350fd7e8 Merge pull request #2263 from jjimenezshaw/egm08-rednap
add PROJ transformation for ETRS89 (EPSG:4937) to Alicate height (EPSG:5782)
2020-06-12 19:04:32 +02:00
Javier Jimenez Shaw 0046678fed add transformation for es_ign_egm08-rednap.tif 2020-06-12 17:59:24 +02:00
Even Rouault 69f315914c Merge pull request #2262 from rouault/proj_pc_in_tiff_curl
proj.pc.in: add @TIFF_LIBS@ @CURL_LIBS@ in Libs.private
2020-06-12 11:41:15 +02:00
Even Rouault e400278186 Merge pull request #2261 from rouault/register_SPED2ETV2
Database: register Spanish SPED2ETV2 grid for ED50->ETRS89
2020-06-11 18:52:27 +02:00
Even Rouault 0e20ccabce proj.pc.in: add @TIFF_LIBS@ @CURL_LIBS@ in Libs.private
Attempt at fixes #2084
2020-06-11 14:44:26 +02:00
Even Rouault eeb52c6dc6 Database: register Spanish SPED2ETV2 grid for ED50->ETRS89
Refs https://github.com/OSGeo/PROJ-data/pull/31
2020-06-11 12:48:36 +02:00
Even Rouault adc18aee52 Merge pull request #2260 from ollira/fix-proj_context_get_database_metadata
Fix access violation in proj_context_get_database_metadata
2020-06-10 14:31:33 +02:00
Olli Räisä adeca911c1 Fix access violation in proj_context_get_database_metadata 2020-06-10 12:52:14 +03:00
Even Rouault 144a611f84 Conversion::_exportToPROJString(): avoid potential floating point div by zero. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23239 2020-06-09 17:24:20 +02:00
Even Rouault dfa281a25d Merge pull request #2259 from rouault/slovakian_geoids
Register Slovakian geoid transformations with needed code changes
2020-06-08 13:40:31 +02:00
Even Rouault a24cf969aa Database: make sure we can deal with 'Geog3D to Geog2D+GravityRelatedHeight' records as we do with the more common 'Geographic3D to GravityRelatedHeight' 2020-06-06 22:24:14 +02:00
Even Rouault c6ff686bf8 createOperations(): improve name of inverse transformation when there are registered transformations between compoundCRS and something else 2020-06-06 22:24:13 +02:00
Even Rouault a96e8f5f4e createOperations(): changes so that EPSG:9635 'Geog3D to Geog2D+GravityRelatedHeight (US .gtx)' method used by Slovakian geoids correctly deal with axis order and unit conversion, to be used as 'standalone'. Also improves when using directly 'Geographic3D to GravityRelatedHeight' method 2020-06-06 22:24:13 +02:00
Even Rouault 325d8e157d Database: register sk_gku_Slovakia_ETRS89h_to_Baltic1957.tif and sk_gku_Slovakia_ETRS89h_to_EVRF2007.tif geoids
Related to https://github.com/OSGeo/PROJ-data/pull/29
2020-06-06 22:23:54 +02:00
Even Rouault 4e347f4710 Merge pull request #2258 from rouault/doc_proj_normalize_for_visualization
Doc: use Doxygen output for proj_normalize_for_visualization() to avoid duplication of info (current .rst content is outdated)
2020-06-05 18:08:52 +02:00
Even Rouault 192a15764a Doc: use Doxygen output for proj_normalize_for_visualization() to avoid duplication of info (current .rst content is outdated) 2020-06-05 17:22:44 +02:00
Even Rouault 2a84dc816e Merge pull request #2256 from rouault/fix_normalizeForVisualization_for_EPSG_5482
normalizeForVisualization(): make it switch axis for EPSG:5482 (RSRGD2000 / RSPS2000)
2020-06-03 15:11:09 +02:00
Even Rouault dc1f82d8b5 Doc: add specific explanations for lat_ts for +proj=stere, also mentions +lat_0 and +k_0 (#2255)
Refs #2254
2020-06-03 15:10:55 +02:00
Even Rouault 5904499500 normalizeForVisualization(): make it switch axis for EPSG:5482 (RSRGD2000 / RSPS2000)
Fixes #2254
2020-06-03 14:09:04 +02:00
Even Rouault df1b082825 Merge pull request #2252 from rouault/workaround_appveyor_vs2015_issue
appveyor.yml: workaround vcpkg upstream build issue with VS2015
2020-06-03 11:38:03 +02:00
Andrei Marshalov 7e07589d21 customizations.sql: add entry for OSGM15 geoid_model 2020-06-03 12:21:57 +03:00
Even Rouault b59fd03f11 appveyor.yml: workaround vcpkg upstream build issue with VS2015 (see https://github.com/microsoft/vcpkg/issues/1166) [skip travis] 2020-06-03 10:54:04 +02:00
Kristian Evers b66798a8f3 Merge pull request #2251 from kbevers/doc-deformation
Docs: Use +grids and tif file for deformation examples
2020-06-03 07:40:40 +02:00
Kristian Evers 81602f3860 Docs: Use +grids and tif file for deformation examples 2020-06-02 12:27:29 +02:00
Andrei Marshalov eb9f5483f1 Database: register geoid file for UK added in OSGeo/PROJ-data#25 2020-06-02 12:13:04 +03:00
Even Rouault a0a44ac57e projsync.cpp: fix -Wrange-loop-construct clang10 warnings 2020-05-31 13:25:07 +02:00
Even Rouault d3aaf98292 filemanager.cpp: code reformatting 2020-05-31 13:24:40 +02:00
Even Rouault ad9efb19d3 Database: add concatenated operations for NZGD2000 -> ITRF97/2000/2005/2008/2014 2020-05-30 12:51:29 +02:00
Even Rouault 10d8e9af8d Database: register NZGD2000 -> ITRF96 transformation for NZGD2000 database
Related to https://github.com/OSGeo/PROJ-data/pull/22

An entry is added in the ``other_transformation`` table, using a raw PROJ
string. Later, once the deformation model has been registered in EPSG, we'll
have to add code to map the EPSG transformation method and parameters to
+proj=defmodel

In the meantime, this works pretty well:

```
$ src/projinfo -s EPSG:4959 -t EPSG:7907
Candidate operations found: 1
-------------------------------------
Operation No. 1:

PROJ:NZGD2000-20180701, NZGD2000 to ITRF96 deformation model, unknown accuracy, New Zealand

PROJ string:
+proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=defmodel +model=nz_linz_nzgd2000-20180701.json +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg

WKT2:2019 string:
COORDINATEOPERATION["NZGD2000 to ITRF96 deformation model",
    VERSION["20180701"],
    SOURCECRS[
        GEOGCRS["NZGD2000",
            DATUM["New Zealand Geodetic Datum 2000",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            CS[ellipsoidal,3],
                AXIS["geodetic latitude (Lat)",north,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["geodetic longitude (Lon)",east,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["ellipsoidal height (h)",up,
                    ORDER[3],
                    LENGTHUNIT["metre",1]],
            ID["EPSG",4959]]],
    TARGETCRS[
        GEOGCRS["ITRF96",
            DATUM["International Terrestrial Reference Frame 1996",
                ELLIPSOID["GRS 1980",6378137,298.257222101,
                    LENGTHUNIT["metre",1]]],
            PRIMEM["Greenwich",0,
                ANGLEUNIT["degree",0.0174532925199433]],
            CS[ellipsoidal,3],
                AXIS["geodetic latitude (Lat)",north,
                    ORDER[1],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["geodetic longitude (Lon)",east,
                    ORDER[2],
                    ANGLEUNIT["degree",0.0174532925199433]],
                AXIS["ellipsoidal height (h)",up,
                    ORDER[3],
                    LENGTHUNIT["metre",1]],
            ID["EPSG",7907]]],
    METHOD["PROJ-based operation method: +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=defmodel +model=nz_linz_nzgd2000-20180701.json +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg"],
    USAGE[
        SCOPE["unknown"],
        AREA["New Zealand"],
        BBOX[-55.95,160.6,-25.88,-171.2]],
    ID["PROJ","NZGD2000-20180701"],
    REMARK["New Zealand Deformation Model. Defines the secular model (National Deformation Model) and patches for significant deformation events since 2000"]]
```

```
$ echo "-41 173 0 2016.5" | PROJ_NETWORK=ON src/cct -d 8 +proj=pipeline +step +proj=unitconvert +xy_in=deg +xy_out=rad +step +proj=axisswap +order=2,1 +step +proj=defmodel +model=nz_linz_nzgd2000-20180701.json +step +proj=axisswap +order=2,1 +step +proj=unitconvert +xy_in=rad +xy_out=deg
 -40.99999402   172.99999938    0.00130333     2016.5000
```

```
$ echo "-41 173 0 2016.5" | PROJ_NETWORK=ON src/cs2cs -f "%.8f" EPSG:4959 EPSG:7907
-40.99999402	172.99999938 0.00130333 2016.5
```
2020-05-30 12:51:29 +02:00
Even Rouault 11d2e04051 .travis.yml: disable s390x target since Travis-CI infra is KO regarding this 2020-05-30 12:51:13 +02:00
chrodger f0baddbe63 filemanager.cpp: use non-deprecated SHGetKnownFolderPath() function to get the user writable directory on Windows (#2246)
Fixes #2245
2020-05-29 23:10:37 +02:00
Even Rouault e9a5addacb Merge pull request #2243 from rouault/inverse_wink2
Implement wink2 inverse by generic inversion of forward method
2020-05-29 12:37:48 +02:00
Even Rouault 48b3bd9afe Implement wink2 inverse by generic inversion of forward method
- Move the generic method initiated from adams_ws2 to a
  pj_generic_inverse_2d() method
- Use it in adams_ws2
- Use it in wink2

Fixes https://github.com/qgis/QGIS/issues/35512
2020-05-28 13:51:28 +02:00
Even Rouault 9ff543c4ff Merge pull request #2240 from rouault/fix_identification_epsg_3035
Fix identification of (one of the) ESRI WKT formulations of EPSG:3035
2020-05-25 21:10:18 +02:00
Even Rouault 4ade1b2eb1 Merge pull request #2239 from rouault/register_nc_dittt_Ranc08_Circe
Database: add entry for Ranc08_Circe.mnt grid (New Caledonia)
2020-05-25 19:48:06 +02:00
Even Rouault 172744361c Fix identification of (one of the) ESRI WKT formulations of EPSG:3035
Fixes https://github.com/qgis/QGIS/issues/36111
2020-05-25 19:47:51 +02:00
Even Rouault 263d121a3d Database: add entry for Ranc08_Circe.mnt grid (New Caledonia)
This geoid was added in EPSG 9.8.11 and has been added in PROJ-data
per https://github.com/OSGeo/PROJ-data/pull/21
2020-05-25 17:21:34 +02:00
Even Rouault cfdd474dd8 Merge pull request #2238 from rouault/update_to_epsg_9_8_11
Update to EPSG 9.8.11, ESRI 10.8.1 and import scope and remarks for conversion
2020-05-25 15:59:19 +02:00
Even Rouault bf50f76e1d Database: import scope and remarks for conversion (fixes #2237) 2020-05-24 21:35:13 +02:00
Even Rouault c2654aaf0f Database: update ESRI content to ArcMap 10.8.1 2020-05-24 21:22:19 +02:00
Even Rouault d03f15819b Database: update to EPSG v9.8.11 2020-05-24 21:22:18 +02:00
Even Rouault 4d9fa77bef Database: add a same_source_target_crs column to supersession table
This is in preparation for EPSG 9.8.11 import that supersedes a number of
grid transformation for US transformations, but the superseded and replacement
transformations don't operate on the same (source_crs, target_crs), which is
a bit weird. So in that situation, ignores the supersession.
2020-05-24 21:22:18 +02:00
Even Rouault 5d502d356e Merge pull request #2230 from rouault/limit_peirce_q_to_northern_hemisphere
Limit peirce_q to northern hemisphere, and fix images for adams_hemi, guyou and peirce_q
2020-05-24 20:03:48 +02:00
Jeff McKenna 35dc7d00f9 .travis.yml: enable commit notifications into dedicated 'proj-activity' IRC channel (#2236) 2020-05-19 21:53:19 +02:00
Even Rouault 8a1e831688 Merge pull request #2235 from rouault/check_sqlite3_runtime
Add runtime checking that sqlite3 is >= 3.11
2020-05-19 20:26:04 +02:00
Even Rouault 9d4de5d139 Add runtime checking that sqlite3 is >= 3.11
```
$ LD_LIBRARY_PATH=$HOME/install-sqlite-3.8.2/lib PROJ_DEBUG=1 src/projinfo -s @in.wkt -t @out.wkt --spatial-test intersects >/dev/null
SQLite3 version is 3.8.2, whereas at least 3.11 should be used
```
2020-05-19 19:26:05 +02:00
John Krasting b6b0ae12e3 Zone Definition Fixes for igh_o projection (#2233)
- Central lon for zone 2 should be -d10, not d10
- Extra lobe was missing for zone 11
- New figure generated
- New test suite values generated
2020-05-19 17:22:04 +02:00
Even Rouault 3ee7c9495b Merge pull request #2234 from rouault/fix_2232
Many fixes regarding BoundCRS, CompoundCRS, Geographic3D CRS with non-metre units
2020-05-19 16:53:27 +02:00
Even Rouault b0b33b8447 createOperations(): fix bug when transforming between CompoundCRS and BoundCRS in the general case let to 0 result (contributes to fixes #2232) 2020-05-19 14:21:02 +02:00
Even Rouault b6fc415925 createOperations(): optimization in generated pipeline in a case involving vertical unit change 2020-05-19 14:21:02 +02:00
Even Rouault 5aa99d4974 createOperations(): take correctly into account vertical unit change in a case of transformation between Compound of BoundVerticalCRS to GeographicCRS (contributes to fixes #2232) 2020-05-19 14:21:02 +02:00
Even Rouault 8dc8e1de06 createOperations(): fix wrong optimization in some instances of transforming a BoundCRS to a GeographicCRS (contributes to fixes #2232) 2020-05-19 14:21:01 +02:00
Even Rouault ec3fdd00f1 WKT1 ingestion: fix ingestion of COMPD_CS with ellipsoidal vertical datum and non metre units (contributes to fixes #2232) 2020-05-19 14:20:55 +02:00
Even Rouault 1a71523475 createOperations(): speed optimizations for transforming between a BoundCRS of a datum and the same datum (relates to #2232) 2020-05-19 14:15:47 +02:00
Even Rouault 166a1c681b createOperationsWithDatumPivot(): remove useless code 2020-05-19 14:15:47 +02:00
Even Rouault 4ee2ed65f7 createOperations(): fix 'caching' bugs causing potential exception about Inconsistent chainging of CRS (fixes #2232) 2020-05-19 14:15:46 +02:00
John Krasting 2e5470387d Implemented IGH Oceanic View (#2226)
- The current implementation of the Interrupted Goode Homolosine
  projection emphasizes land area. This is a compliment projection
  that emphasizes ocean area.
- A value of lon0=-160 produces a reasonable real-world map.
2020-05-19 02:04:04 +02:00
Even Rouault 9c501221de Address warnings raised by recent cppcheck 2020-05-17 23:26:24 +02:00
Even Rouault 0403980832 Merge pull request #2206 from rouault/deformation_model_for_merge
Add a +proj=defmodel transformation for multi-component time-based deformation models
2020-05-17 22:07:31 +02:00
Even Rouault b349fa7384 Merge pull request #2229 from rouault/fix_2228
Allow importing WKT1 COMPD_CS with a VERT_DATUM[Ellipsoid,2002]
2020-05-17 20:47:15 +02:00
Even Rouault 95e8777618 geodetictiffgrids.rst: update with deformation model 2020-05-16 17:53:13 +02:00
Even RouaultandChris Crook 697b93dbad Add a +proj=defmodel transformation for multi-component time-based deformation models
Fixes #1001

Co-authored-by: Chris Crook <ccrook@linz.govt.nz>
2020-05-16 17:53:13 +02:00
Even Rouault 4054c3b884 gie: fix loss of precision when parsing big values such as in projected coordinates 2020-05-16 17:52:49 +02:00
Even Rouault be6b6d7ec9 pj_bilinear_interpolation_three_samples(): add comments 2020-05-16 17:52:48 +02:00
Even Rouault f7f3b98a53 plotdefs.json: update validty area for adams_hemi, guyou and peirce_q, and regenerate associated images 2020-05-16 17:50:15 +02:00
Even Rouault 853db32089 plot.py: make path to 'proj' executable configurable with PROJ_EXE environment variable 2020-05-16 17:50:15 +02:00
Even Rouault ce38ade494 peirce_q: limit input to positive latitudes
Otherwise it returns junk (negative latitudes are mapped to
the same location as positive latitudes)

I'm a bit confused by PROJ peirce_q implementation. Looking at
the projection of the world, it looks like this matches the diamond
formulation of the right map shown at
https://desktop.arcgis.com/en/arcmap/latest/map/projections/peirce-quincuncial.htm,
but limited to the inner square of this diamond (which corresponds
to the northern hemisphere). We lack the 4 triangles on left, top,
right and bottom for the southern hemisphere. Furthermore, this
formulation of peirce_q does not seem to have the quincuncial
property of the square formulation (left images of the above ESRI
doc), or the one at https://en.wikipedia.org/wiki/Peirce_quincuncial_projection ...
2020-05-16 17:49:26 +02:00
Even Rouault 2d6b5c0a9a Merge pull request #2227 from rouault/fix_2225
createOperations(): when converting CompoundCRS<-->Geographic3DCrs, do not use discard change of ellipsoidal height if a Helmert transformation is involved
2020-05-16 16:20:10 +02:00
Even Rouault 6a3371ea66 Adjustments to deal with non-conformant WKT1 LAS COMPD_CS[] (refs #2171) 2020-05-16 15:51:01 +02:00
Even Rouault f57475aa3b Allow importing WKT1 COMPD_CS with a VERT_DATUM[Ellipsoid,2002], and exporting it back as such (on the same object) (fixes #2228) 2020-05-16 15:36:06 +02:00
Even Rouault 960285f974 test: improve formatting of expected result 2020-05-16 13:18:08 +02:00
Even Rouault e3e246854a createOperations(): improve operation name when inverting a 'axis order change (geographic3D horizontal)' operation 2020-05-16 13:17:08 +02:00
Even Rouault e3bbef8283 createOperations(): when converting CompoundCRS<-->Geographic3DCrs, do not use discard change of ellipsoidal height if a Helmert transformation is involved (fixes #2225) 2020-05-16 13:16:27 +02:00
Even Rouault fe3ffe8d5f createOperations(): be stricter when considering if an operation is a null one 2020-05-16 00:54:48 +02:00
Even Rouault 330b206624 Merge pull request #2224 from rouault/fix_2202
Make projinfo --3d --boundcrs-to-wgs84 better work (fixes #2202)
2020-05-15 11:58:17 +02:00
Even Rouault 6c5164eb49 Merge pull request #2223 from rouault/fix_2221
Avoid 2 warnings about missing database indices
2020-05-15 11:58:05 +02:00
Even Rouault 40bceca79f Merge pull request #2222 from rouault/fix_2217
Fixes related to CompoundCRS and BoundCRS
2020-05-15 11:57:52 +02:00
Even Rouault a2f8fd1a21 Make projinfo --3d --boundcrs-to-wgs84 better work (fixes #2202) 2020-05-15 00:40:25 +02:00
Even Rouault 77a8a9e01c AuthorityFactory::createObjectsFromName(): request SQL query to avoid warning about lack of object_view(table_name) index 2020-05-15 00:21:25 +02:00
Even Rouault f167d3fa6e Database: add index on alias_name(code) 2020-05-15 00:21:25 +02:00
Even Rouault e86ce263a9 Add SQLite3 debug logging if PROJ_LOG_SQLITE3 env var is defined 2020-05-15 00:21:24 +02:00
Even Rouault bc52bdcd51 createObjectsFromName(): fix when objectType = { GEOCENTRIC_CRS } 2020-05-14 22:56:37 +02:00
Even Rouault a918082e58 BoundCRS::create(): simplify 2020-05-14 20:21:13 +02:00
Even Rouault 056226ee66 createOperations(): optimize BoundCRS to BoundCRS of vertical CRS using the same vertical datum 2020-05-14 20:21:13 +02:00
Even Rouault 5871876450 createOperations(): fix exceptions related to CompoundCRS and BoundCRS 2020-05-14 20:21:13 +02:00
Even Rouault 69ee50ca36 Grid listing from a CoordinateOperation: take into account several grid names separated by comma (e.g. '+grids=foo1.gtx,foo2.gtx') 2020-05-14 18:55:41 +02:00
Even Rouault 70424a9a17 WKT1 parsing: fix parsing of CompoundCRS that has a TOWGS84 for horizontal and PROJ4_GRIDS for vertical (refs #2217) 2020-05-14 18:55:39 +02:00
Even Rouault 11012ebcc9 WKT/PROJJSON parsing: fix BoundCRS/PROJ4_GRIDS handling for vertical component when vertical CRS has non metre unit (fixes #2217) 2020-05-14 18:51:40 +02:00
Even Rouault 672b610dbc Merge pull request #2218 from rouault/wgs84_crs_alias
Database: add a 'WGS84' alias for the EPSG:4326 CRS (fixes #2216)
2020-05-14 16:10:02 +02:00
Even Rouault bf6020eee5 Database: add a 'WGS84' alias for the EPSG:4326 CRS (fixes #2216) 2020-05-14 11:35:26 +02:00
Even Rouault 0c9cf39297 Merge pull request #2215 from rouault/fix_2214
ProjectedCRS::identify(): fix identification of EPSG:3059  (fixes #2214)
2020-05-14 00:25:42 +02:00
Even Rouault 4e9d559d6c ProjectedCRS::identify(): fix identification of EPSG:3059 from 'LKS92_Latvia_TM' name, and other cleanups/improvements (fixes #2214) 2020-05-13 22:06:02 +02:00
Even Rouault 475e7fd9f1 Merge pull request #2213 from rouault/travis_s390x
.travis.yml: add linux_s390x (big endian)
2020-05-12 17:26:24 +02:00
Even Rouault ba8663c59c Merge pull request #2212 from rouault/typo_fixes
scripts/fix_typos.sh: fix URLs to dictionaries, and fix typos spotted
2020-05-12 17:26:12 +02:00
Even Rouault cf4c67c2b2 .travis.yml: add linux_s390x 2020-05-10 20:11:33 +02:00
Even Rouault b7f8a012bf scripts/fix_typos.sh: fix URLs to dictionaries, and fix typos spotted 2020-05-09 18:48:10 +02:00
Even Rouault 72fc6ab0f5 .travis.yml: disable notifications as they are probably more spam than useful [skip appveyor] (#2209) 2020-05-06 20:53:39 +02:00
PROJ-BOTandgithub-actions[bot] de323f98dc resource_file.rst: fix link to crs2crsgrid.py [skip appveyor] (#2208)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2020-05-04 18:50:15 +02:00
Even Rouault c405904001 grids: add support for projected grids for GenericShiftGridSet 2020-05-04 12:55:54 +02:00
Even Rouault f291c50f17 Doc: fix/hacks for compatibility with Breathe 4.17.0 [skip appveyor] (#2204) 2020-05-02 15:22:13 +02:00
Kristian Evers aa054d5cf1 Update NEWS for 7.0.1 2020-05-01 10:44:19 +02:00
Kristian Evers 9a1a00b3c0 Add a few notes to HOWTORELEASE 2020-05-01 10:40:44 +02:00
Kristian Evers e8a1a52098 doc: update download and news pages with new releases 2020-05-01 10:40:01 +02:00
Even Rouault 3cd07b2194 createFromProjString(): handle default parameters of '+krovak +type=crs', and handle +czech correctly (fixes #2199) (#2200)
* createFromProjString(): handle default parameters of '+krovak +type=crs', and handle +czech correctly (fixes #2199)

* Doc: add default values for Krovak
2020-04-28 11:36:29 +02:00
Even Rouault 39cd68f661 pipeline initialization: avoid deep recursion on corrupted PROJ string like https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=21889 2020-04-26 16:47:00 +02:00
Kristian Evers d6b3a52436 Merge pull request #2196 from kbevers/cs2cs-improve-rs-options
Update cs2cs options -r/-s to reflect axis ordering of PROJ >6
2020-04-26 15:11:53 +02:00
Kristian EversandGreg Troxel 8b41154efa Update cs2cs options -r/-s to reflect axis ordering of PROJ >6
Originally proposed by Greg Troxel on the mailing list:
https://lists.osgeo.org/pipermail/proj/2020-April/009597.html

Co-authored-by: Greg Troxel <gdt@lexort.com>
2020-04-26 14:32:39 +02:00
Even Rouault 54a5329036 Merge pull request #2195 from rouault/map_esri_grid_names
Database: map more ESRI grid names
2020-04-26 13:42:47 +02:00
Even Rouault 1750bb74c1 Database: map more ESRI grid names 2020-04-26 12:23:18 +02:00
Even Rouault fa55e657d1 projinfo: do not emit warnings about missing grids in quiet mode 2020-04-25 23:37:34 +02:00
Even Rouault ee355b8619 include/proj/util.hpp: recognized a PROJ_INTERNAL_CPP_NAMESPACE to use osgeo::internalproj namespace 2020-04-25 17:29:35 +02:00
Even Rouault 1c236551a2 Update proj_symbol_rename.h 2020-04-25 17:03:44 +02:00
Even Rouault 9f896faa5c Merge pull request #2193 from rouault/testcpp
postinstall checks: check that we include installed C++ headers (refs #2182)
2020-04-25 16:22:22 +02:00
Even Rouault 104011fe6a postinstall checks: check that we include installed C++ headers (refs #2182) 2020-04-25 15:29:47 +02:00
Even Rouault 4f1a05aa95 Tune support for WKT1_GDAL with netCDF rotated pole formulation. Follow-up to 40466db404 2020-04-24 23:28:08 +02:00
Even Rouault 8aba4d24b7 Doc: fixes for Sphinx 3.0 compat [skip appveyor] (#2191)
Those changes are also compatible with Sphinx 2.x

The use of .. cpp:enumerator::  for a C enum is questionable,
but .. c:member:: no longer works in Sphinx 3 for the value of
a C enum, but .. c:enumerator:: is Sphinx 3 only
( https://www.sphinx-doc.org/en/master/usage/restructuredtext/domains.html#directive-c-enumerator )

Sphinx 3 is also more strict with the use of cross-reference
to C types. It rejects cross-references to things like
`` :c:type:`int` `` since this isn't a type we actually define.
2020-04-24 18:42:05 +02:00
Even Rouault 40466db404 Fix support of WKT1_GDAL with netCDF rotated pole formulation (#2185)
Contributes to fixing issue raised in
https://lists.osgeo.org/pipermail/gdal-dev/2020-April/052003.html
2020-04-23 21:41:00 +02:00
Even Rouault b0e5448982 io.hpp: avoid dependency to proj_json_streaming_writer.hpp (fixes #2182) (#2183) 2020-04-23 19:15:22 +02:00
Even Rouault f5f0efe5eb .travis.yml: switch to bionic to restore i386 builds with gcc8 (fixes #2175)
Credits to @sebastic for his suggestion to try bionic and use aptitude
instead of apt !
2020-04-23 12:10:59 +02:00
Even Rouault db12d334cf .travis.yml: give-up with i386 builds on linux_gcc8 (refs #2175) (#2179)
My conclusion after numerous frustrating trial and error is that
there's something that has changed in the ppa:ubuntu-toolchain-r/test
that conflicts with the i386 packages.
2020-04-23 00:25:42 +02:00
Even Rouault 529a5c098c PROJ4 string import: take into correctly non-metre unit when the string looks like the one for WGS 84 / Pseudo Mercator (fixes https://github.com/OSGeo/gdal/issues/2433) (#2174) 2020-04-22 19:25:07 +02:00
Even Rouault 94aa1fc5ea Merge pull request #2168 from rouault/gie_strict_mode
gie: implement a strict mode with <gie-strict> </gie-strict> (fixes #2158)
2020-04-22 11:26:30 +02:00
Even Rouault 47458427c9 gie: implement a strict mode with <gie-strict> </gie-strict> (fixes #2158)
In that mode:
* All non-comment/decoration lines must start with a valid tag
* Commands split on several lines should be terminated with " \"
2020-04-21 23:05:59 +02:00
Even Rouault 5142bfbf72 Typo fixes in code comments [ci skip] 2020-04-21 20:47:05 +02:00
Even Rouault e493a5c17b Add limited support for non-conformant WKT1 LAS COMPD_CS[] (#2171)
* Allow importing EPSG:{horizontal_code}+{geographic_code} and
  turn it into valid Geographic 3D or Projected 3D CRS internally
* Allow importing WKT1 COMPD_CS[] with above structure
* On an object imported that way, allow exporting to WKT1_GDAL,
  with this non-standard structure of a horizontal CRS + geographic CRS
2020-04-21 20:45:49 +02:00
Even Rouault ea18e39b3b Code formatting fixes 2020-04-21 14:05:20 +02:00
Alan D. Snow 5e3aba396b Moved proj_context_get_url_endpoint & proj_context_get_user_writable_directory to proj.h (#2162)
Fixes #2028
2020-04-20 10:03:41 +02:00
Even Rouault b16b966b74 Merge pull request #2166 from rouault/lcea_ellipsoidal_wkt1_ingestion
Ingestion of WKT1_GDAL: correctly map 'Cylindrical_Equal_Area'
2020-04-19 15:46:43 +02:00
Even Rouault 2998a46d74 Doxyfile: remove TCL_SUBST variable considered obsolete by latest Doxygen 2020-04-19 15:13:45 +02:00
Even Rouault d667cadb72 travis/osx/before_install.sh: 'brew install graphviz' for missing 'dot' program 2020-04-19 14:47:20 +02:00
Even Rouault 605c01d255 Ingestion of WKT1_GDAL: correctly map 'Cylindrical_Equal_Area'
Map it to 'Lambert Cylindrical Equal Area' / EPSG:9835 non-spherical
method, when the ellipsoid is not a sphere. And rationalize the
handling of this for other methods with spherical vs non-spherical formulations
2020-04-19 13:27:43 +02:00
Kristian Evers dca24574f7 Merge pull request #2165 from jidanni/patch-2
Update proj.rst
2020-04-19 13:04:55 +02:00
積丹尼 Dan Jacobson f12bca692d Update proj.rst
See https://github.com/OSGeo/PROJ/pull/2164/
2020-04-19 18:23:34 +08:00
Even Rouault b7f5e7ea75 ellps_shape: catch corner case where es would be set to NaN. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=21761 2020-04-17 20:37:05 +02:00
Kristian Evers 7920a3fed1 Merge pull request #2159 from mwtoews/ci
AppVeyor: use Ninja generator, cache vcpkg installed packages
2020-04-17 20:29:13 +02:00
Even Rouault 8cce7b5702 createFromCoordinateReferenceSystemCodes(): 'optimization' to avoid using C++ exceptions (#2160) 2020-04-17 20:22:33 +02:00
Mike Taves a604ac8cda AppVeyor: use Ninja generator, cache vcpkg [skip travis] 2020-04-17 15:54:16 +12:00
Even Rouault 115c3db6bf Merge pull request #2030 from rouault/auto_sel_of_tmerc_alg
tmerc/utm: add a +algo=auto/evenden_snyder/poder_engsager parameter
2020-04-16 19:57:52 +02:00
Even Rouault ff8258bcdc Merge pull request #2157 from rouault/map_esri_54098
Adams Square II: map ESRI WKT to PROJ string, and implement iterative inverse method
2020-04-16 19:02:14 +02:00
Even Rouault 0cd2912037 Implement an iterative inverse method for +proj=adams_ws2 2020-04-16 17:47:18 +02:00
Even Rouault a8fdadfa3f Map ESRI WKT for Adams_Square_II to +proj=adams_ws2 2020-04-16 12:09:54 +02:00
Even Rouault 000fa21d07 Merge pull request #2155 from rouault/fix_2143
createOperations(): do not remove ballpark transformation if there are only grid based operations, even if they cover the whole area of use (fixes #2143)
2020-04-16 00:44:39 +02:00
Kristian Evers c91966953d Merge pull request #2148 from kbevers/add_adams_projections
Add square conformal projections from libproject
2020-04-15 19:19:32 +02:00
Kristian Evers fd17c604bf gitignore: add latex dir generated by sphinx [skip ci] 2020-04-15 09:31:22 +02:00
Kristian Evers e4bf822158 Add square conformal projections from libproject
This commit adds five new projections to PROJ:

    adams_hemi: Adams Hemisphere in a Square
    adams_wsI:  Adams World in a Square I
    adams_wsII: Adams World in a Square II
    guyou:      Guyou
    peirce_q:   Pierce Quincuncial

The code originates from Gerry Evendens libproject and has been adapted
to work with modern PROJ. To ensure that the modified code works as
intended extensive test data has been created using libproject and
sproj so that no errors occured when porting from libproject to PROJ.
The test data is wrapped in a gie files. All test cases reproduce
results from libproject at the mm level.
2020-04-15 09:10:01 +02:00
Even Rouault 9645697287 tmerc/utm: add a +algo=auto/evenden_snyder/poder_engsager parameter
The default remains +alg=poder_engsager.
This default value can be changed in proj.ini

+algo=auto will use Evenden Synder implementation if the error in
doing so remains below 0.1 mm on Earth-sized ellipsoid
2020-04-15 01:07:18 +02:00
Even Rouault 4be093e9d2 C API: add proj_operation_factory_context_set_allow_ballpark_transformations() 2020-04-15 00:00:11 +02:00
Even Rouault bc703787f1 projinfo: make it use the new C++ method to hide ballpark transformations 2020-04-14 23:59:57 +02:00
Even Rouault eadbb9d620 lookForGridAlternative(): fix bug with Dutch 2008 grids 2020-04-14 23:59:26 +02:00
Even Rouault 1409b00317 createOperations(): do not remove ballpark transformation if there are only grid based operations, even if they cover the whole area of use (fixes #2143) 2020-04-14 23:58:51 +02:00
Martin Raspaud 767a997658 Robinson inverse projection: error on out of domain values (#2151) 2020-04-14 22:09:40 +02:00
Even Rouault 5d94742cd7 Merge pull request #2147 from rouault/speedup_again_fwd_extented_tmerc
Extended tmerc: speed-up forward path by ~5%
2020-04-14 18:13:59 +02:00
Even Rouault 43d11bd830 ProjectedCRS identification: deal with switched 1st/2nd std parallels for LCC_2SP (#2150)
As switching the 2 standard parallels for Lambert Conformal Conic 2 standard
parallels result in a equivalently numerical projection definition, take
that into account when querying the database.
2020-04-14 18:13:35 +02:00
Even Rouault 5b017a8a78 code format fix [skip ci] 2020-04-14 12:51:13 +02:00
Even Rouault 97366a706c Extended tmerc: speed-up forward path by ~5%
Saves a useless sqrt() call
2020-04-13 11:49:56 +02:00
Kristian Evers 031b6ab95e Merge pull request #2144 from kbevers/proj_degree_inoutput
Add proj_degree_input() and proj_degree_output()
2020-04-13 10:32:05 +02:00
Even Rouault b0215f7890 Merge pull request #2146 from rouault/remove_geocent
Remove old geocent.h/.cpp code
2020-04-12 15:46:45 +02:00
Even Rouault ded96dfeb1 sch: simplify code 2020-04-12 15:05:00 +02:00
Kristian Evers ffe2997000 Merge pull request #2145 from rouault/speedup_inv_cart
Inverse cart: speed-up computation by 33%
2020-04-12 13:24:51 +02:00
Kristian Evers 925ae56c40 Add proj_degree_input() and proj_degree_output()
Equivalent to proj_angular_input() and proj_angular_output() but
checking for degree units instead. proj_create_crs_to_crs() rarely, if
ever, returns pipelines that has radians as input or output so using
proj_angular_*() is not a useful check for io units of pipelines.

These two new functions should make life a bit easier for users that
generally store there angular coordinates in radians.

Closes #2027
2020-04-12 12:20:44 +02:00
Even Rouault 67487b574b Remove old geocent.h/.cpp code
Last user, apart from transform.cpp, was the SCH projection. Modify it
to use cart instead.

And move content of geocent.h and .cpp into transform.cpp directly, so
that it can be later wiped up easily.
2020-04-12 00:11:57 +02:00
Even Rouault 78c1df51e0 Inverse cart: speed-up computation by 33%
Saves 2 sincos() and 1 atan2() calls.

With the following bench
```
 #include "proj.h"
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>

int main(int argc, char* argv[])
{
    if( argc != 2 ) {
        fprintf(stderr, "Usage: bench_inv_cart fwd/inv\n");
        exit(1);
    }
    PJ* p = proj_create(0, "+proj=cart");
    const int dir = strcmp(argv[1], "inv") == 0 ? PJ_INV : PJ_FWD;
    PJ_COORD coord;
    if( dir == PJ_FWD )
    {
        coord.xyz.x = 3.14159/2;
        coord.xyz.y = 3.14159/2;
        coord.xyz.z = 100;
    }
    else
    {
        coord.xyz.x = 3e6;
        coord.xyz.y = 3e6;
        coord.xyz.z = 3e6;
    }
    for(int i = 0; i < 10* 1024 * 1024; i++ )
    {
        proj_trans(p, dir, coord);
    }

    proj_destroy(p);
    return 0;
}
```

On Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz
Time before: 2.37s
Time after:  1.57s
2020-04-11 19:37:55 +02:00
Even Rouault 21ebdfb89b proj_create(): improve error message in case of PJ* failure instanciation 2020-04-10 20:23:39 +02:00
Even Rouault c2751ebc4f createFromPROJString(): ignore +wktext in '+init=epsg:XXX +wktext' string (refs https://github.com/OSGeo/gdal/issues/2392) 2020-04-09 11:14:18 +02:00
Even Rouault dca4be189c Code formatting fix [skip ci] 2020-04-08 11:49:08 +02:00
Mike Taves 2eac355c73 Test GCC 4.8 and CMake 3.9; resolve a few shadowed declaration warnings 2020-04-07 22:01:10 +02:00
Even Rouault 0853daaeb1 Database: update to EPSG v9.8.9 2020-04-07 19:19:37 +02:00
Even Rouault 942709407e appveyor.yml: reduce to 2 configurations (still testing the same number of variables) [skip travis] (#2133) 2020-04-07 13:06:02 +12:00
Even Rouault 9b6a708df7 Merge pull request #2135 from rouault/fix_master_build_alpine
autoconf build: fix build on Alpine 3.11 where __attribute__((target_clones("fma","default"))) doesn't work for some reason
2020-04-06 20:23:38 +02:00
Even Rouault 5396b72e22 autoconf build: fix build on Alpine 3.11 where __attribute__((target_clones("fma","default"))) doesn't work for some reason 2020-04-06 19:26:40 +02:00
Even Rouault baf9b82254 Merge pull request #2134 from rouault/refactor_mlfn
Move inline code for optimize mlfn from tmerc to mlfn.hpp to avoid code duplication
2020-04-06 19:26:18 +02:00
Even Rouault 1005d96015 travis/osx/before_install.sh: use fixed version of sphinx and breathe to avoid build failure 2020-04-06 15:46:17 +02:00
Even Rouault 60f1efaafb Move inline code for optimize mlfn from tmerc to mlfn.hpp to avoid code duplication 2020-04-06 15:32:33 +02:00
Even Rouault 89d9bfd0f9 glossary.rst: fix recent typo [skip appveyor] 2020-04-04 21:50:51 +02:00
Even Rouault 0ff1190924 Merge pull request #2127 from rouault/projinfo_hide_ballpark
projinfo: add a --hide-ballpark option
2020-04-04 19:27:26 +02:00
Even Rouault 1f792e6b9c hgridshift/vgridshift: defer grid opening when grid has already been opened
Relates to #2115

With the fix of https://github.com/OSGeo/PROJ/pull/2128, transforming between
EPSG:4326+3855 and EPSG:4269+5703 leads to many operations with many grids,
and opening a file handle for each operation saturates the limit of 1024
file handles opened simunalteously. This fix defers grid opening when a
transformation has already been instanciated with the same grid.
2020-04-04 19:23:53 +02:00
Even Rouault 8aab6fd948 createOperations(): improve results of compoundCRS to compoundCRS case (fixes #2115) 2020-04-04 19:23:22 +02:00
Even Rouault 335d9367fd Doc: link projinfo to ballpark transformation term 2020-04-04 13:17:15 +02:00
Even Rouault ef3a387abd Doc: define 'Ballpark transformation' 2020-04-04 13:17:02 +02:00
Even Rouault 99a2d5f248 projinfo: add a --hide-ballpark option 2020-04-04 11:27:59 +02:00
Even Rouault 670eab68f2 Merge pull request #2126 from rouault/createFromUserInput_compoundCRS_from_names
createFromUserInput(): allow compound CRS with the 2 parts given by names, e.g. 'WGS 84 + EGM96 height'
2020-04-04 01:28:11 +02:00
Even Rouault bb770de3b7 createFromUserInput(): allow compound CRS with the 2 parts given by names, e.g. 'WGS 84 + EGM96 height' 2020-04-03 19:50:48 +02:00
Even Rouault 1a8933942c .travis.yml: fix issue with ubuntu-toolchain-r-test source 2020-04-03 14:32:41 +02:00
Even Rouault f4827e0a3b Make sure that importing a Projected 3D CRS from WKT:2019 keeps the base geographic CRS as 3D (fixes #2122) 2020-04-03 10:05:48 +02:00
Even Rouault d2467ab2af ESRI_WKT ingestion: make sure to identify to non-deprecated EPSG entry when possible (fixes #2116) 2020-03-30 23:05:00 +02:00
Even Rouault a837eaf033 Merge pull request #2052 from rouault/speedup_phi2
pj_phi2(): speed-up computation (and thus inverse ellipsoidal Mercator and LCC)
2020-03-30 19:07:10 +02:00
Even Rouault da32ee9459 Database: fix registration of custom entries of grid_transformation_custom.sql for geoid grids (fixes #2112) 2020-03-30 12:57:03 +02:00
Even Rouault 64946ab103 Fix working of Helmert transform between the horizontal part of 2 compoundCRS (fixes #2108) 2020-03-30 00:37:17 +02:00
Even Rouault b84c9d0cb6 Merge pull request #2039 from rouault/speedup_snyder_tmerc
Approximate tmerc (Snyder): speed optimizations
2020-03-29 18:43:37 +02:00
Even Rouault 455e6304d0 Merge pull request #2036 from rouault/speedup_poder_engsager_tmerc
Extended tmerc (Poder/Engsager): speed optimizations
2020-03-29 18:39:44 +02:00
Mike Taves 54fdb90a20 CMake: prefer to use use PROJ_SOURCE_DIR and PROJ_BINARY_DIR (#2100)
* Use instead of CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR
* Also PROJECT_SOURCE_DIR and PROJECT_BINARY_DIR, which are similar
* Set properties with a list variable rather than a long line
* Correction to 'proj_test_set_properties' function, rename ENVIRONMENT:
  - PROJ_IGNORE_USER_WRITABLE_DIRECTORY     (ignored)
  - PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY  (used by filemanager.cpp)
2020-03-28 12:44:30 +13:00
Even Rouault 238f48fb7c Fix identification of projected CRS whose name is close but not strictly equal to a ESRI alias (fixes #2099) 2020-03-27 22:36:08 +01:00
Pedro Venancio ec206a4d50 Add entries in grid_alternatives for Portugal grids coming from ESRI entries (#2102)
Fixes #2096
2020-03-27 15:34:08 +01:00
Martin Dobias 554a7976b0 Use jtsk03-jtsk horizontal grid from CDN 2020-03-26 23:16:18 +01:00
Even Rouault fbc654ab0c EngineeringCRS: when exporting to WKT1_GDAL, output unit and axis (fixes https://github.com/OSGeo/gdal/issues/2347) 2020-03-25 15:15:29 +01:00
Even Rouault 23d2941ef3 ESRI WKT import / identification: special case for NAD_1983_HARN_StatePlane_Colorado_North_FIPS_0501 with Foot_US unit (fixes #2086) 2020-03-24 10:18:17 +01:00
Even Rouault 9af705d630 proj_get_suggested_operation(): extra fix to behave similarly to proj_create_crs_to_crs_from_pj() 2020-03-23 19:26:56 +01:00
Mike Taves b76acd354c Add post-install checks for CMake and Autotools/pkg-config (#2077)
* Checks CMake's find_package(PROJ) and find_package(PROJ4)
* Checks pkg-config used with a Makefile (Linux and macOS only)
* Use proj.h / libproj with a simple 'testappprojinfo'
2020-03-21 14:16:00 +13:00
Even Rouault 56b0d6c506 Merge pull request #2085 from rouault/fix_proj_get_suggested_operation_with_operations_without_area_of_use
proj_get_suggested_operation(): fix when there are only operations without area of use
2020-03-20 09:36:41 +01:00
Even Rouault 5aa3d9fce2 proj_get_suggested_operation(): fix when there are only operations without area of use 2020-03-19 23:17:59 +01:00
Mike Taves 0c5802e0f8 CMake: fix bug with find_package(PROJ) with macOS 2020-03-18 13:19:39 +01:00
Even Rouault 7bb5d00b21 cs2cs: don't require +to for '{source_crs} {target_crs} filename...' syntax (fixes #2012) 2020-03-18 09:35:16 +01:00
Even Rouault 0d630d411a Merge pull request #2079 from rouault/deprecate_proj_list_angular_units
Deprecate proj_list_angular_units(). Follow-up of https://github.com/OSGeo/PROJ/pull/2065
2020-03-17 16:27:02 +01:00
Even Rouault ac37a9127a Deprecate proj_list_angular_units(). Follow-up of https://github.com/OSGeo/PROJ/pull/2065 2020-03-17 12:03:09 +01:00
Kristian EversandMike Taves 781dedec1f Align install.rst with current version (#2075)
Using {PROJVERSION} and {PROJDATAVERSION} substitutes the macro for the current
version numbers of PROJ and PROJ-data.

Rephrased a few sections regarding grid packages.

Closes #2072

Co-authored-by: Mike Taves <mwtoews@gmail.com>
2020-03-17 10:21:56 +01:00
Even Rouault 1707090212 Merge pull request #2068 from rouault/add_proj_get_suggested_operation
Add proj_get_suggested_operation()
2020-03-16 17:56:42 +01:00
Even Rouault 6cfc2521d6 Merge branch 'master' into add_proj_get_suggested_operation 2020-03-16 17:56:29 +01:00
Even Rouault 175cbad0a7 Merge pull request #2065 from rouault/add_proj_get_units_from_database
Add proj_get_units_from_database() (fixes #2004)
2020-03-16 17:55:36 +01:00
Even Rouault 78eaa34a48 Fix build with libtiff master (libtiff > 4.1.0) 2020-03-15 11:51:00 +01:00
Even Rouault 2247841879 Tag proj_list_units() as deprecated 2020-03-13 11:45:47 +01:00
Even Rouault f0d6b64fee Add proj_get_suggested_operation()
Return the index of the operation that would be the most appropriate to
transform the specified coordinates.

This operation may use resources that are not locally available, depending
on the search criteria used by proj_create_operations().

This could be done by using proj_create_operations() with a punctual bounding
box, but this function is faster when one needs to evaluate on many points
with the same (source_crs, target_crs) tuple.
2020-03-13 08:45:56 +01:00
Mike Taves d8835f1288 Autotools/pkg-conf: Define datarootdir 2020-03-12 23:46:34 +01:00
Even Rouault 35425763e7 Add proj_get_units_from_database() (fixes #2004) 2020-03-12 19:40:35 +01:00
Even Rouault 66f81bec4a Fix build with gcc 4.8.5 (fixes #2062) 2020-03-12 19:38:24 +01:00
Even Rouault ca3caf0e97 Database: register grids for New Caledonia added per https://github.com/OSGeo/PROJ-data/pull/16 2020-03-12 11:05:13 +01:00
B R S Recht 12a0b2483c Add note about orientation of control points 2020-03-12 11:03:24 +01:00
Even Rouault 3a69b7be2f ProjectedCRS::identify(): tune it to better work with ESRI WKT representation of EPSG:2193
Adresses https://github.com/OSGeo/gdal/issues/2303 by raising the
identification confidence from 25% to 90% (90% means equivalent for
all purposes, but name not strictly the EPSG official one)
2020-03-11 18:16:36 +01:00
Even Rouault afa573f464 .cirrus.yml: disable ccache as cache uploading can be super slow 2020-03-11 18:16:20 +01:00
Even Rouault 94defd1a72 pj_phi2(): speed-up computation (and thus inverse ellipsoidal Mercator and LCC)
This does not change the numeric values returned by the method,
as far as I could see on a few samplings.

The tricks used save a call to sin() and atan() at each iteration.

This directly affects speed of inverse Mercator and LCC (among others),
in their ellipsoidal formulation.

Timings on inverse Mercator show a 31% speed-up at mid-latitudes
where pj_phi2() needs 5 iterations, and 24% at latitudes close to 0 or
90deg where it needs one iteration.
2020-03-11 11:18:23 +01:00
Even Rouault aa71df059f Doc: use 'ellipsoidal' to refer to the ellipsoidal formulation (to be opposed to the spherical one)
Instead of 'elliptical'.
Was suggested by @cffk in https://github.com/OSGeo/PROJ/pull/2030#issuecomment-596132341

An elliptical projection is a projection whose global shape fits inside an
ellipsoid, like Mollweide. At least according to
https://www.merriam-webster.com/dictionary/elliptical%20projection
and
https://en.wikipedia.org/wiki/Mollweide_projection
2020-03-11 09:22:32 +01:00
Even Rouault ba67e2c86d data/Makefile.am: remove bashism 2020-03-10 21:52:35 +01:00
Even Rouault dc4acc001e utm/ups: make sure to set errno to PJD_ERR_ELLIPSOID_USE_REQUIRED if es==0
ENOMEM was wrongly set after setting PJD_ERR_ELLIPSOID_USE_REQUIRED

Note: it is a bit strange to forbid the pure spherical case whereas the
maths would allow it. I presume this is due to the typical usage of those
methods.
2020-03-10 18:01:43 +01:00
Colin Doig fc1a72314c fix documentation for proj_trans_generic(), see https://github.com/OSGeo/PROJ/issues/2032 (#2037) 2020-03-10 12:17:22 +01:00
Even Rouault 4b606565b9 Merge pull request #2040 from rouault/esri_map_Transverse_Mercator_Complex
Map ESRI Transverse_Mercator_Complex to Transverse Mercator
2020-03-10 12:16:08 +01:00
Even Rouault 746c8aa17a Map ESRI Transverse_Mercator_Complex to Transverse Mercator
According to https://gis.stackexchange.com/questions/226679/complex-utm-projection
it is highly likely that Transverse_Mercator_Complex corresponds to our
extended/enhanced/Poder-Engsager transverse mercator method (etmerc), or something
similarly precise. So we can map that to the standard Transverse Mercator
method, since etmerc is used for it.
2020-03-09 23:17:11 +01:00
Even Rouault d9b1db0ff1 Approximate tmerc (Snyder): speed optimizations
fwd: 7% faster on Core-i7@2.6GHz (with FMA triggered), 22% faster on GCE Xeon@2GHz (with FMA)
inv: 31% faster on Core-i7@2.6GHz (with FMA triggered), 60% faster on GCE Xeon@2GHz (with FMA)

The optimizations consists in different things:
- optionaly use the FMA (Fused Multiply Addition) instruction set with gcc >= 6.
  Binaries are generated with the standard instruction set (SSE/SSE2),
  and with one variant with FMA, and the appropriate version is selected automatically
  at runtime. This gives a modest speedup, but measurable. The speedup is more
  obvious on lower clocked CPU.
- inline mlfn and inv_mlfn
- for inv_mlfn avoid recomputation of sin()/cos() at each iteration stage,
  by observing that the argument changes in modest way at each iteration,
  and using approximation of sin()/cos(). The differences due to that approximation
  are way below the 1e-11 tolerance threshold.

Different in results are neglectable (only found in areas where the approximations
of the Snyder formulas are already no longer valid)

Before:
$ echo 8e5 9e6 | src/proj -d 12 +proj=utm +zone=31 -I +approx |  src/proj -d 12 +proj=utm +zone=31 +approx
799997.896522093331	8999999.520601103082
$ echo 8e5 5e6 | src/proj -d 12 +proj=utm +zone=31 -I +approx |  src/proj -d 12 +proj=utm +zone=31 +approx
800000.000007762224	4999999.999971268699
$ echo 18e5 9e6 | src/proj -d 12 +proj=utm +zone=31 -I +approx |  src/proj -d 12 +proj=utm +zone=31 +approx
1079182.990696100984	8661150.574729491025
$ echo 18e5 5e6 | src/proj -d 12 +proj=utm +zone=31 -I +approx |  src/proj -d 12 +proj=utm +zone=31 +approx
1799997.510861013783	4999999.567328464240

After:
$ echo 8e5 9e6 | src/proj -d 12 +proj=utm +zone=31 -I +approx |  src/proj -d 12 +proj=utm +zone=31 +approx
799997.896522093331	8999999.520601103082
$ echo 8e5 5e6 | src/proj -d 12 +proj=utm +zone=31 -I +approx |  src/proj -d 12 +proj=utm +zone=31 +approx
800000.000007762224	4999999.999971268699
$ echo 18e5 9e6 | src/proj -d 12 +proj=utm +zone=31 -I +approx |  src/proj -d 12 +proj=utm +zone=31 +approx
1079182.990696124267	8661150.574729502201
$ echo 18e5 5e6 | src/proj -d 12 +proj=utm +zone=31 -I +approx |  src/proj -d 12 +proj=utm +zone=31 +approx
1799997.510861013783	4999999.567328464240
2020-03-09 22:51:55 +01:00
Even Rouault d0d422dffc Extended tmerc (Poder/Engsager): speed optimizations
fwd: 52% faster on Core-i7@2.6GHz, 40% faster on GCE Xeon@2GHz
inv: 24% faster on Core-i7@2.6GHz, 36% faster on GCE Xeon@2GHz

Those speed-ups are obtained due to elimination of a number of
transcendental functions (atan, sincos, cosh, sinh), through the
use of usual trigonometric/hyperbolic formulas.

The numeric results before/after seem identical at worse up to
14 decimal digits, which is way beyond the apparent accuracy of the
computations

On a point, far from central meridian, where round-tripping is not so great:

Before:
echo "81 1" | src/proj -d 18 +proj=utm +zone=31 | src/proj -d 18 -I +proj=utm +zone=31
80.999994286593448578	0.999987970918421620

After:
$ echo "81 1" | src/proj -d 18 +proj=utm +zone=31 | src/proj -d 18 -I +proj=utm +zone=31
80.999994286593448578	0.999987970918422175

The benchmarking program used is:
```
 #include "proj.h"
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>

int main(int argc, char* argv[])
{
    if( argc != 3 ) {
        fprintf(stderr, "Usage: bench quoted_proj_string fwd/inv\n");
        exit(1);
    }
    PJ* p = proj_create(0, argv[1]);
    const int dir = strcmp(argv[2], "inv") == 0 ? PJ_INV : PJ_FWD;
    PJ_COORD coord;
    if( dir == PJ_FWD )
    {
        coord.xy.x = 0.5; // rad
        coord.xy.y = 0.5; // rad
    }
    else
    {
        coord.xy.x = 450000; // m
        coord.xy.y = 5000000; // m
    }
    for(int i = 0; i < 40 * 1000* 1000; i++)
        proj_trans(p, dir, coord);
    proj_destroy(p);
    return 0;
}
```
2020-03-09 15:12:12 +01:00
Even Rouault 13782b1997 Merge pull request #2031 from snowman2/appveyor
Updated appveyor to not copy DLL & update existing vcpkg
2020-03-09 11:24:01 +01:00
Kristian Evers 46c47e9adf Merge pull request #2025 from rouault/projections_remove_assignments_in_expressions
src/projections/: remove assignments in expression and multiple statements per line
2020-03-09 10:25:08 +01:00
snowman2 f3698185e0 Updated appveyor to not copy DLL & update existing vcpkg 2020-03-08 20:27:25 -05:00
Even Rouault 60d3df673c src/projections/: remove assignments in expression and multiple statements per line
Should hopefully result in no change in results, and hopefully more
readable code...
2020-03-08 19:58:35 +01:00
Even Rouault 38ec5e662a proj_internal.h: fix typo in macro name due to bad copy&paste. (No functional impact) 2020-03-06 19:08:55 +01:00
Even Rouault c0e1213b09 proj.ini: typo fix in comment [ci skip] 2020-03-06 18:35:29 +01:00
Even Rouault 5fff613d07 Typo fixes identified by scripts/fix_typos.sh 2020-03-06 18:33:44 +01:00
Even Rouault 93da0bcaa0 Merge pull request #2024 from rouault/add_support_for_WKT1_ESRI_VERTCS
WKT import/export: add support for WKT1_ESRI VERTCS syntax
2020-03-06 18:28:30 +01:00
Even Rouault 6512ef2427 WKT import/export: add support for WKT1_ESRI VERTCS syntax 2020-03-06 14:11:31 +01:00
Kristian Evers 2dbca196a0 Merge pull request #2023 from nyalldawson/update_notes
Add some more missing methods and notes to esri projection mapping
2020-03-06 08:13:45 +01:00
Nyall Dawson 9a35f3dad4 Add some more missing methods and notes to esri projection mapping 2020-03-06 10:17:36 +10:00
Even Rouault b8db250028 ESRI WKT: map Mercator_Variant_A, Mercator_Variant_C and Transverse_Cylindrical_Equal_Area projections (#2020)
* Add mapping of ESRI projection methods Mercator_Variant_A, Mercator_Variant_C
and Transverse_Cylindrical_Equal_Area
* Add a few notes about missing mappings
2020-03-05 08:20:19 +01:00
Kristian Evers 341e0e7eb4 Remove occurences of deprecated PROJ.4 syntax
+no_defs and +datum has no effect on the behaviour of proj, so can be
left out in these examples in the docs. +no_defs in rare occasions would
have had an effect in older PROJ versions but not from PROJ 6 and
onwards. +datum has ever only been honoured by cs2cs and pj_transform().

Fixes #2017
2020-03-05 00:18:01 +01:00
Even Rouault c1fbdd88b3 Merge pull request #1986 from nyalldawson/behrman
Map the Behrman projection to cae when converting ESRI CRSes
2020-03-04 14:35:18 +01:00
Nyall Dawson cb64ce2622 Add missing tests for ESRI projection method conversion 2020-03-04 20:51:44 +10:00
Nyall Dawson d49ce528bb Add capability to force a fixed value for a non-specified CRS component
while mapping ESRI projections, and map the Behrman projection to
cae with lat_ts=30, lon_0=0
2020-03-04 19:01:56 +10:00
Mike Taves 72f5bb21ae Document Autotools and CMake configure options (#2010) 2020-03-04 21:20:30 +13:00
Kristian Evers 93d3af6aec Update README with info on PROJ-data (#2015) [ci skip]
Removes section about proj-datumgrid-* packages in favour for a section
about the PROJ-data package and the CDN.
2020-03-04 00:37:47 +01:00
Even Rouault b2ca8e5f6b createUnitOfMeasure(): use full double resolution for the conversion factor (#2011)
Fixes https://github.com/OSGeo/gdal/issues/2290 where it was found that
PROJ returned value for conversion factor of US Survey Foot unit wasn't
at the maximum resolution, but only accurate to 15 significant digits.
2020-03-03 19:42:44 +01:00
Kristian Evers 57c12c27d2 Merge pull request #2009 from OSGeo/cmake-rpath
Follow PDAL's CMake RPATH strategy
2020-03-03 19:08:31 +01:00
Howard Butler 6f71d3f7d1 cmakelint changes as requested 2020-03-03 08:22:17 -06:00
Chris Mayo bda0d15ede Fix download link for proj-data 1.0 2020-03-03 07:50:12 +01:00
Howard Butler b465415cff Follow PDAL's CMake RPATH strategy 2020-03-02 13:44:23 -06:00
Even Rouault 404c73a22e Fix bad copy&replace pattern on HEALPix and rHEALPix projection names. Affects output of 'proj -l' 2020-03-02 18:56:09 +01:00
Kristian Evers 0bcf2b5aaa Update github_version in sphinx config 2020-03-01 11:48:37 +01:00
Kristian Evers 79abba9fa9 Bump version numbers in preparation for 7.1.0 2020-03-01 11:47:40 +01:00
Kristian Evers ccbfd15798 Update docs in preparation for 7.0.0 release 2020-03-01 11:23:13 +01:00
Even Rouault 10a8d5c984 createOperations(): fix wrong pipeline generation with CRS that has +nadgrids= and +pm= (#1998)
Fixes issue reported at
https://lists.osgeo.org/pipermail/gdal-dev/2020-February/051749.html

The generated pipeline assumes that the input coordinates for the grid transformation
were related to the non-Greenwich based datum, so we must compensate for that and
add logic to go back to Greenwich.
2020-02-29 13:24:58 +01:00
Even Rouault 1f3a571d32 Avoid crash when running against SQLite3 binary built with -DSQLITE_OMIT_AUTOINIT (fixes #1932) (#1997) 2020-02-28 17:41:45 +01:00
Even Rouault e81f938f7c Formatting fix 2020-02-28 16:05:56 +01:00
Even Rouault fb87c671f1 Fix warnings of latest cppcheck master 2020-02-27 23:35:36 +01:00
Chatziargyriou Eleftheria f3561e5749 Doc: Add missing projection property tables (#1992) 2020-02-27 19:28:17 +01:00
Even Rouault a9bc6e5fb0 Make tests independent of proj-datumgrid
Fixes #1984

- Copy BETA2007.gsb, MD, alaska, conus, ntf_r93.gsb, ntv1_can.dat grids
  from proj-datumgrid to data/tests.
- Replace a couple uses of nzgd2kgrid0005.gsb in tests by ntf_r93.gsb
- Add downsampled/subsetted versions of egm96_15.gtx as tests/egm96_15_downsampled.gtx
  and ntv2_0.gsb as tests/ntv2_0_downsampled.gsb
  This results in a few changes in expected results
- Simpify travis/install.sh due to less configurations to test

This results in a hopefully acceptable increase of the proj-X.Y.Z.tar.gz
from 2.9 to 5.3 MB
2020-02-27 13:19:13 +01:00
Even Rouault 8d665f20a7 proj_create_crs_to_crs(): avoid potential reprojection failures when reprojecting area of use to source and target CRS
Was found with https://github.com/OSGeo/PROJ/pull/1989
when using cs2cs EPSG:4937 EPSG:31258+5778
- We do not need to do vertical transformation in that context. This failed here
  because the Austrian grids have nodata value outside of the shape of Austria, so
  the edges of the grids are mostly nodata values.
- And we should avoid grid-based transformations too.
2020-02-27 12:19:34 +01:00
Even Rouault dbf5f363ae Merge pull request #1989 from rouault/register_austrian_height_grids
Database: register 4 height Austrian grids from https://github.com/OSGeo/PROJ-data/pull/13 + handle 'Vertical Offset by Grid Interpolation (BEV AT)' method
2020-02-27 12:19:19 +01:00
Even Rouault 3a38f50618 Merge pull request #1987 from nyalldawson/flat_polar_quartic
Support conversion of Flat_Polar_Quartic projection method
2020-02-27 12:19:01 +01:00
Even Rouault 250e4a222b Database: register 4 height Austrian grids from https://github.com/OSGeo/PROJ-data/pull/13 + handle 'Vertical Offset by Grid Interpolation (BEV AT)' method 2020-02-26 16:23:39 +01:00
Even Rouault 1f8541d6f4 Database: update to EPSG v9.8.7 2020-02-26 14:04:09 +01:00
Nyall Dawson 6ed13a5f8e Support conversion of Flat_Polar_Quartic projection method 2020-02-26 19:03:51 +10:00
Even Rouault 414ae2699c Merge pull request #1983 from rouault/fix_1982
createOperations(): be robust to a GeographicCRS having a wrong ID attached to it (fixes #1982)
2020-02-25 16:27:10 +01:00
Even Rouault 5c79670110 createOperations(): be robust to a GeographicCRS having a wrong ID attached to it (fixes #1982) 2020-02-25 15:32:28 +01:00
Even Rouault 1ce2cc80a4 CompoundCRS::create(): reject combinations of components not allowed by ISO 19111 2020-02-25 00:19:19 +01:00
Even Rouault 254bead44a createOperations(): keep height/z value in Helmert transform between 3D CRS
This is the consequence of a private email thread between me, Joel Haasdyk and
Roger Lott. I initially raised that the GDA2020 technical manual advertized the
Helmert transformation between GDA94 to GDA2020 to be a 3D one, with example of
a test point where ellipsoidal heights where modified. It appears this was intended.

The corresponding record in EPSG uses the EPSG:9607 "Coordinate Frame rotation (geog2D domain)"
method between the 2D geographic CRS of GDA94 and GDA2020. From the email exchange,
it appears that there's a lot of legacy explaining that Helmert transformations
are registered only between 2D CRS, which doesn't mean that when applied to the
corresponding 3D CRS, the change in ellipsoidal height should be discarded. Related
to that, the EPSG database, while it has methods flagged "(geog3D domain)" never uses them.

So... this changeset slightly ammends PROJ behaviour to ignore the "(geog2D domain)" flag,
but only consider the dimensionality of the source & target CRS. However, for a EPSG
transformation, those are always 2D CRS, hence introduce the use3DHelmert_ hack when
we know that ultimately the 'real' source & target CRS are 3D.

I wouldn't be surprised if in more complex pipeline the above logic would be lacking.
But it fixes at least simple transformations.
2020-02-24 20:37:49 +01:00
Even Rouault fe9e276d93 pj_hgrid_apply(): change error code when no grid match to PJD_ERR_GRID_AREA (refs #1973) 2020-02-24 12:59:13 +01:00
Nyall Dawson 004116f53a Fix mapping of Vertical_Near_Side_Perspective (fixes #1965) 2020-02-24 12:43:00 +01:00
Even Rouault 25f8c03774 Expose proj_context_is_network_enabled() in C API 2020-02-24 10:32:24 +01:00
Even Rouault 57595327b2 Merge pull request #1968 from wonder-sk/slovakia-jtsk-ntv2-master
Add alternative grid for JTSK - JTSK03 transform (EPSG:8364)
2020-02-24 08:34:14 +01:00
Martin Dobias 845f700335 Add alternative grid for JTSK - JTSK03 transform (EPSG:8364)
The definition of EPSG:8364 uses NADCON method for horizontal grid (.las/.los files)
but this format is not supported by PROJ.

UGKK (Slovak Geodetic and Cartographic Institute) provides NADCON .las/.los files here:
https://www.geoportal.sk/files/gz/slovakia_jtsk03_to_jtsk.zip

Additionally UGKK also provides the same grid file in NTv2 format:
https://www.geoportal.sk/files/gz/slovakia_jtsk03_to_jtsk_ntv2.zip

So let's add the NTv2 file the grid_alternatives table so that PROJ can automatically pick it up...
2020-02-23 21:46:47 +01:00
Mike Taves 7b873e8353 Merge pull request #1962 from mwtoews/shared
CMake: rename BUILD_LIBPROJ_SHARED to BUILD_SHARED_LIBS
2020-02-22 13:35:36 +13:00
Even Rouault f57a390398 Doc: advertize lat_0 for proj=nsper 2020-02-21 13:33:36 +01:00
Nyall Dawson 6aedfb204a Add support for creating coordinates operations using Compact Miller,
Times and Vertical Near Side Perspective projections
2020-02-21 11:26:55 +01:00
Nyall Dawson 0bc2ae258d Add support for creating coordinates operations using Natural Earth/Natural Earth 2 projection 2020-02-21 11:26:55 +01:00
Nyall Dawson dbe6dcf247 Add support for creating coordinates operations using ESRI:53079 (patterson) CRS 2020-02-21 11:26:55 +01:00
Even Rouault ee0ba2d2e6 test_network.cpp: fix test failures on big endian archs (fixes #1958) 2020-02-21 11:23:43 +01:00
Mike Taves 3eac8d5694 Switch build configuration logic from DISABLE_TIFF to ENABLE_TIFF
* Autotools interface should be the same, but different ./configure --help
* For CMake, the option should be -DENABLE_TIFF=NO (default is YES)
* Use TIFF_ENABLED and CURL_ENABLED variables, based on option and outcome
* Reword some messages and add hints
* Move -DTIFF_ENABLED and -DCURL_ENABLED from global add_definitions()
  to target_compile_definitions(), which is recommended practice
* Minor spelling and style consistency around SQLITE_VERSION check
2020-02-21 11:23:15 +01:00
Mike Taves 2336ac77b5 CMake: rename BUILD_LIBPROJ_SHARED to BUILD_SHARED_LIBS
* Deprecate BUILD_LIBPROJ_SHARED, but still use it as an alias for now
* Rename BUILD_LIBPROJ_SHARED_DEFAULT to BUILD_SHARED_LIBS_DEFAULT
* Keep previous defaults (UNIX as shared and Windows as static)
* Remove PROJ_LIBRARY_TYPE, since add_library() uses BUILD_SHARED_LIBS
2020-02-21 22:43:30 +13:00
Even Rouault 86530f3146 Fix wrong byte-swapping for NTv2 grids affecting master after RFC4 work (fixes #1938)
And add testing of both little-endian and big-endian NTv2 files
2020-02-20 09:57:45 +01:00
Mike Taves deb3ccf5bb Add/update description for pkg-config and CMake
Ignore WARNING:  'proj.pc.in' seems to ignore the --datarootdir setting
2020-02-20 09:57:08 +01:00
Mike Taves b72d25a32d CMake: rename ENABLE_LTO to ENABLE_IPO
* Deprecate ENABLE_LTO, but still use it as an alias for now
* Plan to remove ENABLE_LTO by PROJ 8.0
* Use CMake 3.9 logic to check feature and set property
2020-02-20 09:48:16 +01:00
Kristian Evers b80a7cd2e8 appveyor: Use sqlite tool from vcpkg
This follows the install guide for Windows using vcpkg.
2020-02-20 09:46:27 +01:00
Even Rouault d7a16efe71 validateParameters(): fix false-positive warning on Equidistant Cylindrical
We required the 'Latitude of natural origin' parameter to be present,
but it is only a GDAL/PROJ specific thing, not a EPSG one.
2020-02-19 18:13:02 +01:00
Even Rouault 71e6438ba2 DatabaseContext::lookForGridInfo(): use also old_proj_grid_name for lookups (fixes #1942) 2020-02-19 14:27:19 +01:00
Even Rouault 9022252da3 test: enhance testing of proj_grid_get_info_from_database 2020-02-18 20:17:52 +01:00
Jeroen Ooms 409f8b0e5d Fix static linking (due to typo in pc) 2020-02-18 16:22:08 +01:00
Even Rouault 11c50c0427 Merge pull request #1934 from sebastic/read_grid_from_user_writable_directory
Don't assume $HOME to be writable.
2020-02-18 13:18:24 +01:00
Bas Couwenberg eea42eaae6 Don't assume $HOME to be writable.
The read_grid_from_user_writable_directory test fails otherwise.

Fixes: #1933
2020-02-18 08:11:02 +01:00
Kristian Evers 8896b2a26c Remove man3 Makefile from configure.ac 2020-02-17 21:17:56 +01:00
Kristian Evers fba4148dd4 Update CMake setup with new projsync man file and removed man3 files 2020-02-17 21:15:06 +01:00
Kristian Evers 4fe8a81ca9 Update man-pages from Sphinx-docs 2020-02-17 21:03:16 +01:00
Kristian Evers 6f60d8e168 Update NEWS for 7.0.0 release 2020-02-17 21:03:07 +01:00
Kristian Evers 689dca11da Update ABI version numbers for 7.0.0 release 2020-02-17 21:02:57 +01:00
Kristian Evers c4878eac38 Make sure that projsync man file is packaged correctly 2020-02-17 21:02:48 +01:00
Kristian Evers 2d98931a88 Remove man3 files
Closes #1258
2020-02-17 21:02:41 +01:00
Even Rouault e4c9c26ee7 Doc: update with 6.3.1 release [skip appveyor] 2020-02-13 16:29:00 +01:00
Even Rouault 02e6715dd5 NEWS: update with 6.3.1 [ci skip] 2020-02-13 16:28:50 +01:00
Kristian Evers 89175e2ec1 Merge pull request #1931 from calumr/patch-1
Don't print version when using PROJ4 from cmake
2020-02-13 11:37:16 +01:00
Calum Robinson fea2ff9cda Don't print version when using PROJ4 from cmake
This will declutter cmake output for PROJ4 users
2020-02-13 09:30:59 +00:00
Kristian Evers 949171a6e1 Merge pull request #1923 from mwtoews/cmake-output
CMake: simplify message functions
2020-02-12 19:47:29 +01:00
Kristian Evers f9bf35c0ae Merge pull request #1928 from sebastic/make-readme
Create README from README.md when calling `make`.
2020-02-12 14:51:17 +01:00
Bas Couwenberg 43a91ce0a8 Create README from README.md when calling make.
The README file was only generated when calling `make README`.

Closes: #1927
2020-02-12 12:53:46 +01:00
Even Rouault 595aafef26 Merge pull request #1921 from rouault/pj_get_relative_share_proj
Use relative directory to locate PROJ resource files.
2020-02-11 18:50:53 +01:00
Even Rouault 29583196df Use relative directory to locate PROJ resource files.
Fixes #1490

This is an extension of the Window-specific logic added recently to
Unix builds. This reuses parts of proposed past commit
https://github.com/OSGeo/PROJ/pull/1517/commits/82a07e51c6e24ddb936d131ababe29f1ac36ef14
(credits to @abellgithub)
2020-02-11 15:48:05 +01:00
Kristian Evers a10b5edfad Merge pull request #1920 from rouault/travis_i386
Travis: change linux_gcc7 / x86_64 config to linux_gcc8 / i386
2020-02-11 15:26:32 +01:00
Mike Taves 5179435614 CMake: simplify message functions
* Remove colormsg(); just use message()
* Rename boost_report_value() with print_variable()
2020-02-11 11:09:00 +13:00
Even Rouault 3767adabe2 PROJStringParser::Private::buildProjectedCRS(): avoid (harmless) division by zero in super odd case with corrupted PROJ string. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20624 2020-02-10 16:19:53 +01:00
Even Rouault 188dcf2cb9 HOWTO-RELEASE: update to add a check for version numbers [ci skip] 2020-02-10 11:38:11 +01:00
Even Rouault 3c1ab5e738 HOWTO-RELEASE: fix a few typos [ci skip] 2020-02-10 11:34:16 +01:00
Even Rouault d1d6bc3bbf README.md: add badges for Cirrus & Docker
[ci skip]
2020-02-09 18:18:42 +01:00
Even Rouault 8c9ed021c7 Dockerfile: make it non-git dependent, so that it can work in branches, and Docker Hub builds 2020-02-09 17:29:20 +01:00
Even Rouault 40ca9b0a74 Dockerfile: fix build with tiff&curl dependencies, and use CDN TIFF files 2020-02-09 16:59:02 +01:00
Even Rouault 1c3678b636 read_vgrid_value(): avoid assertion on huge latitude. Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20592. master only 2020-02-09 03:47:13 +01:00
Charles Karney 06d0a4c835 Add comments to vandg.cpp to tie implementation to Snyder (1987). 2020-02-08 14:33:06 -05:00
Even Rouault 888e1b1553 Travis: do only builds that test with all grids on -O2 builds that are slower to build 2020-02-08 16:34:52 +01:00
Even Rouault 5bb1920a5b Travis: update linux_gcc7 to linux_gcc8 2020-02-08 15:40:06 +01:00
Even Rouault 2d07a8dc0d Travis: modify linux_gcc7 to run i386 2020-02-08 15:36:30 +01:00
Even Rouault bec20afdfa travis/install.sh: fix wrong setting of CXXFLAGS 2020-02-08 15:36:18 +01:00
Even Rouault dfa29f9f85 Travis: restrict symbol comparison to x86_64 builds 2020-02-08 15:34:28 +01:00
Kristian Evers ead6a66d98 Merge pull request #1917 from rouault/fix_test_issues_on_i386
Fix test issues on i386
2020-02-08 10:17:18 +01:00
Even Rouault b6f442db6c Merge pull request #1918 from rouault/update_travis_csa
Travis: update CLang Static Analyzer to CLang 9
2020-02-07 21:10:42 +01:00
Kristian Evers ab68913e5b Merge pull request #1912 from kbevers/fix-1906
cart: Avoid discontinuity at poles in the inverse case (partial fix to #1906)
2020-02-07 11:53:37 +01:00
Even Rouault 7001c21828 Fix numerical precision issues in vandg and robin
Refs #1906
Fix remaining issues of https://github.com/OSGeo/PROJ/issues/1906#issuecomment-583168348
as found with gcc 8.2.0 -m32 -O2
2020-02-07 11:08:43 +01:00
Even Rouault 19bfb4987a Fix test issues on i386
Fix a few issues of #1906 found when running the test suite
on Ubuntu 16.04 with gcc 5.5 -m32. When applied on top of
the fix of #1912, make check succeeds
2020-02-07 00:21:25 +01:00
Even Rouault c8f8a5a6c5 Fix cppcheck warnings and make it work with latest cppcheck 1.90 2020-02-06 23:33:38 +01:00
Even Rouault 9e1420309c Travis: update CLang Static Analyzer to CLang 9
Enable optional checkers
Fix two false positives
2020-02-06 23:33:15 +01:00
Kristian Evers 55112033a4 cart: Avoid discontinuity at poles in the inverse case
This should avoid issues with numerical stability as uncovered in
https://github.com/OSGeo/PROJ/issues/1906.

Practically speaking this change isn't going to affect real life
scenarios since the position of the center of the Earth is rarely
expressed in geodetic coordinates.
2020-02-06 17:53:11 +01:00
Even Rouault bd6148db5f geodetictiffgrids.rst: fix links
[skip appveyor]
2020-02-06 15:47:38 +01:00
Even Rouault c2f4d1d172 Merge pull request #1915 from rouault/fix_1911
Fix identification of ESRI-style datum names starting with D_ but without alias
2020-02-06 13:44:13 +01:00
Even Rouault e9b5f63945 Merge pull request #1914 from rouault/fix_1913
Fix performance issue, affecting projinfo EPSG:7842
2020-02-06 13:43:59 +01:00
Even Rouault 72925acb84 Fix identification of ESRI-style datum names starting with D_ but without alias
Fixes #1911
2020-02-05 19:59:00 +01:00
Even Rouault aa2545bebd Fix performance issue, affecting projinfo EPSG:7842
Fixes #1913

AuthorityFactory::createBetweenGeodeticCRSWithDatumBasedIntermediates() issued
a complex SQL query that pushes the SQLite3 query plan optimizer to its limits.
Was working reasonably with sqlite 3.11, but not with later versions.
So put less constraints in the main query and do post-processing checks and
auxiliary requests to avoid such issues.

For some unknown reason, this slightly slows down a bit execution time of the
whole test_cpp_api binary (~ 10%), but couldn't come with something better,
despite trying many variations of the main SQL query. It seems that in the
general case the non-filter LEFT JOIN on the supersession table helped,
except on this EPSG:7842 case.
2020-02-05 18:54:04 +01:00
Kristian Evers c077e5b8b1 Add projsync to README 2020-02-05 07:50:23 +01:00
Charles Karney 1067766790 Merge pull request #1910 from cffk/cmake-proj
Make PROJ the CMake project name addressing first stage of #1885

Let's go with this!  It's conceivable that there's some wrinkle I haven't thought about.  So let's expose the changes to a wider community.
2020-02-04 19:15:57 -05:00
Even Rouault afda50628d Merge pull request #1903 from rouault/add_proj_download
Add projsync utility
2020-02-04 23:34:17 +01:00
Even Rouault 87318283ee Add projsync utility
Fixes #1750
2020-02-04 21:43:42 +01:00
Charles Karney c74781ea27 Make PROJ the CMake project name
Allow both find_package(PROJ) and find_package(PROJ4).  More details
are in cmake/CMakeLists.txt.
2020-02-04 14:20:28 -05:00
Kristian Evers c3e7876325 Merge pull request #1905 from russkel/patch-1
tests: force use of bash for proj_add_test_script_sh
2020-02-04 14:49:15 +01:00
Kristian Evers 712b873dc8 Merge pull request #1907 from mwtoews/cmake
Increase CMake minimum version from 3.5 to 3.9
2020-02-04 07:25:22 +01:00
Mike Taves 19b680c461 Increase CMake minimum version from 3.5 to 3.9
* Also remove a few if()-blocks to support older CMake versions
2020-02-04 14:14:03 +13:00
Even Rouault 6aadc40eac Merge pull request #1902 from rouault/fix_asan_issue_sqlite3_vfs
Fix ASAN issue with SQLite3VFS class (fixes #1901)
2020-02-02 23:46:05 +01:00
Even Rouault 42035701c0 proj_download_file(): relax test for the situation where a file < 1 MB is updated to be slightly larger
CloudFront could return a Range: bytes=0-X/Y with X < Y and X being the previous file size and Y the new one
2020-02-02 18:22:23 +01:00
Even Rouault 31e85df267 build_url(): remove no longer needed hack 2020-02-02 14:21:11 +01:00
Even Rouault 81a83f1142 test/fuzzers/build.sh: statically link sqlite3 for i386 builds 2020-02-01 12:11:09 +01:00
Even Rouault ee06c659f3 Fix ASAN issue with SQLite3VFS class (fixes #1901) 2020-01-31 11:21:43 +01:00
Even Rouault a1b1c4312e Database: add a custom concatenated_operation for NTF (Paris) to RGF93, using the non-deprecated EPSG:9327 for the geocentric translation 2020-01-30 14:14:12 +01:00
Kristian Evers 91c40b654b Merge pull request #1897 from rouault/map_geocentric_translation_method
Add EPSG records for 'Geocentric translation by Grid Interpolation (IGN)' (gr3df97a.txt) and map them to new +proj=xyzgridshift
2020-01-30 11:08:49 +01:00
Kristian Evers 3ab34eb940 Merge pull request #1898 from rouault/delete_null
Remove 'null' grid file as it is now a special hardcoded case in grid code
2020-01-30 11:08:20 +01:00
Even Rouault ec2faad6d6 Remove 'null' grid file as it is now a special hardcoded case in grid code 2020-01-29 18:06:58 +01:00
Even Rouault cebb314e14 test/fuzzers/build.sh: build with static libtiff [ci skip] 2020-01-29 17:26:07 +01:00
Kristian Evers e35cf5d63c Merge pull request #1896 from rouault/add_set_operation
Add +proj=set operation to set component(s) of a coordinate to a fixed value
2020-01-29 17:13:00 +01:00
Even Rouault 6f6c53c855 Add EPSG records for 'Geocentric translation by Grid Interpolation (IGN)' (gr3df97a.txt) and map them to new +proj=xyzgridshift 2020-01-29 16:28:07 +01:00
Even Rouault 9f6ab28f1d Make it possible to use grids from the CDN by their 'old name' even if not in the EPSG/grid_transformation table 2020-01-29 14:44:04 +01:00
Even Rouault d9ad20a959 scripts/grid_checks.py: update for change of PROJ-data repository name, and look for .tif extension 2020-01-29 14:40:10 +01:00
Even Rouault bf6b1a889b Merge pull request #1891 from rouault/rfc5
Implement RFC5: Adopt GeoTIFF-based grids for grids delivered with PROJ
2020-01-29 12:51:49 +01:00
Even Rouault 4b7ec1a182 Add +proj=set operation to set component(s) of a coordinate to a fixed value
Fixes #1846
2020-01-28 21:46:47 +01:00
Even Rouault 74a10a8de0 Add RFC5 text: Adopt GeoTIFF-based grids for grids delivered with PROJ (#1868) 2020-01-28 15:07:09 +01:00
Even Rouault 0bb5cc0ace Merge pull request #1893 from asinghvi17/patch-2
Mention the Julia package Proj4.jl
2020-01-28 12:04:18 +01:00
Even Rouault f2efd1d73c Merge pull request #1892 from rouault/add_projinfo_searchpaths
projinfo: add --searchpaths switch
2020-01-28 12:03:20 +01:00
Even Rouault 15814256e2 projinfo: add --remote-data switch 2020-01-27 20:38:40 +01:00
Anshul Singhvi 148842cea0 Mention the Julia package Proj4.jl
in `docs/src/development/bindings.rst`
2020-01-27 14:18:13 -05:00
Even Rouault ea6245ea32 projinfo: add --searchpaths switch 2020-01-27 18:45:07 +01:00
Even Rouault a4c5cc1e42 Doc: advertize FOSS4G 2020
Text copied from GDAL doc.
2020-01-26 21:37:20 +01:00
Kristian Evers da4ee62a71 Merge pull request #1887 from jmckenna/irc
add #proj IRC channel notifications
2020-01-26 21:36:32 +01:00
Kristian Evers 66013a0202 Merge pull request #1886 from rouault/cppcheck_1_90_happyness
Few improvements to make cppcheck 1.90 happier
2020-01-26 21:36:19 +01:00
Even Rouault 0f22959cb2 Fix ossfuzz builds [ci skip] 2020-01-26 19:39:51 +01:00
Jeff McKenna aeb1779827 add PROJ channel notifications 2020-01-26 11:40:00 -04:00
Even Rouault 9cdebf7ecf configure.ac: rename switch to disable tiff dependency to more neutral --disable-tiff 2020-01-26 13:49:06 +01:00
Even Rouault 9ae1176325 Conversion::_exportToPROJString(): use const ref as rightly suggest by cppcheck 2020-01-26 00:34:55 +01:00
Even Rouault d5a59ac2f3 Make JSONParser::buildObjectDomain() static 2020-01-26 00:34:52 +01:00
Even Rouault fa1ba24a0d buildProjectionStandard(): make it obvious to cppcheck that null-ptr dereference cannot happen 2020-01-26 00:34:30 +01:00
Even Rouault 70ffd8c58b string_to_paralist(): simplify so that it is obvious to cppcheck that null-ptr dereference cannot happen 2020-01-26 00:33:55 +01:00
Even Rouault 43b9748844 configure.ac: remove -Wmissing-prototypes for C++ files at is is for C files only 2020-01-25 23:52:00 +01:00
Kristian Evers f02d83434b Merge pull request #1884 from rouault/cea_k_0
Fix ingestion of +proj=cea with +k_0
2020-01-25 20:50:01 +01:00
Even Rouault d3e133b23f Merge pull request #1882 from rouault/fix_grid_antimeridian
Grid correction: fix handling grids spanning antimeridian (fixes #1859)
2020-01-25 19:51:36 +01:00
Charles Karney a6c6d1de6b Merge pull request #1883 from cffk/cmake-namespace-update
Remove legacy CMake target name "proj" addressing #802
2020-01-25 12:57:11 -05:00
Even Rouault f201a86386 Fix ingestion of +proj=cea with +k_0
Fixes #1881

Digging into the implementation of proj=cea, it appears that
k_0 and lat_ts are intended to be exclusive ways of specifying the
same concept. EPSG only models the variant using lat_s.
So if k_0 is found and lat_ts is absent, compute the equivalent
value of lat_ts from k_0.

Note: k_0 should normally be in the [0,1] range. In case creative users
would use something outside, we raise an exception, even if the cea
implementation could potentially deal with any k_0 value. Hopefully
this is a (reasonable) limitation that will address nominal use cases.
2020-01-25 16:31:00 +01:00
Charles Karney 4efa44d46f Remove legacy CMake target name "proj" addressing #802 2020-01-25 10:03:46 -05:00
Even Rouault b113d0825c Init file reading: use FileManager::open_resource_file() instead of deprecated proj_api I/O 2020-01-25 12:49:23 +01:00
Even Rouault 5358921291 Grid correction: fix handling grids spanning antimeridian (fixes #1859) 2020-01-25 11:20:20 +01:00
Even Rouault 680d1eb93b Implement RFC 5 2020-01-25 02:23:18 +01:00
Even Rouault 1039889c42 Merge pull request #1880 from rouault/createObjectsFromName_use_alias_as_fallback
createObjectsFromName(): use alias as fallback only
2020-01-24 18:28:27 +01:00
Even Rouault e5fae5239f Merge pull request #1879 from sebastic/rdnap
Add nlgeo2018.gtx & rdtrans2018.gsb to grid_alternatives.
2020-01-24 17:49:53 +01:00
Even Rouault 9db95ecde7 createObjectsFromName(): use alias as fallback only
Fixes a regression of 6.3.0 found when creating with GDAL a TIFF with
a Geographic3D CRS. As TIFF must also encode the Geographic2D CRS,
the code of the Geographic2D CRS is searched from the name of the
Geographic3D CRS. When doing createObjectsFromName(
"ETRS89", {AuthorityFactory::ObjectType::GEOGRAPHIC_2D_CRS}, false, 1),
the result returned was not EPSG:4258 as expected, but EPSG:4173 IRENET95
which is registered as an alias of ETRS89. So sort results such
that non-alias results are returned first.
2020-01-24 14:52:46 +01:00
Bas Couwenberg 223572d0a8 Add nlgeo2018.gtx & rdtrans2018.gsb to grid_alternatives.
* EPSG:9282 uses rdtrans2018.gsb
 * EPSG:9283 uses nlgeo2018.gtx
2020-01-24 14:01:19 +01:00
Even Rouault 15ed565101 grid_checks.py: update with additional column in filelist.csv [ci skip] 2020-01-24 13:49:16 +01:00
Kristian Evers 6507e962e0 Update .cirrus.yml (#1878)
Update .cirrus.yml
2020-01-24 12:12:32 +01:00
lbartoletti c20c27424e Update .cirrus.yml
- Use latest FreeBSD 12 version
- remove useless pkg (wget -> native fetch ; unzip -> tar)
- "speed up" with 4 cpus
2020-01-24 09:28:56 +01:00
Mike Taves e16a24ab39 Merge pull request #1870 from mwtoews/build-testing
CMake: replace PROJ_TESTS with CTest's BUILD_TESTING option
2020-01-24 20:56:29 +13:00
Mike Taves 43dc8c5752 CMake: replace PROJ_TESTS with CTest's BUILD_TESTING option
* CTest automatically creates a BUILD_TESTING option (default is ON)
* Also allow PROJ_TESTS to be used, but show deprecation message;
  and add note to remove this option by PROJ 8.0
* Only build geodtest when tests are enabled
* Add documentation to configure a build using -DBUILD_TESTING=OFF
2020-01-24 20:26:53 +13:00
Kristian Evers df4f78a8c1 Merge pull request #1873 from rouault/fix_wrong_use_of_derivingConversion
Fix wrong use of derivingConversionRef() that caused GDAL bug
2020-01-23 20:30:53 +01:00
Even Rouault 1ca02b5659 Merge pull request #1869 from rouault/update_to_epsg_9_8_6
Database: update to EPSG v9.8.6
2020-01-23 19:04:31 +01:00
Even Rouault b6db297c5a Fix wrong use of derivingConversionRef() that caused GDAL bug
Hopefully final cut at solving the same class of bug that the one
that affected QGIS in December.

This time, this hit GDAL in the situation of
https://lists.osgeo.org/pipermail/gdal-dev/2020-January/051500.html
The bug fix for that particular issue is in
PROJStringParser::createFromPROJString()

But grepping more in the code base, I could find other potential smelly
situations (might not be issues, but better be safe than sorry),
so let's fix them too.

Bottom line is:
derivingConversionRef() should *only* be used for consultation, and
never to create a new ProjectedCRS()
2020-01-23 18:31:32 +01:00
Even Rouault 00dd98457a Database: add a geoid_like value for proj_method column of grid_alternatives, fix related entries and simplify/robustify logic to deal with EPSG 'Geographic3D to GravityRelatedHeight' methods 2020-01-23 13:08:23 +01:00
Kristian Evers ef20438a3a docs: add note about autogen.sh to install guide 2020-01-23 10:49:13 +01:00
Even Rouault ffcd6253bb Database: update to EPSG v9.8.6
Fixes #1867
2020-01-22 22:31:44 +01:00
Even Rouault db31b6dfa9 Merge RFC4 (#1865)
This commit is the result of the squashing of rfc4_dev branch in a single
commit. It implements mostly RFC 4 related work.

* Grid handling:
  - remove obsolete and presumably unfinished implementation of grid catalog functionality
  - all grid functionality is in grids.cpp/.hpp
  - vertical and horizontal grid shift: rework to no longer load whole grid into memory
  - remove hgrids and vgrids member from PJ structure, and store them in hgridshift/vgridshift/deformation structures
  - build systems: add optional libtiff dependency. Must be explicitly disabled if not desired
  - add support for horizontal and vertical grids in GeoTIFF, if libtiff is available
  - add GenericShiftGridSet and GenericShiftGrid classes, relying on TIFF grids, that can be used for generic purpose grid-based adjustment
  - add a +proj=xyzgridshift method to perform geocentric translation by grid. Used for French NTF to RGF93 transformation using gr3df97a.tif grid
  - deformation: add support for +grids= for GeoTIFF grids
  - horizontal grid shift: fix failures on points slightly outside a subgrid (fixes #209)

* File management:
  - add a filemanager.cpp/.hpp to deal with file related work
  - test for legacy proj_api.h fileapi
  - proj.h: add proj_context_set_fileapi() and proj_context_set_sqlite3_vfs_name() (fixes #866)
  - add capability to read resource files from the user writable directory

* Network access:
  - build systems: add optional curl dependency
  - add a curl-based default implementation for network related functionality
  - proj.h: add C API to control network functionality, and optionaly provide network callbacks
  - add data/proj.ini with default settings
  - add a SQLite3 local cache of downloaded chunks
  - add proj_is_download_needed() and proj_download_file()

* Use Win32 Unicode APIs and expect all strings to be UTF-8 (fixes #1765)
  For backward compatibility, if PROJ_LIB content is found to be not UTF-8 or
  pointing to a non existing directory, then an attempt at interpretating it
  in the ANSI page encoding is done.
  proj_context_set_search_paths() now assumes strings to be in UTF-8, and
  functions returning paths will also return values in UTF-8.
2020-01-22 18:31:26 +01:00
Even Rouault 1ad703a58c Merge pull request #1864 from rouault/fix_appveyor_64bit
appveyor.yml: tune PATH order to fix error when running 'proj' on x64 builds
2020-01-22 15:02:57 +01:00
Even Rouault 8a4d459dfe appveyor.yml: tune PATH order to fix error when running 'proj' on x64 builds 2020-01-22 00:36:56 +01:00
Even Rouault cbf2eebf1b Merge pull request #1863 from rouault/fix_projcrs_identify_same_name_no_axis_but_different_unit
ProjectedCRS::identify(): fix wrong identification of some ESRI WKT linked to units
2020-01-21 22:51:57 +01:00
Kristian Evers 709717899c Merge pull request #1862 from kbevers/update-faq
Add explanation of the PROJ.4 -> PROJ shift to FAQ
2020-01-21 20:24:52 +01:00
Even Rouault 6cc83a2c80 ProjectedCRS::identify(): fix wrong identification of some ESRI WKT linked to units
Fixes bug reported in https://lists.osgeo.org/pipermail/gdal-dev/2020-January/051481.html
2020-01-21 18:20:38 +01:00
Kristian Evers b13a34f3e0 Add explanation of the PROJ.4 -> PROJ shift to FAQ
closes #1511
2020-01-21 13:03:22 +01:00
Even Rouault 1f649f8a99 Merge pull request #1849 from rouault/doc_add_win_build_tutorial
Doc: add in install.rst tutorials to build on Windows
2020-01-16 21:31:08 +01:00
Kristian Evers 0c646aa914 Update year in CITATION (#1854)
Update year in CITATION
2020-01-16 16:52:44 +01:00
Kristian Evers d3a1aa6200 Update year in CITATION 2020-01-16 16:51:20 +01:00
Even Rouault 6733048be4 Doc: add in install.rst tutorials to build on Windows
Fixes #1776

Content based on https://github.com/OSGeo/PROJ/wiki/Building-with-VS-and-vcpkg
which should be retired to avoid duplication of information

README.md is also modified to point to install.rst
2020-01-15 22:42:38 +01:00
Kristian Evers d76e6202d2 Reintroduce backport bot, now using a dedicated PROJ bot (#1848)
Reintroduce backport bot, now using a dedicated PROJ bot
2020-01-15 14:42:10 +01:00
Kristian Evers 6630991e9a Reintroduce backport bot, now using a dedicated PROJ bot 2020-01-15 13:12:39 +01:00
Kristian Evers 34ff658696 doc: Fix error in previous commit (duplicate link targets) 2020-01-14 12:47:40 +01:00
Kristian Evers dae3c4b3b3 Doc: Update index of development section
Adds links to git repositories and adjusts deprecation warnings to
reflect that PROJ 6 has been released.
2020-01-14 11:00:33 +01:00
Kristian Evers e9605e41c8 Merge pull request #1844 from kbevers/remove-ld-option
Remove -ld option from proj and cs2cs
2020-01-14 07:25:00 +01:00
Kristian Evers 0e70861997 Merge pull request #1843 from rouault/fix_ossfuzz_20072
unitconvert with mjd time format: avoid potential integer overflow
2020-01-13 22:13:16 +01:00
Kristian Evers a955947c1f Remove -ld option from proj and cs2cs
It promotes use of deprecated paramters +datum and +towgs84 which we
don't want to encourage.

Closes #1308
2020-01-13 22:04:01 +01:00
Even Rouault 3f3af95e0a unitconvert with mjd time format: avoid potential integer overflow
Fixes https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=20072
2020-01-13 18:09:38 +01:00
Even Rouault 542359e993 test/fuzzers/standard_fuzzer.cpp: remove dependency to proj_internal.h 2020-01-13 18:08:49 +01:00
Kristian Evers 97bb56f10e Merge pull request #1832 from snowman2/templates
added issue & pull request templates
2020-01-11 13:23:51 +01:00
Kristian Evers 0630ff4abd Merge pull request #1840 from anbj/fix-missing-word
Fix missing word in cct.rst and cct.1
2020-01-11 13:08:06 +01:00
andreas 0fde103a3e Fix missing word in cct.rst and cct.1 2020-01-11 12:48:27 +01:00
Even Rouault 1b7df035f9 Merge pull request #1838 from rouault/limit_datum_name_massaging_wkt1
WKT1_GDAL export: limit datum name massaging to names matching EPSG (fixes #1835)
2020-01-11 12:01:59 +01:00
Even Rouault 921541789c Merge pull request #1836 from rouault/fix_projcrs3D_with_non_metre_z_unit
createOperations(): fix dealing with projected 3D CRS whose Z units != metre
2020-01-11 11:59:04 +01:00
Even Rouault e2ee15eb8a Merge pull request #1837 from rouault/fix_exception_identify_compoundcrs_of_boundcrs
CompoundCRS::identify(): avoid exception when horiz/vertical part is a BoundCRS
2020-01-11 11:56:27 +01:00
Even Rouault d2674e0445 WKT1_GDAL export: limit datum name massaging to names matching EPSG (fixes #1835) 2020-01-11 00:36:10 +01:00
Even Rouault 30205fef7c CompoundCRS::identify(): avoid exception when horiz/vertical part is a BoundCRS
The exception only affects C++ users. It was caught by the C layer.
2020-01-10 19:04:32 +01:00
Even Rouault 863d118c6d createOperations(): fix dealing with projected 3D CRS whose Z units != metre 2020-01-10 18:31:31 +01:00
Even Rouault 39ffdcadbd Add RFC 4 text: Remote access to grids and GeoTIFF grids (#1747) 2020-01-10 17:57:20 +01:00
snowman2 a4938a9919 add notes about PR header title 2020-01-10 07:51:14 -06:00
snowman2 948c0842a4 removed question 2020-01-10 07:48:57 -06:00
Alan D. SnowandKristian Evers ec14e9b3cb Update .github/ISSUE_TEMPLATE/bug_report.md
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2020-01-10 07:47:47 -06:00
Alan D. SnowandKristian Evers 595675b1e6 Update .github/ISSUE_TEMPLATE/bug_report.md
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2020-01-10 07:46:51 -06:00
Alan D. SnowandKristian Evers c525487249 Update .github/ISSUE_TEMPLATE/bug_report.md
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2020-01-10 07:46:43 -06:00
Alan D. SnowandKristian Evers 208117b0c7 Update .github/ISSUE_TEMPLATE/feature_request.md
Co-Authored-By: Kristian Evers <kristianevers@gmail.com>
2020-01-10 07:46:37 -06:00
Kristian Evers 8884ad5638 Merge pull request #1834 from rouault/improve_doxygen_identify
Doc of CRS::identify(): make it clear that this is a best-effort attempt only
2020-01-10 10:59:26 +01:00
Even Rouault acb2bd68bc Doc of CRS::identify(): make it clear that this is a best-effort attempt only 2020-01-10 00:34:36 +01:00
Kristian Evers 0961c1951c Fix link for CoC-badge in readme file 2020-01-09 09:19:06 +01:00
snowman2 34a12d8e0d added issue & pull request templates 2020-01-08 19:52:22 -06:00
Kristian Evers 2d76bcffdc Merge pull request #1827 from rouault/improve_createObjectsFromName
Improvements regarding name aliases (refs #1823)
2020-01-08 19:42:22 +01:00
Even Rouault 6cd3a80bf5 Merge pull request #1831 from rouault/projinfo_no
projinfo: use No. abbreviation instead of UTF-8 character (fixes #1828)
2020-01-07 22:03:35 +01:00
Even Rouault 18ba7b3dfc projinfo: use No. abbreviation instead of UTF-8 character (fixes #1828) 2020-01-07 21:38:05 +01:00
Kristian Evers a76be01b5b Merge pull request #1830 from kbevers/stalebot
Add stale-bot config for GitHub
2020-01-07 18:47:59 +01:00
Kristian Evers 6edf8bf8f8 Add stale-bot config for GitHub
This should make managing issues a bit easier. All inactive issues will
be closed automatically after 60+7 days. Closing can be avoided by
adding labels from the "exemptLabels" list. Before an issue is closed a
friendly reminder is posted in the issue.
2020-01-07 16:23:30 +01:00
Kristian Evers e55bb1933c Remove deprecated JNI bindings (#1825)
Remove deprecated JNI bindings
2020-01-07 16:14:23 +01:00
Even Rouault 6426bcbd36 projinfo: support -k datum 2020-01-07 15:32:47 +01:00
Even Rouault 206a45de20 Database: insert PROJ.4 +datum values in alias_name table under PROJ authority 2020-01-07 12:27:19 +01:00
Even Rouault 3078c6b90f Database: fill alias_name with EPSG aliases for CRS 2020-01-07 12:17:14 +01:00
Even Rouault 699b92250a createObjectsFromName(): make it look up in the alias_name table too (fixes #1823) 2020-01-07 12:17:13 +01:00
Kristian Evers 679987ee35 Make sure tests pass if extra grids are present (#1822)
Make sure tests pass if extra grids are present
2020-01-07 12:11:15 +01:00
Kristian Evers ff15ab6c2d Remove deprecated JNI bindings
Closes #1757
2020-01-07 08:22:16 +01:00
Kristian Evers 529eb50f5d Merge pull request #1824 from rouault/doc_add_feedback_for_proj6_adoption
Doc: add a 'Feedback from downstream projects' for PROJ6 migration
2020-01-06 16:20:27 +01:00
Even Rouault ba4766e6dd Doc: add a 'Feedback from downstream projects' for PROJ6 migration 2020-01-06 15:04:42 +01:00
Even Rouault cff5dd526e Make sure tests pass if extra grids are present
Should fix the issue reported in https://lists.osgeo.org/pipermail/proj/2020-January/009188.html
Some extra north-american grids present in data/ can affect the results of
some tests, so create a data/for_tests/ subdirectory in which we copy only
select grids.
2020-01-05 23:50:38 +01:00
Even Rouault 5be02bf6d1 operations_computation.rst: update with latest 6.3 adjustments 2020-01-02 15:30:19 +01:00
Even Rouault ac3d7e16d1 Adjust formatting 2020-01-02 13:30:05 +01:00
Even Rouault 1f8073ac6c Merge pull request #1820 from snowman2/cs_projjson
fix exporting CoordinateSystem to PROJ JSON with ID
2020-01-02 13:28:57 +01:00
snowman2 ea31199355 fix exporting CoordinateSystem to PROJ JSON with ID 2020-01-01 22:46:48 -06:00
Kristian Evers 2da4b6f502 Update path to src/release.cpp 2020-01-01 22:03:56 +01:00
Kristian Evers fd377df0d1 Bump version numbers in preparation for 7.0.0 release 2020-01-01 22:02:54 +01:00
Kristian Evers a1e8314d97 Update github version in Sphinx config 2020-01-01 21:48:36 +01:00
Kristian Evers 837b6ab9c0 switch to 6.3 branch for website generation 2020-01-01 21:44:57 +01:00
Kristian Evers 546c98fe1d Merge remote-tracking branch 'osgeo/master' 2020-01-01 21:40:44 +01:00
Kristian Evers d4a76fdbcf Update website for 6.3.0 release 2020-01-01 21:40:28 +01:00
Even Rouault 3a31adce93 Merge pull request #1815 from rouault/unbreak_travis_builds
Travis: fix OSX builds
2019-12-29 00:30:16 +01:00
Even Rouault 7663050786 Travis: fix OSX builds 2019-12-28 23:30:46 +01:00
Even Rouault b1bb0e619f Database: add mapping for TOR27CSv1.GSB 2019-12-28 23:14:53 +01:00
Even Rouault 906f47e250 Database: add mapping for gg10_smv2.mnt and gg10_sbv2.mnt French grids 2019-12-28 22:47:02 +01:00
1186 changed files with 274740 additions and 139521 deletions

No files matched your search

-30
View File
@@ -1,30 +0,0 @@
# Cirrus CI configuration
task:
name: FreeBSD
freebsd_instance:
matrix:
image: freebsd-12-0-release-amd64
# image: freebsd-11-2-release-amd64
# image: freebsd-10-4-release-amd64
env:
CIRRUS_CLONE_DEPTH: 1
MAKE_FLAGS: -j 2
cache:
folder: $HOME/.ccache
pkginstall_script:
- pkg install -y autoconf automake libtool pkgconf sqlite3 wget unzip ccache gmake
download_grid_script:
- wget https://download.osgeo.org/proj/proj-datumgrid-1.8.zip
- (cd data && unzip -o ../proj-datumgrid-1.8.zip)
configure_script:
- ./autogen.sh
- CC="ccache cc" CXX="ccache c++" ./configure --disable-static
compile_script:
- gmake $(MAKE_FLAGS)
test_script:
- gmake check $(MAKE_FLAGS)
+29
View File
@@ -0,0 +1,29 @@
# Cirrus CI configuration
task:
name: FreeBSD
freebsd_instance:
cpu: 4
matrix:
image: freebsd-12-1-release-amd64
# image: freebsd-11-2-release-amd64
# image: freebsd-10-4-release-amd64
env:
CIRRUS_CLONE_DEPTH: 1
MAKE_FLAGS: -j 4
# Disable cache: its upload can take up to 30 minutes!
#cache:
# folder: $HOME/.ccache
pkginstall_script:
- pkg install -y autoconf automake libtool pkgconf sqlite3 tiff ccache gmake
configure_script:
- ./autogen.sh
- ./configure --disable-static
compile_script:
- gmake $(MAKE_FLAGS)
test_script:
- gmake check $(MAKE_FLAGS)
+2
View File
@@ -0,0 +1,2 @@
BasedOnStyle: llvm
IndentWidth: 4
+2
View File
@@ -0,0 +1,2 @@
.git
build
+2
View File
@@ -0,0 +1,2 @@
f090353792c0530a7aa5d02e44ad9b236986757b
aa818d6772887453432ce607410b784ff56308a1
+37
View File
@@ -0,0 +1,37 @@
---
name: Bug report
about: Create a report to help us improve
labels: bug
---
<!-- Please search existing issues to avoid creating duplicates. -->
#### Example of problem
Demonstrate the problem you have found, either by using PROJ tools like
`cs2cs`, `cct` or `projinfo` **or** add a code snippet that highlights the
problem using the PROJ C/C++ API.
A "Minimal, Complete and Verifiable Example" will make it much easier for
maintainers to help you: <http://matthewrocklin.com/blog/work/2018/02/28/minimal-bug-reports>
```c
# Your code here
```
#### Problem description
[this should explain **why** the current behavior is a problem and why the
expected output is a better solution.]
#### Expected Output
#### Environment Information
- PROJ version (`proj`)
- Operation System Information
#### Installation method
- conda, apt-get, from source, etc...
@@ -0,0 +1,7 @@
---
name: Feature request
about: Suggest an idea for this project
labels: feature request
---
<!-- Describe the feature you'd like. -->
+6
View File
@@ -0,0 +1,6 @@
<!-- Feel free to remove check-list items aren't relevant to your change -->
- [ ] Closes #xxxx
- [ ] Tests added
- [ ] Added clear title that can be used to generate release notes
- [ ] Fully documented, including updating `docs/source/*.rst` for new API
+6
View File
@@ -0,0 +1,6 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "monthly"
+47
View File
@@ -0,0 +1,47 @@
name: Update Stable Tag
on:
push:
branches:
- '**' # Matches all branches, but we later filter on the one matching the STABLE_BRANCH repository variable
permissions:
contents: read
jobs:
update-stable-tag:
runs-on: ubuntu-latest
if: github.repository == 'OSGeo/PROJ'
permissions:
contents: write
steps:
- name: Check branch match
id: check_branch
env:
STABLE_BRANCH: ${{ vars.STABLE_BRANCH }} # Repository variable
run: |
echo "Push detected on branch $GITHUB_REF"
if [[ "${GITHUB_REF#refs/heads/}" != "${STABLE_BRANCH}" ]]; then
echo "This workflow only runs for branch $STABLE_BRANCH. Skipping further steps."
echo "run=false" >> $GITHUB_OUTPUT
else
echo "run=true" >> $GITHUB_OUTPUT
fi
- name: Checkout code
if: steps.check_branch.outputs.run == 'true'
uses: actions/checkout@v5
- name: Tag
if: steps.check_branch.outputs.run == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global user.email "PROJ-bot@example.com"
git config --global user.name "PROJ-bot"
touch .dummy-file
git add .dummy-file
# Do that so that stable doesn't have the same git sha as the stable branch, so ReadTheDocs triggers a build
git commit -a -m "Add .dummy-file"
git checkout -b stable
git push -f origin stable
+19
View File
@@ -0,0 +1,19 @@
name: Backport
on:
pull_request_target:
types:
- closed
- labeled
permissions: {}
jobs:
backport:
runs-on: ubuntu-latest
name: Backport
steps:
- name: Backport Bot
id: backport
if: github.event.pull_request.merged && ( ( github.event.action == 'closed' && contains( join( github.event.pull_request.labels.*.name ), 'backport') ) || contains( github.event.label.name, 'backport' ) )
uses: m-kuhn/backport@v1.2.7
with:
github_token: ${{ secrets.BACKPORT_TOKEN }}
+36
View File
@@ -0,0 +1,36 @@
name: CIFuzz
on:
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
Fuzzing:
runs-on: ubuntu-latest
steps:
- name: Build Fuzzers
id: build
uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
with:
oss-fuzz-project-name: 'proj4'
dry-run: false
- name: Run Fuzzers
uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
with:
oss-fuzz-project-name: 'proj4'
fuzz-seconds: 600
dry-run: false
- name: Upload Crash
uses: actions/upload-artifact@v4
if: failure() && steps.build.outcome == 'success'
with:
name: artifacts
path: ./out/artifacts
+57
View File
@@ -0,0 +1,57 @@
name: Clang Linux
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
clang_linux:
runs-on: ubuntu-latest
env:
PROJ_CMAKE_BUILD_OPTIONS: ${{ matrix.PROJ_CMAKE_BUILD_OPTIONS }}
strategy:
fail-fast: false
matrix:
include:
- name: Regular
id: regular
PROJ_CMAKE_BUILD_OPTIONS: ""
- name: EMBED_RESOURCE_FILES
id: EMBED_RESOURCE_FILES
PROJ_CMAKE_BUILD_OPTIONS: "-DEMBED_RESOURCE_FILES=ON"
- name: Without TIFF
id: without_tiff
PROJ_CMAKE_BUILD_OPTIONS: "-DENABLE_TIFF=OFF"
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Cache
uses: actions/cache@v4
id: cache
with:
path: |
${{ github.workspace }}/ccache.tar.gz
key: ${{ runner.os }}-cache-clang-${{ matrix.id }}-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-clang-${{ matrix.id }}-
- name: Run
run: docker run -e CI -e TRAVIS_BUILD_DIR="$PWD" -e PROJ_CMAKE_BUILD_OPTIONS="$PROJ_CMAKE_BUILD_OPTIONS" -e WORK_DIR="$PWD" -e TRAVIS_OS_NAME=linux -e BUILD_NAME=linux_clang -v $PWD:$PWD ubuntu:20.04 $PWD/.github/workflows/clang_linux/start.sh
+35
View File
@@ -0,0 +1,35 @@
#!/bin/sh
set -e
apt-get update -y
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
autoconf automake libtool make cmake ccache pkg-config python3-pip sqlite3 tar zip curl \
clang++-10 jq python3-clang-10 \
libsqlite3-dev \
libtiff-dev libwebp-dev libzstd-dev \
libcurl4-openssl-dev libnghttp2-dev libidn2-dev librtmp-dev libssh-dev \
libpsl-dev libssl-dev libkrb5-dev comerr-dev libldap2-dev libbrotli-dev \
nlohmann-json3-dev libgtest-dev
export PATH=$HOME/.local/bin:$PATH
python3 -m pip config --user set global.progress_bar off
python3 -m pip install --user jsonschema pyyaml pytest
cd "$WORK_DIR"
if test -f "$WORK_DIR/ccache.tar.gz"; then
echo "Restoring ccache..."
(cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz")
else
mkdir -p $HOME/.ccache
fi
ccache -M 500M
# -fno-use-cxa-atexit is needed to build with -coverage
CC="clang-10" CXX="clang++-10" CFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" CXXFLAGS="-Werror -fsanitize=address -fno-use-cxa-atexit" LDFLAGS="-fsanitize=address" ./travis/install.sh
echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache)
@@ -0,0 +1,28 @@
name: Clang Static Analyzer
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
clang_static_analyzer:
runs-on: ubuntu-24.04
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Run
run: .github/workflows/clang_static_analyzer/start.sh
+41
View File
@@ -0,0 +1,41 @@
#!/bin/bash
set -e
sudo apt-get update
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y --no-install-recommends \
g++ cmake make sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev jq \
clang-tools libfindbin-libs-perl
NPROC=$(nproc)
echo "NPROC=${NPROC}"
export MAKEFLAGS="-j ${NPROC}"
mkdir csa_build
cd csa_build
scan-build -o scanbuildoutput -plist -v cmake ..
scan-build -o scanbuildoutput -sarif -v -enable-checker alpha.unix.cstring.OutOfBounds,alpha.unix.cstring.BufferOverlap,optin.cplusplus.VirtualCall,optin.cplusplus.UninitializedObject make
rm -f filtered_scanbuild.txt
files=$(find scanbuildoutput -name "*.sarif")
for f in $files; do
jq '.runs[].results[] | (if .locations[].physicalLocation.fileLocation.uri | (index("_generated_parser") ) then empty else { "uri": .locations[].physicalLocation.fileLocation.uri, "msg": .message.text, "location": .codeFlows[-1].threadFlows[-1].locations[-1] } end)' < $f > tmp.txt
if [ -s tmp.txt ]; then
echo "Errors from $f: "
cat $f
echo ""
cat tmp.txt >> filtered_scanbuild.txt
fi
rm -f tmp.txt
done
if [ -s filtered_scanbuild.txt ]; then
echo ""
echo ""
echo "========================"
echo "Summary of errors found:"
cat filtered_scanbuild.txt
/bin/false
fi
+100
View File
@@ -0,0 +1,100 @@
name: Code Checks
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
cppcheck_2204:
runs-on: ubuntu-22.04
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Install Requirements
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends cppcheck
- name: Run cppcheck test
run: ./scripts/cppcheck.sh
cppcheck_master:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Install Requirements
run: |
sudo apt update
sudo apt install -y --no-install-recommends git cmake g++ make
- name: Build cppcheck
run: |
git clone https://github.com/danmar/cppcheck
cd cppcheck
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
make -j$(nproc)
sudo make install
cd ../..
- name: Run cppcheck test (on push events)
if: ${{ github.event_name == 'push' }}
run: |
./scripts/cppcheck.sh
- name: Run cppcheck test, but ignore failures (on pull request)
if: ${{ github.event_name == 'pull_request' }}
run: |
# Do not fail the job. This is just used as a tool to monitor how we are regarding recent cppcheck
./scripts/cppcheck.sh || /bin/true
code_quality_checks:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Detect missing includes
run: ./scripts/detect_missing_include.sh
other_checks:
runs-on: ubuntu-24.04
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Install Requirements
run: |
sudo apt-get install -y --no-install-recommends python3-pip
sudo apt-get remove -y python3-jsonschema
sudo pip3 install --break-system-packages cffconvert
- name: Validate citation file
run: |
cffconvert --validate
cffconvert -f bibtex
cffconvert -f apalike
linting:
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
- uses: pre-commit/action@v3.0.1
+104
View File
@@ -0,0 +1,104 @@
name: "CodeQL"
on:
push:
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
analyze:
name: Analyze
# Runner size impacts CodeQL analysis time. To learn more, please see:
# - https://gh.io/recommended-hardware-resources-for-running-codeql
# - https://gh.io/supported-runners-and-hardware-resources
# - https://gh.io/using-larger-runners
# Consider using larger runners for possible analysis time improvements.
runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }}
timeout-minutes: ${{ (matrix.language == 'swift' && 120) || 360 }}
permissions:
actions: read
contents: read
security-events: write
strategy:
fail-fast: false
matrix:
language: [ 'c-cpp' ]
# CodeQL supports [ 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' ]
# Use only 'java-kotlin' to analyze code written in Java, Kotlin or both
# Use only 'javascript-typescript' to analyze code written in JavaScript, TypeScript or both
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
steps:
- name: Checkout repository
uses: actions/checkout@v5
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
# queries: security-extended,security-and-quality
config: |
query-filters:
- exclude:
id: cpp/non-https-url
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y ccache cmake g++ sqlite3 libsqlite3-dev libtiff-dev libcurl4-openssl-dev
# cache the .ccache directory
# key it on the runner os, build type, deps, and arch
# It's especially important to include arch in the key because we
# may get runtime errors with -mavx2 from objects built on a
# different architecture.
- name: Restore build cache
if: matrix.language == 'c-cpp'
id: restore-cache
uses: actions/cache/restore@v4
with:
path: ${{ github.workspace }}/.ccache
key: ${{ matrix.id }}-${{ steps.get-arch.outputs.arch }}-${{ github.ref_name }}-${{ github.run_id }}
restore-keys: |
${{ matrix.id }}-${{ steps.get-arch.outputs.arch }}-${{ github.ref_name }}
${{ matrix.id }}-${{ steps.get-arch.outputs.arch }}
- name: Configure ccache
if: matrix.language == 'c-cpp'
run: |
echo CCACHE_BASEDIR=${{ github.workspace }} >> ${GITHUB_ENV}
echo CCACHE_DIR=${{ github.workspace }}/.ccache >> ${GITHUB_ENV}
echo CCACHE_MAXSIZE=250M >> ${GITHUB_ENV}
ccache -z
- name: Build
if: matrix.language == 'c-cpp'
run: |
mkdir build
cd build
cmake .. -DCMAKE_BUILD_TYPE=RelWithDebInfo -DUSE_CCACHE=YES
make -j$(nproc)
- name: Summarize ccache
if: matrix.language == 'c-cpp'
run: |
ccache -s
- name: Save build cache
if: matrix.language == 'c-cpp'
uses: actions/cache/save@v4
with:
path: ${{ github.workspace }}/.ccache
key: ${{ steps.restore-cache.outputs.cache-primary-key }}
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: "/language:${{matrix.language}}"
+57
View File
@@ -0,0 +1,57 @@
name: Conda
on:
push:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
conda:
name: Conda ${{ matrix.platform }}
if: github.repository == 'OSGeo/PROJ'
runs-on: ${{ matrix.platform }}
strategy:
fail-fast: true
matrix:
# macos-13: Intel
# macos-14: arm64
platform: ['ubuntu-latest','windows-latest','macos-13','macos-14']
env:
GHA_CI_PLATFORM: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v5
- uses: conda-incubator/setup-miniconda@v3
with:
miniforge-version: latest
use-mamba: true
channels: conda-forge
auto-update-conda: true
- name: Setup
shell: bash -l {0}
run: |
source ./scripts/ci/conda/setup.sh
- name: Build
shell: bash -l {0}
run: |
source ../scripts/ci/conda/compile.sh
working-directory: ./proj.4-feedstock
- uses: actions/upload-artifact@v4
with:
name: ${{ matrix.platform }}-conda-package
path: ./proj.4-feedstock/packages/
+54
View File
@@ -0,0 +1,54 @@
name: Coverity scan
# Controls when the action will run.
on:
# Run this action on a schedule (we're allowed a maximum of two per day)
schedule:
- cron: '0 18 * * SUN' # Sunday at 18:00 UTC
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
permissions:
contents: read
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
coverity:
runs-on: ubuntu-22.04
if: github.repository == 'OSGeo/PROJ'
steps:
- uses: actions/checkout@v5
- name: Install Libraries
run: |
sudo apt-get update
sudo apt-get install --allow-unauthenticated curl libcurl4-gnutls-dev libtiff-dev sqlite3 libsqlite3-dev g++ make cmake
- name: Configure PROJ
run: |
cmake . -DCMAKE_BUILD_TYPE=Debug -DBUILD_TESTING=OFF
- name: Download Coverity Build Tool
run: |
wget -q https://scan.coverity.com/download/cxx/linux64 --post-data "token=$TOKEN&project=OSGeo%2Fproj.4" -O cov-analysis-linux64.tar.gz
mkdir cov-analysis-linux64
tar xzf cov-analysis-linux64.tar.gz --strip 1 -C cov-analysis-linux64
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
- name: Build with cov-build
run: |
pwd
export PATH=`pwd`/cov-analysis-linux64/bin:$PATH
cov-build --dir cov-int make -j$(nproc)
- name: Submit to Coverity Scan
run: |
tar czvf proj.tgz cov-int
curl \
--form project=OSGeo%2Fproj.4 \
--form token=$TOKEN \
--form email=even.rouault@spatialys.com \
--form file=@proj.tgz \
--form version=master \
--form description="`git rev-parse --abbrev-ref HEAD` `git rev-parse --short HEAD`" \
https://scan.coverity.com/builds?project=OSGeo%2Fproj.4
env:
TOKEN: ${{ secrets.COVERITY_SCAN_TOKEN }}
+59
View File
@@ -0,0 +1,59 @@
name: Docs
on:
push:
branches-ignore:
- 'backport**'
- 'dependabot**'
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
docs:
name: Documentation checks
runs-on: ubuntu-latest
strategy:
fail-fast: true
container: ghcr.io/osgeo/proj-docs
steps:
- uses: actions/checkout@ff7abcd0c3c05ccf6adc123a8cd1fd4fb30fb493 # v4.1.7
- name: Update sphinx-rtd-theme
shell: bash -l {0}
run: |
pip install -U "sphinx-rtd-theme>=3.0.0"
- name: Print versions
shell: bash -l {0}
run: |
python3 --version
sphinx-build --version
python3 -m pip list --not-required --format=columns
- name: Lint .rst files
shell: bash -l {0}
run: |
set -eu
if find . -name '*.rst' | xargs grep -P '\t'; then echo 'Tabs are bad, please use four spaces in .rst files.'; false; fi
if find . -name '*.rst' | xargs grep "\.\.versionadded"; then echo 'Wrong annotation. Should be .. versionadded'; false; fi
if find . -name '*.rst' | xargs grep "\.\.note"; then echo 'Wrong annotation. Should be .. note'; false; fi
if find . -name '*.rst' | xargs grep "\.\.warning"; then echo 'Wrong annotation. Should be .. warning'; false; fi
if find . -name '*.rst' | xargs grep "\.\.codeblock"; then echo 'Wrong annotation. Should be .. codeblock'; false; fi
working-directory: ./docs
- name: Doxygen
shell: bash -l {0}
run: |
make .doxygen_up_to_date
working-directory: ./docs
- name: Spelling
shell: bash -l {0}
run: |
make spelling SPHINXOPTS=-W
working-directory: ./docs
+37
View File
@@ -0,0 +1,37 @@
name: Fedora Rawhide
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
fedora_rawhide:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Cache
uses: actions/cache@v4
id: cache
with:
path: |
${{ github.workspace }}/ccache.tar.gz
key: ${{ runner.os }}-cache-fedora_rawhide-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-fedora_rawhide-
- name: Run
run: docker run -e CI -e WORK_DIR="$PWD" -v $PWD:$PWD fedora:rawhide $PWD/.github/workflows/fedora_rawhide/start.sh
+55
View File
@@ -0,0 +1,55 @@
#!/bin/bash
set -e
dnf install -y cmake clang ccache ninja-build sqlite-devel libtiff-devel libcurl-devel diffutils wget
cd "$WORK_DIR"
if test -f "$WORK_DIR/ccache.tar.gz"; then
echo "Restoring ccache..."
(cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz")
fi
export CCACHE_CPP2=yes
ccache -M 500M
ccache -s
mkdir build
cd build
echo "Build with -DEMBED_RESOURCE_FILES=ON"
CC=clang CXX=clang++ cmake .. \
-DEMBED_RESOURCE_FILES=ON -DUSE_CCACHE=ON -DPROJ_DB_CACHE_DIR=$HOME/.ccache ..
make -j$(nproc)
ctest -j$(nproc)
# Try EMBED_RESOURCE_DIRECTORY option
wget https://raw.githubusercontent.com/OSGeo/PROJ-data/refs/heads/master/us_nga/us_nga_egm96_15.tif
mkdir grids
mv us_nga_egm96_15.tif grids
echo "Build with -DEMBED_RESOURCE_FILES=ON -DEMBED_RESOURCE_DIRECTORY=$PWD/grids"
CC=clang CXX=clang++ cmake .. -DEMBED_RESOURCE_DIRECTORY=$PWD/grids
make -j$(nproc)
rm -rf data
echo 49 2 0 | bin/cs2cs "WGS84 + EGM96 height" EPSG:4979
echo 49 2 0 | bin/cs2cs "WGS84 + EGM96 height" EPSG:4979 | grep 44.643 >/dev/null || (echo "Expected 49dN 2dE 44.643 as a result" && /bin/false)
echo 0 0 0 | bin/cct +init=ITRF2000:ITRF96
echo 0 0 0 | bin/cct +init=ITRF2000:ITRF96 | grep 0.0067 >/dev/null || (echo "Expected 0.0067 0.0061 -0.0185 as a result" && /bin/false)
echo "Build with -DEMBED_RESOURCE_FILES=ON -DEMBED_RESOURCE_DIRECTORY=$PWD/grids -DUSE_ONLY_EMBEDDED_RESOURCE_FILES=ON"
CC=clang CXX=clang++ cmake .. -DEMBED_RESOURCE_DIRECTORY=$PWD/grids -DUSE_ONLY_EMBEDDED_RESOURCE_FILES=ON
make -j$(nproc)
rm -rf data
echo 49 2 0 | bin/cs2cs "WGS84 + EGM96 height" EPSG:4979
echo 49 2 0 | bin/cs2cs "WGS84 + EGM96 height" EPSG:4979 | grep 44.643 >/dev/null || (echo "Expected 49dN 2dE 44.643 as a result" && /bin/false)
echo 0 0 0 | bin/cct +init=ITRF2000:ITRF96
echo 0 0 0 | bin/cct +init=ITRF2000:ITRF96 | grep 0.0067 >/dev/null || (echo "Expected 0.0067 0.0061 -0.0185 as a result" && /bin/false)
cd ..
ccache -s
echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .cache)
+37
View File
@@ -0,0 +1,37 @@
name: Linux GCC 32bit
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
linux_gcc_32bit:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Cache
uses: actions/cache@v4
id: cache
with:
path: |
${{ github.workspace }}/ccache.tar.gz
key: ${{ runner.os }}-cache-gcc32bit-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-gcc32bit-
- name: Run
run: docker run -e CI -e WORK_DIR="$PWD" -v $PWD:$PWD ubuntu:20.04 $PWD/.github/workflows/linux_gcc_32bit/start.sh
+50
View File
@@ -0,0 +1,50 @@
#!/bin/bash
set -e
export TRAVIS_OS_NAME=linux
export BUILD_NAME=linux_gcc_32bit
export TRAVIS_BUILD_DIR="$WORK_DIR"
ARCH=i386
dpkg --add-architecture i386
apt-get update -y
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends -o APT::Immediate-Configure=0 \
autoconf automake libtool make cmake ccache pkg-config python3-pip sqlite3 tar zip curl \
gcc-multilib g++-multilib g++ jq dpkg-dev \
libsqlite3-dev:$ARCH \
libtiff-dev:$ARCH libwebp-dev:$ARCH libzstd-dev:$ARCH \
libcurl4-openssl-dev:$ARCH libnghttp2-dev:$ARCH libidn2-dev:$ARCH librtmp-dev:$ARCH libssh-dev:$ARCH \
libpsl-dev:$ARCH libssl-dev:$ARCH libkrb5-dev:$ARCH comerr-dev:$ARCH libldap2-dev:$ARCH libbrotli-dev:$ARCH
export PATH=$HOME/.local/bin:$PATH
python3 -m pip config --user set global.progress_bar off
python3 -m pip install --user jsonschema ruamel.yaml
export CXXFLAGS='-m32 -D_GLIBCXX_ASSERTIONS'
export CFLAGS='-m32'
export TIFF_CFLAGS=-I/usr/include/i386-linux-gnu
export TIFF_LIBS="-L/usr/lib/i386-linux-gnu -ltiff"
export SQLITE3_CFLAGS=-I/usr/include/i386-linux-gnu
export SQLITE3_LIBS="-L/usr/lib/i386-linux-gnu -lsqlite3"
export PKG_CONFIG=i686-linux-gnu-pkg-config
cd "$WORK_DIR"
if test -f "$WORK_DIR/ccache.tar.gz"; then
echo "Restoring ccache..."
(cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz")
else
mkdir -p $HOME/.ccache
fi
ccache -M 500M
CFLAGS="-Werror $CFLAGS" CXXFLAGS="-Werror $CXXFLAGS" CMAKE_BUILD_TYPE=RelWithDebInfo ./travis/install.sh
echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && tar czf "$WORK_DIR/ccache.tar.gz" .ccache)
+64
View File
@@ -0,0 +1,64 @@
name: MacOS build
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
macos_build:
strategy:
fail-fast: true
matrix:
include:
- platform: "macos-13"
architecture: "x64"
# macOS-14 is a M1 ARM64 MacOS runner: https://github.blog/changelog/2024-01-30-github-actions-introducing-the-new-m1-macos-runner-available-to-open-source/
- platform: "macOS-14"
architecture: "arm64"
runs-on: ${{ matrix.platform }}
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- uses: actions/checkout@v5
- uses: mamba-org/setup-micromamba@v2
with:
init-shell: bash
environment-file: .github/workflows/mac/environment.yml
- name: Cache
uses: actions/cache@v4
id: cache
with:
path: ${{ github.workspace }}/.ccache
key: ${{ runner.os }}-cache-mac-${{ matrix.architecture }}-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-mac-${{ matrix.architecture }}-
- name: Install Requirements
shell: bash -l {0}
run: |
source .github/workflows/mac/before_install.sh
- name: Build
shell: bash -l {0}
run: |
export TRAVIS_BUILD_DIR=$PWD
source .github/workflows/mac/install.sh
env:
CCACHE_DIR: ${{ github.workspace }}/.ccache
TRAVIS_OS_NAME: osx
BUILD_NAME: osx
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
set -e
mamba install --yes --quiet --only-deps proj
+19
View File
@@ -0,0 +1,19 @@
name: proj
channels:
- conda-forge
dependencies:
- python=3.8
- conda
- mamba
- compilers
- ninja
- cmake
- pkg-config
- ccache
- autoconf
- automake
- m4
- jsonschema
- ruamel.yaml
- pytest
+7
View File
@@ -0,0 +1,7 @@
#!/bin/bash
set -e
ccache -M 200M
CC="clang" CXX="clang++" CFLAGS="-Werror" CXXFLAGS="-Werror" CMAKE_BUILD_TYPE=RelWithDebInfo ./travis/install.sh
+37
View File
@@ -0,0 +1,37 @@
name: mingw_w64 build
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
mingw_w64_build:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Cache
uses: actions/cache@v4
id: cache
with:
path: |
${{ github.workspace }}/ccache.tar.gz
key: ${{ runner.os }}-cache-mingw_w64-${{ github.run_id }}
restore-keys: ${{ runner.os }}-cache-mingw_w64-
- name: Build
run: docker run -e CI -e TRAVIS_OS_NAME=linux -e BUILD_NAME=mingw_w64 -e WORK_DIR="$PWD" -v $PWD:$PWD ubuntu:22.04 $PWD/.github/workflows/mingw_w64/start.sh
+128
View File
@@ -0,0 +1,128 @@
#!/bin/sh
set -e
SCRIPT_DIR=$(dirname "$0")
case $SCRIPT_DIR in
"/"*)
;;
".")
SCRIPT_DIR=$(pwd)
;;
*)
SCRIPT_DIR=$(pwd)/$(dirname "$0")
;;
esac
apt-get update -y
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
sudo wget tzdata
USER=root
export USER
cd "$WORK_DIR"
if test -f "$WORK_DIR/ccache.tar.gz"; then
echo "Restoring ccache..."
(cd $HOME && tar xzf "$WORK_DIR/ccache.tar.gz")
else
mkdir -p $HOME/.ccache
fi
sudo apt-get install -y --no-install-recommends \
binutils-mingw-w64-x86-64 \
gcc-mingw-w64-x86-64 \
g++-mingw-w64-x86-64 \
g++-mingw-w64 \
mingw-w64-tools \
wine-stable \
cmake make ccache \
sqlite3 \
curl ca-certificates
# Select posix/pthread for std::mutex
update-alternatives --set x86_64-w64-mingw32-gcc /usr/bin/x86_64-w64-mingw32-gcc-posix
update-alternatives --set x86_64-w64-mingw32-g++ /usr/bin/x86_64-w64-mingw32-g++-posix
ccache -M 500M
ccache -s
MINGW_ARCH=x86_64-w64-mingw32
MINGW_PREFIX=/usr/lib/gcc/$MINGW_ARCH/10-posix
export CC="$MINGW_ARCH-gcc"
export CXX="$MINGW_ARCH-g++"
export LD=$MINGW_ARCH-ld
UNAME="$(uname)" || UNAME=""
NPROC=$(nproc);
echo "NPROC=${NPROC}"
export MAKEFLAGS="-j ${NPROC}"
# prepare wine environment
export WINE_PREFIX="$HOME/.wine"
WINE_SYSDIR=$WINE_PREFIX/drive_c/windows
wine64 cmd /c dir
ln -s $MINGW_PREFIX/libstdc++-6.dll $WINE_SYSDIR
ln -s $MINGW_PREFIX/libgcc_s_seh-1.dll $WINE_SYSDIR
# ln -s $MINGW_PREFIX/libgcc_s_sjlj-1.dll $WINE_SYSDIR
ln -s /usr/$MINGW_ARCH/lib/libwinpthread-1.dll $WINE_SYSDIR
# build zlib
wget -q https://github.com/madler/zlib/archive/v1.2.11.tar.gz
tar xzf v1.2.11.tar.gz
(cd zlib-1.2.11 && \
sudo make install -f win32/Makefile.gcc SHARED_MODE=1 \
PREFIX=${MINGW_ARCH}- \
prefix=/usr/${MINGW_ARCH} \
DESTDIR=/usr/${MINGW_ARCH}/ \
BINARY_PATH=bin INCLUDE_PATH=include LIBRARY_PATH=lib)
ln -s /usr/$MINGW_ARCH/bin/zlib1.dll $WINE_SYSDIR
# build libtiff
wget -q http://download.osgeo.org/libtiff/tiff-4.1.0.tar.gz
tar xzf tiff-4.1.0.tar.gz
(cd tiff-4.1.0 && ./configure --host=$MINGW_ARCH --prefix=/usr/$MINGW_ARCH && make && sudo make install)
ln -s /usr/$MINGW_ARCH/bin/libtiff-5.dll $WINE_SYSDIR
# build sqlite3
wget -q https://sqlite.org/2020/sqlite-autoconf-3330000.tar.gz
tar xzf sqlite-autoconf-3330000.tar.gz
# Build with SQLITE_DQS=0 to ensure we properly use single quotes and double quotes (cf issue #2480)
(cd sqlite-autoconf-3330000 &&
CFLAGS="-DSQLITE_DQS=0" ./configure --host=$MINGW_ARCH --prefix=/usr/$MINGW_ARCH && make && sudo make install)
ln -s /usr/$MINGW_ARCH/bin/libsqlite3-0.dll $WINE_SYSDIR
# build proj
rm -rf build
mkdir build
cd build
cmake -G "Unix Makefiles" \
-D CMAKE_SYSTEM_NAME=Windows \
-D CMAKE_CROSSCOMPILING_EMULATOR=/usr/bin/wine64 \
-D CMAKE_C_COMPILER=/usr/bin/${MINGW_ARCH}-gcc \
-D CMAKE_CXX_COMPILER=/usr/bin/${MINGW_ARCH}-g++ \
-D CMAKE_C_FLAGS="-Werror" \
-D CMAKE_CXX_FLAGS="-Werror" \
-D CMAKE_BUILD_TYPE=Release \
-D CMAKE_FIND_ROOT_PATH=/usr/${MINGW_ARCH} \
-D CMAKE_INSTALL_PREFIX=/tmp/proj_install \
-D ENABLE_CURL=OFF \
-D BUILD_PROJSYNC=OFF \
-D USE_CCACHE=ON \
-D PROJ_DB_CACHE_DIR=$HOME/.ccache \
..
make
# Run a subset of tests that should pass
ctest --output-on-failure -R "proj_test_cpp_api|geodesic-test|proj_errno_string_test|proj_angular_io_test|proj_context_test|pj_phi2_test|gie_self_tests|test_network|test_defmodel|test_tinshift|test_misc|test_fork"
# TODO: fix failing tests with .gie files; see #2168 and run
# PROJ_DATA=./data/for_tests wine64 ./bin/gie.exe ../test/gie/more_builtins.gie
make install
ccache -s
echo "Saving ccache..."
rm -f "$WORK_DIR/ccache.tar.gz"
(cd $HOME && test ! -e .ccache || tar czf "$WORK_DIR/ccache.tar.gz" .ccache)
+93
View File
@@ -0,0 +1,93 @@
name: Handle stale issues
on:
schedule:
- cron: "30 2 * * *"
permissions:
contents: read
jobs:
stale:
permissions:
issues: write # for actions/stale to close stale issues
pull-requests: write # for actions/stale to close stale PRs
if: github.repository_owner == 'osgeo'
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-pr-message: >
The PROJ project highly values your contribution and would love to see
this work merged!
Unfortunately this PR has not had any activity in the last two months and
is being automatically marked as "stale".
If you think this pull request should be merged, please check
- that all unit tests are passing
- that all comments by reviewers have been addressed
- that there is enough information for reviewers, in particular
- link to any issues which this pull request fixes
- add a description of workflows which this pull request fixes
- add terminal output examples if applicable
- that you have written unit tests where possible
In case you should have any uncertainty, please leave a comment and we will
be happy to help you proceed with this pull request.
If there is no further activity on this pull request, it will be closed in a
week.
close-pr-message: >
While we hate to see this happen, this PR has been automatically closed because
it has not had any activity in the last 2 months. If this pull request should be
reconsidered, please follow the guidelines in the previous comment and reopen
this pull request. Or, if you have any further questions, just ask! We love to
help, and if there's anything the PROJ project can do to help push this PR forward
please let us know how we can assist.
stale-pr-label: 'stale'
exempt-pr-labels: 'pinned'
days-before-pr-stale: 60
days-before-pr-close: 7
stale-issue-message: >
The PROJ project highly values your report and would love to see it addressed.
However, this issue has been left in feedback mode for the last two months and is
being automatically marked as "stale".
If you would like to continue with this issue, please provide any missing information
or answer any open questions. If you could resolve the issue yourself meanwhile,
please leave a note for future readers with the same problem and close the issue.
In case you should have any uncertainty, please leave a comment and we will be
happy to help you proceed with this issue.
If there is no further activity on this issue, it will be closed in a week.
close-issue-message: >
While we hate to see this happen, this issue has been automatically closed because
it has not had any activity in the last two months despite being marked as feedback.
If this issue should be reconsidered, please follow the guidelines in the previous
comment and reopen this issue.
Or, if you have any further questions, there are also
[further support channels](https://proj.org/community/channels.html)
that can help you.
stale-issue-label: 'stale'
only-issue-labels: 'feedback'
days-before-issue-stale: 60
days-before-issue-close: 7
operations-per-run: 1000
+222
View File
@@ -0,0 +1,222 @@
name: Windows build
on:
push:
paths-ignore:
- 'docs/**'
pull_request:
paths-ignore:
- 'docs/**'
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
MSVC:
runs-on: windows-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
strategy:
fail-fast: false
matrix:
BUILD_SHARED_LIBS: [ON, OFF]
BUILD_TYPE: [Release, Debug]
env:
ARCH: x64
BUILD_SHARED_LIBS: ${{ matrix.BUILD_SHARED_LIBS }}
BUILD_TYPE: ${{ matrix.BUILD_TYPE }}
CMAKE_GENERATOR: Ninja
steps:
- uses: actions/checkout@v5
- uses: actions/setup-python@v5
with:
python-version: "3.x"
- run: pip install pyyaml
- uses: ilammy/msvc-dev-cmd@v1
- name: Cache vcpkg packages
uses: actions/cache@v4
id: cache
with:
path: c:\vcpkg\installed
key: ${{ runner.os }}-vcpkg-${{ hashFiles('.github/workflows/windows.yml') }}
- name: Install build requirements
shell: cmd
if: steps.cache.outputs.cache-hit != 'true'
run: |
vcpkg install sqlite3[core,tool] tiff curl --triplet=${{ env.ARCH }}-windows
- name: Build
shell: cmd
run: |
set VCPKG_INSTALLED=c:\vcpkg\installed\${{ env.ARCH }}-windows
dir %VCPKG_INSTALLED%\bin
dir %VCPKG_INSTALLED%\tools
set PROJ_DB_CACHE_DIR=%VCPKG_INSTALLED%\cache
mkdir %PROJ_DB_CACHE_DIR%
set PATH=%VCPKG_INSTALLED%\bin;%VCPKG_INSTALLED%\tools;%PATH%
set PROJ_BUILD=%GITHUB_WORKSPACE%\build
mkdir %PROJ_BUILD%
cd %PROJ_BUILD%
set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir
:: Not directly linked to BUILD_SHARED_LIBS, but a way to test different C++ standard versions
if "${{ env.BUILD_SHARED_LIBS }}"=="ON" (set CMAKE_CXX_STANDARD="-DCMAKE_CXX_STANDARD=20")
if "${{ env.BUILD_TYPE }}"=="Release" (set CMAKE_UNITY_BUILD_OPT="-DCMAKE_UNITY_BUILD=ON")
cmake -D CMAKE_BUILD_TYPE="${{ env.BUILD_TYPE }}" ^
-D BUILD_SHARED_LIBS="${{ env.BUILD_SHARED_LIBS }}" ^
-D EXPORT_PDB="ON" ^
-D CMAKE_C_FLAGS="/WX" ^
-D CMAKE_CXX_FLAGS="/WX" ^
%CMAKE_CXX_STANDARD% ^
-D CMAKE_TOOLCHAIN_FILE=c:/vcpkg/scripts/buildsystems/vcpkg.cmake ^
-D CMAKE_INSTALL_PREFIX="%PROJ_DIR%" ^
-D PROJ_DB_CACHE_DIR=%PROJ_DB_CACHE_DIR% ^
%CMAKE_UNITY_BUILD_OPT% ..
ninja -v
ninja install
dir %PROJ_DIR%\bin
- name: Run tests
shell: bash -l {0}
run: |
export VCPKG_ROOT=c:/vcpkg
export platform=${{ env.ARCH }}
export VCPKG_INSTALLED=${VCPKG_ROOT}/installed/${platform}-windows
export PATH=${VCPKG_INSTALLED}/bin:${PATH}
export PROJ_DIR=${GITHUB_WORKSPACE}/proj_dir
export PROJ_BUILD=${GITHUB_WORKSPACE}/build
cd ${PROJ_BUILD}
ctest --output-on-failure -C "${{ env.BUILD_TYPE }}"
- name: Post install checks
shell: cmd
run: |
set VCPKG_ROOT=c:\vcpkg
set platform=${{ env.ARCH }}
set VCPKG_INSTALLED=%VCPKG_ROOT%\installed\%platform%-windows
set PATH=%VCPKG_INSTALLED%\bin;%PATH%
set PROJ_DIR=%GITHUB_WORKSPACE%\proj_dir
set PROJ_BUILD=%GITHUB_WORKSPACE%\build
cd %PROJ_BUILD%
set PATH=%PROJ_DIR%\bin;%PATH%
set BUILD_MODE=shared
if "${{ env.BUILD_SHARED_LIBS }}"=="OFF" (set BUILD_MODE=static)
if "${{ env.BUILD_TYPE }}"=="Release" call %GITHUB_WORKSPACE%\test\postinstall\test_cmake.bat %PROJ_DIR% %BUILD_MODE%
if "${{ env.BUILD_TYPE }}"=="Release" proj
MSYS2:
runs-on: windows-latest
if: "!contains(github.event.head_commit.message, '[ci skip]') && !contains(github.event.head_commit.message, '[skip ci]')"
defaults:
run:
shell: msys2 {0}
strategy:
fail-fast: false
matrix:
BUILD_SHARED_LIBS: [ON, OFF]
env:
BUILD_SHARED_LIBS: ${{ matrix.BUILD_SHARED_LIBS }}
BUILD_TYPE: Release
CMAKE_GENERATOR: "MSYS Makefiles"
steps:
- uses: actions/checkout@v5
- name: Cache
uses: actions/cache@v4
id: cache
with:
path: ~/.ccache
key: ${{ runner.os }}-cache-msys-${{ hashFiles('.github/workflows/windows.yml') }}
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: true
install: >-
git
make
mingw-w64-x86_64-cmake
mingw-w64-x86_64-ccache
mingw-w64-x86_64-curl
mingw-w64-x86_64-gcc
mingw-w64-x86_64-libtiff
mingw-w64-x86_64-python-yaml
mingw-w64-x86_64-sqlite3
- name: First build with EMBED_RESOURCE_FILES=ON and USE_ONLY_EMBEDDED_RESOURCE_FILES=ON
run: |
mkdir -p $HOME/.ccache
ccache -M 500M
ccache -s
PROJ_BUILD=${GITHUB_WORKSPACE}/build
PROJ_DIR=${GITHUB_WORKSPACE}/proj_dir
mkdir ${PROJ_BUILD}
cd ${PROJ_BUILD}
cmake -D CMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
-D BUILD_SHARED_LIBS=${{ env.BUILD_SHARED_LIBS }} \
-D CMAKE_INSTALL_PREFIX="${PROJ_DIR}" \
-D CMAKE_C_FLAGS="-Werror" \
-D CMAKE_CXX_FLAGS="-Werror" \
-D USE_CCACHE=ON \
-D PROJ_DB_CACHE_DIR=$HOME/.ccache \
-D CMAKE_UNITY_BUILD=ON \
-D Python_ROOT_DIR=/mingw64 \
-D CMAKE_CXX_STANDARD=20 \
-D EMBED_RESOURCE_FILES=ON \
-D USE_ONLY_EMBEDDED_RESOURCE_FILES=ON \
..
make -j 2
- name: Seond build with EMBED_RESOURCE_FILES=OFF and USE_ONLY_EMBEDDED_RESOURCE_FILES=OFF
run: |
PROJ_BUILD=${GITHUB_WORKSPACE}/build
PROJ_DIR=${GITHUB_WORKSPACE}/proj_dir
cd ${PROJ_BUILD}
cmake -D CMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
-D BUILD_SHARED_LIBS=${{ env.BUILD_SHARED_LIBS }} \
-D CMAKE_INSTALL_PREFIX="${PROJ_DIR}" \
-D CMAKE_C_FLAGS="-Werror" \
-D CMAKE_CXX_FLAGS="-Werror" \
-D USE_CCACHE=ON \
-D PROJ_DB_CACHE_DIR=$HOME/.ccache \
-D CMAKE_UNITY_BUILD=ON \
-D Python_ROOT_DIR=/mingw64 \
-D CMAKE_CXX_STANDARD=20 \
-D EMBED_RESOURCE_FILES=OFF \
-D USE_ONLY_EMBEDDED_RESOURCE_FILES=OFF \
..
make -j 2
make install
ls ${PROJ_DIR}/bin
ccache -s
- name: Run tests
run: |
PROJ_BUILD=${GITHUB_WORKSPACE}/build
PROJ_DIR=${GITHUB_WORKSPACE}/proj_dir
cd ${PROJ_BUILD}
ctest --output-on-failure
export PATH=${PROJ_DIR}/bin:${PATH}
BUILD_MODE=shared
if [ ${{ env.BUILD_SHARED_LIBS }} == "OFF" ]; then BUILD_MODE=static; fi
../test/postinstall/test_cmake.sh ${PROJ_DIR} ${BUILD_MODE}
# Disabled because of issue with (likely sqlite3.pc) that includes a unexisting -ldl
# ../test/postinstall/test_pkg-config.sh ${PROJ_DIR} ${BUILD_MODE}
proj
+21 -15
View File
@@ -26,18 +26,19 @@ build.local.sh
# Autotools
autom4te.cache
/aclocal.m4
/compile
/config.cache
/config.guess
/config.log
/config.status
/config.sub
/configure
/depcomp
/install-sh
/ltmain.sh
/missing
aclocal.m4
compile
config.cache
config.guess
config.log
config.status
config.sub
configure
depcomp
test-driver
install-sh
ltmain.sh
missing
libtool
.deps
.dirstamp
@@ -53,7 +54,6 @@ CTestTestfile.cmake
cmake_install.cmake
cmake/project-config*.cmake
install_manifest.txt
/googletest*
# / (base)
/*.manifest
@@ -61,7 +61,6 @@ install_manifest.txt
/bin
/lib
/proj.pc
/test-driver
/Testing
# data
@@ -93,11 +92,13 @@ install_manifest.txt
/data/stlrnc
/data/stpaul
/data/tv_out
/data/for_tests/
# docs
tmp_breathe
/docs/.doxygen_up_to_date
/docs/build
/docs/plot/images
/latex
# m4
m4/libtool.m4
@@ -116,6 +117,7 @@ m4/lt~obsolete.m4
/src/proj_config.h
/src/proj_config.h.in
/src/projinfo
/src/projsync
/src/stamp-h1
/src/test-suite.log
@@ -129,6 +131,10 @@ m4/lt~obsolete.m4
/test/unit/proj_context_test
/test/unit/test_cpp_api
/test/unit/proj_errno_string_test
/test/unit/test_defmodel
/test/unit/test_network
/test/unit/test_tinshift
/tmp_alias/
# jniwrap
jniwrap/out
+30
View File
@@ -0,0 +1,30 @@
Aaron Puchert <aaron.puchert@sap.com> <aaronpuchert@alice-dsl.net>
Alan D. Snow <alansnow21@gmail.com>
Alan D. Snow <alansnow21@gmail.com> <alan.snow@pioneer.com>
Ben Boeckel <ben.boeckel@kitware.com> <mathstuf@users.noreply.github.com>
Bojan Šavrič <bsavric@esri.com>
Brendan Jurd <direvus@gmail.com> <brendan.jurd@geoplex.com.au>
Charles Karney <charles@karney.com>
Charles Karney <charles@karney.com> <charles.karney@sri.com>
Charles Karney <charles@karney.com> <ckarney@karney.com>
dalia2 <dalia@lmi.is> <57895979+dalia2@users.noreply.github.com>
Eli Rykoff <erykoff@stanford.edu>
Even Rouault <even.rouault@spatialys.com> <even.rouault@mines-paris.org>
George Ouzounoudis <geothrock@gmail.com>
Jeff McKenna <jeffmckenna@gmail.com>
Jeff McKenna <jeffmckenna@gmail.com> <jmckenna@gatewaygeomatics.com>
Jürnjakob Dugge <juernjakob@gmail.com>
Jürnjakob Dugge <juernjakob@gmail.com> <jdugge@users.noreply.github.com>
Kurt Schwehr <schwehr@google.com> <schwehr@gmail.com>
Martin Desruisseaux <martin.desruisseaux@geomatys.com> <martin.desruisseaux@geomatys.fr>
Mateusz Łoskot <mateusz@loskot.net>
Mike Taves <mwtoews@gmail.com>
Olli Räisä <olli.raisa@trimble.com>
Sebastian Val <Sebastian.Val@jpl.nasa.gov> <sval-dev@users.noreply.github.com>
Sveinung Himle <himsve@kartverket.no>
Sveinung Himle <himsve@kartverket.no> <56073535+himsve@users.noreply.github.com>
Sveinung Himle <himsve@kartverket.no> <Sveinung.Himle@kartverket.no>
Thomas Knudsen <thokn@sdfe.dk>
Thomas Knudsen <thokn@sdfe.dk> <busstoptaktik@users.noreply.github.com>
Thomas Knudsen <thokn@sdfe.dk> <knudsen.thomas@gmail.com>
Thomas Knudsen <thokn@sdfe.dk> <lastname DOT firstname AT gmail DOT com>
+26
View File
@@ -0,0 +1,26 @@
# https://github.com/DavidAnson/markdownlint/blob/main/doc/Rules.md
# Heading style
MD003:
style: "atx"
# Unordered list indentation
MD007:
indent: 2
# Line length
MD013: false
# line_length: 100
# Multiple headings with the same content
MD024:
siblings_only: true
# Multiple top-level headings in the same document
MD025: false
# First line in a file should be a top-level heading
MD041: false
# Required heading structure
MD043: true
+22
View File
@@ -0,0 +1,22 @@
repos:
- repo: https://github.com/pre-commit/mirrors-clang-format
rev: 'v15.0.4'
hooks:
- id: clang-format
exclude: >
(?x)^(
data/|
schemas/|
docs/|
include/proj/nn.hpp|
include/proj/internal/lru_cache.hpp|
include/proj/internal/vendor/nlohmann/json.hpp|
src/wkt1_generated_parser.c|
src/wkt1_generated_parser.h|
src/wkt2_generated_parser.c|
src/wkt2_generated_parser.h|
src/geodesic.c|
src/geodesic.h|
src/tests/geodtest.c|
src/tests/geodsigntest.c
)
+41
View File
@@ -0,0 +1,41 @@
# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
build:
os: "ubuntu-22.04"
tools:
python: "mambaforge-4.10"
jobs:
post_checkout:
- (git --no-pager log --pretty="tformat:%s -- %b" -1 | paste -s -d " " | grep -viqP "skip ci|ci skip") || exit 183
pre_build:
- ./docs/rtd/pre_build.sh
- ./scripts/doxygen.sh
- ./docs/rtd/plot.sh
post_build:
- ./docs/rtd/post_build.sh
apt_packages:
- cmake
- ninja-build
- g++
- sqlite3
- libsqlite3-dev
- libtiff-dev
- libcurl4-openssl-dev
formats:
- htmlzip
- pdf
conda:
environment: docs/environment.yml
sphinx:
configuration: docs/source/conf.py
fail_on_warning: true
+28 -63
View File
@@ -2,9 +2,14 @@
# with Travis-ci.org
language: cpp
# FIXME: Travis-CI builds are disabled
branches:
except:
- /^(cherry-pick-)?backport-\d+-to-/
only:
- disabled_disabled
#branches:
# except:
# - /^(cherry-pick-)?backport-\d+-to-/
cache:
directories:
@@ -14,63 +19,22 @@ matrix:
fast_finish: true
include:
#- os: linux
# dist: jammy
# compiler: gcc
# arch: s390x
# env:
# - BUILD_NAME=linux_generic
# - DETAILS="linux, s390x"
- os: linux
dist: xenial
dist: jammy
compiler: gcc
services:
- docker
arch: arm64
env:
- BUILD_NAME=linux_gcc
- DETAILS="linux, gcc"
- os: linux
dist: xenial
compiler: gcc
services:
- docker
env:
- BUILD_NAME=linux_gcc7
- DETAILS="linux, gcc7"
- CC=gcc-7
- CXX=g++-7
- CXXFLAGS='-g -D_GLIBCXX_ASSERTIONS'
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
- make
- autoconf
- automake
- os: linux
dist: xenial
compiler: clang
services:
- docker
env:
- BUILD_NAME=linux_clang
- DETAILS="linux, clang"
- os: osx
env:
- BUILD_NAME=osx
- DETAILS="osx"
- os: linux
dist: xenial
compiler: gcc
env:
- BUILD_NAME=mingw32
- DETAILS="mingw32"
- os: linux
compiler: gcc
dist: xenial
env:
- BUILD_NAME=csa
- DETAILS="CLang Static Analyzer"
- BUILD_NAME=linux_generic
- DETAILS="linux, arm64"
- NPROC=4
allow_failures:
- env: BUILD_NAME=mingw32
@@ -82,14 +46,15 @@ install: ./travis/${BUILD_NAME}/install.sh
script:
- echo "done"
after_success: ./travis/${BUILD_NAME}/after_success.sh
notifications:
#email:
# recipients:
# - gdal-commits@lists.osgeo.org
irc:
channels:
- "irc.freenode.org#gdal"
- "irc.freenode.org#proj-activity"
# - "irc.freenode.org#gdal"
# - "irc.freenode.org#proj"
use_notice: true
# #email:
# # recipients:
# # - gdal-commits@lists.osgeo.org
#
-42
View File
@@ -1,42 +0,0 @@
--------------------------------------------------------------------------------
Authors
--------------------------------------------------------------------------------
Original Author
................................................................................
Gerald Evenden (1935-2016)
Maintainer(s)
................................................................................
Kristian Evers <kreve@sdfe.dk>
Even Rouault <even.rouault@spatialys.com>
Project Steering Committee
--------------------------------------------------------------------------------
Process and membership can be found at:
https://proj.org/community/rfc/rfc-1.html
Chair
................................................................................
Kristian Evers <kreve@sdfe.dk>
Members
................................................................................
Frank Warmerdam <warmerdam@pobox.com>
Howard Butler <howard@hobu.co>
Charles Karney <charles.karney@sri.com>
Thomas Knudsen <thokn@sdfe.dk>
Even Rouault <even.rouault@spatialys.com>
Kurt Schwehr <schwehr@gmail.com>
Contributors
--------------------------------------------------------------------------------
The full list of contributors can be found on GitHub
https://github.com/OSGeo/PROJ/graphs/contributors
+33
View File
@@ -0,0 +1,33 @@
# Authors
## Original Author
- Gerald Evenden (1935-2016)
## Maintainers
- Kristian Evers <kreve@sdfi.dk>
- Even Rouault <even.rouault@spatialys.com>
## Project Steering Committee
Process and membership can be found at:
<https://proj.org/community/rfc/rfc-1.html>
Chair:
- Kristian Evers <kreve@sdfi.dk>
Members:
- Frank Warmerdam <warmerdam@pobox.com>
- Howard Butler <howard@hobu.co>
- Charles Karney <charles.karney@sri.com>
- Thomas Knudsen <thokn@sdfi.dk>
- Even Rouault <even.rouault@spatialys.com>
- Kurt Schwehr <schwehr@gmail.com>
## Contributors
The full list of contributors can be found on GitHub
<https://github.com/OSGeo/PROJ/graphs/contributors>
+4 -2
View File
@@ -1,7 +1,8 @@
To cite PROJ in publications use:
PROJ contributors (2019). PROJ coordinate transformation software
PROJ contributors (2025). PROJ coordinate transformation software
library. Open Source Geospatial Foundation. URL https://proj.org/.
DOI: 10.5281/zenodo.5884394
A BibTeX entry for LaTeX users is
@@ -11,6 +12,7 @@ A BibTeX entry for LaTeX users is
title = {{PROJ} coordinate transformation software library},
author = {{PROJ contributors}},
organization = {Open Source Geospatial Foundation},
year = {2020},
year = {2025},
url = {https://proj.org/},
doi = {10.5281/zenodo.5884394},
}
+70
View File
@@ -0,0 +1,70 @@
cff-version: 1.2.0
message: Please cite this software using these metadata or in the CITATION file.
type: software
title: PROJ
version: 9.6.1
date-released: 2025-06-02
doi: 10.5281/zenodo.5884394
abstract: PROJ is a generic coordinate transformation software that transforms
geospatial coordinates from one coordinate reference system (CRS) to another.
This includes cartographic projections as well as geodetic transformations.
url: https://proj.org
repository-code: https://github.com/OSGeo/PROJ/
license: MIT
authors:
- given-names: Gerald I.
family-names: Evenden
affiliation: United States Geological Survey
- given-names: Even
family-names: Rouault
affiliation: Spatialys
orcid: https://orcid.org/0000-0002-5068-0476
- given-names: Frank
family-names: Warmerdam
affiliation: Planet Labs Inc
- given-names: Kristian
family-names: Evers
affiliation: Danish Agency for Climate Data
orcid: https://orcid.org/0000-0002-1310-4576
- given-names: Thomas
family-names: Knudsen
affiliation: Danish Agency for Climate Data
- given-names: Howard
family-names: Butler
affiliation: Hobu Inc
orcid: https://orcid.org/0000-0002-5340-1380
- given-names: Mike W.
family-names: Taves
affiliation: GNS Science
orcid: https://orcid.org/0000-0003-3657-7963
- given-names: Kurt
family-names: Schwehr
affiliation: Google Inc
orcid: https://orcid.org/0000-0002-5624-8190
- given-names: Elliott
family-names: Sales de Andrade
orcid: https://orcid.org/0000-0001-7310-8942
- given-names: Charles
family-names: Karney
affiliation: SRI International
orcid: https://orcid.org/0000-0002-5006-5836
- given-names: Sebastiaan
family-names: Couwenberg
- given-names: Nyall
family-names: Dawson
affiliation: North Road
orcid: https://orcid.org/0000-0001-9812-7584
- given-names: Alan D.
family-names: Snow
affiliation: Corteva
orcid: https://orcid.org/0000-0002-7333-3100
- given-names: Javier
family-names: Jimenez Shaw
orcid: https://orcid.org/0000-0002-7227-9173
keywords:
- PROJ
- geodesy
- cartography
- coordinates
- projections
- conversion
+380 -79
View File
@@ -9,20 +9,20 @@
################################################################################
# General settings
################################################################################
cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
cmake_minimum_required(VERSION 3.16)
# For historic reasons, the CMake PROJECT-NAME is PROJ4
project(PROJ4 LANGUAGES C CXX)
set(PROJECT_INTERN_NAME PROJ)
project(PROJ
DESCRIPTION "PROJ coordinate transformation software library"
LANGUAGES C CXX
)
if(NOT CMAKE_VERSION VERSION_LESS 3.1)
cmake_policy(SET CMP0054 NEW)
endif()
# Only interpret if() arguments as variables or keywords when unquoted
cmake_policy(SET CMP0054 NEW)
# Set C++ version
# Make CMAKE_CXX_STANDARD available as cache option overridable by user
set(CMAKE_CXX_STANDARD 11
CACHE STRING "C++ standard version to use (default is 11)")
set(CMAKE_CXX_STANDARD 17
CACHE STRING "C++ standard version to use (default is 17)")
message(STATUS "Requiring C++${CMAKE_CXX_STANDARD}")
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
@@ -44,27 +44,65 @@ set(CMAKE_CXX_VISIBILITY_PRESET hidden)
# Set warnings as variables, then store as cache options
set(PROJ_common_WARN_FLAGS # common only to GNU/Clang C/C++
-Wall
-Wdate-time
-Werror=format-security
-Werror=vla
-Wextra
-Wswitch
-Wshadow
-Wunused-parameter
-Wmissing-declarations
-Wformat
-Wformat-security
-Wmissing-declarations
-Wshadow
-Wswitch
-Wunused-parameter
)
if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
set(PROJ_common_WARN_FLAGS ${PROJ_common_WARN_FLAGS}
-Wduplicated-cond
-Wduplicated-branches
-Wlogical-op
-Wimplicit-fallthrough
)
set(PROJ_C_WARN_FLAGS ${PROJ_common_WARN_FLAGS}
-Wmissing-prototypes
)
set(PROJ_CXX_WARN_FLAGS ${PROJ_common_WARN_FLAGS})
if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 8)
set(PROJ_CXX_WARN_FLAGS ${PROJ_common_WARN_FLAGS} -Wextra-semi)
endif()
set(PROJ_CXX_WARN_FLAGS ${PROJ_common_WARN_FLAGS}
-Weffc++
# -Wold-style-cast
-Woverloaded-virtual
-Wzero-as-null-pointer-constant
-Wdeprecated-copy-dtor
)
elseif("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
set(PROJ_common_WARN_FLAGS ${PROJ_common_WARN_FLAGS}
-Wcomma
-Wdeprecated
-Wdocumentation -Wno-documentation-deprecated-sync
-Wfloat-conversion
-Wlogical-op-parentheses
-Wimplicit-fallthrough
)
# Not sure about the minimum version, but clang 12 complains about \file, @cond Doxygen_Suppress, etc.
if("${CMAKE_CXX_COMPILER_VERSION}" VERSION_GREATER_EQUAL 18.0.0)
set(PROJ_common_WARN_FLAGS ${PROJ_common_WARN_FLAGS} -Wdocumentation-unknown-command)
endif()
set(PROJ_C_WARN_FLAGS ${PROJ_common_WARN_FLAGS}
-Wmissing-prototypes
-Wfloat-conversion
-Wc11-extensions
)
set(PROJ_CXX_WARN_FLAGS ${PROJ_common_WARN_FLAGS}
-Wfloat-conversion
-Weffc++
-Wextra-semi
# -Wold-style-cast
-Woverloaded-virtual
-Wshorten-64-to-32
-Wunused-private-field
-Wzero-as-null-pointer-constant
-Wdeprecated-copy-dtor
-Wweak-vtables
)
elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC")
add_definitions(/D_CRT_SECURE_NO_WARNINGS) # Eliminate deprecation warnings
@@ -73,6 +111,11 @@ elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC")
/wd4706 # Suppress warning about assignment within conditional expression
/wd4996 # Suppress warning about sprintf, etc., being unsafe
)
if("$ENV{VSCMD_ARG_TGT_ARCH}" STREQUAL "arm64")
# Suppress an inaccurate warning when compiling for an MSVC/ARM64 platform
# It incorrectly assumes a division by zero is possible despite a check
set(PROJ_C_WARN_FLAGS ${PROJ_C_WARN_FLAGS} /wd4723)
endif()
set(PROJ_CXX_WARN_FLAGS /EHsc ${PROJ_C_WARN_FLAGS})
elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
if(MSVC)
@@ -83,6 +126,14 @@ elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
set(PROJ_CXX_WARN_FLAGS -Wall)
endif()
endif()
if (CMAKE_CXX_COMPILER_ID STREQUAL "IntelLLVM")
# Intel CXX compiler based on clang defaults to -ffast-math, which
# breaks std::isinf(), std::isnan(), etc.
set(CMAKE_C_FLAGS ${CMAKE_C_FLAGS} -fno-fast-math)
set(CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS} -fno-fast-math)
endif ()
set(PROJ_C_WARN_FLAGS "${PROJ_C_WARN_FLAGS}"
CACHE STRING "C flags used to compile PROJ targets")
set(PROJ_CXX_WARN_FLAGS "${PROJ_CXX_WARN_FLAGS}"
@@ -92,78 +143,167 @@ set(PROJ_CXX_WARN_FLAGS "${PROJ_CXX_WARN_FLAGS}"
# PROJ CMake modules
################################################################################
# Path to additional CMake modules
set(CMAKE_MODULE_PATH ${PROJ4_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
set(CMAKE_MODULE_PATH ${PROJ_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
include(ProjUtilities)
message(STATUS "")
colormsg(_HIBLUE_ "Configuring PROJ:")
message(STATUS "Configuring PROJ:")
################################################################################
#PROJ version information
################################################################################
include(ProjVersion)
proj_version(MAJOR 6 MINOR 3 PATCH 0)
set(PROJ_API_VERSION "18")
set(PROJ_BUILD_VERSION "18.0.3")
proj_version(MAJOR 9 MINOR 7 PATCH 1)
set(PROJ_SOVERSION 25)
set(PROJ_BUILD_VERSION "${PROJ_SOVERSION}.${PROJ_VERSION}")
################################################################################
# Build features and variants
################################################################################
include(Ccache)
include(ProjConfig)
include(ProjMac)
include(policies)
##############################################
### SWITCH BETWEEN STATIC OR SHARED LIBRARY###
##############################################
# default config is shared
option(BUILD_SHARED_LIBS "Build PROJ library shared." ON)
################################################################################
# Check for nlohmann_json
################################################################################
set(NLOHMANN_JSON_ORIGIN "auto" CACHE STRING
"nlohmann/json origin. The default auto will try to use external \
nlohmann/json if possible")
set_property(CACHE NLOHMANN_JSON_ORIGIN PROPERTY STRINGS auto internal external)
# Probably not the strictest minimum, but known to work with it
set(MIN_NLOHMANN_JSON_VERSION 3.7.0)
if(NLOHMANN_JSON_ORIGIN STREQUAL "external")
find_package(nlohmann_json REQUIRED)
set(NLOHMANN_JSON "external")
elseif(NLOHMANN_JSON_ORIGIN STREQUAL "internal")
set(NLOHMANN_JSON "internal")
else()
find_package(nlohmann_json QUIET)
if(nlohmann_json_FOUND)
set(NLOHMANN_JSON "external")
else()
set(NLOHMANN_JSON "internal")
endif()
endif()
if(NLOHMANN_JSON STREQUAL "external")
# Check minimum version
if(nlohmann_json_VERSION VERSION_LESS MIN_NLOHMANN_JSON_VERSION)
message(STATUS "external nlohmann/json version ${nlohmann_json_VERSION} "
"is older than minimum requirement ${MIN_NLOHMANN_JSON_VERSION}")
set(NLOHMANN_JSON "internal")
else()
message(STATUS "found nlohmann/json version ${nlohmann_json_VERSION}")
endif()
endif()
message(STATUS "nlohmann/json: ${NLOHMANN_JSON}")
################################################################################
# Check for sqlite3
################################################################################
find_program(EXE_SQLITE3 sqlite3)
if(NOT EXE_SQLITE3)
message(SEND_ERROR "sqlite3 binary not found!")
endif()
find_package(Sqlite3 REQUIRED)
if(NOT SQLITE3_FOUND)
message(SEND_ERROR "sqlite3 dependency not found!")
# Deprecated variables since PROJ 9.4.0
if(DEFINED SQLITE3_INCLUDE_DIR)
message(DEPRECATION "Use SQLite3_INCLUDE_DIR instead of SQLITE3_INCLUDE_DIR")
set(SQLite3_INCLUDE_DIR ${SQLITE3_INCLUDE_DIR})
endif()
if(DEFINED SQLITE3_LIBRARY)
message(DEPRECATION "Use SQLite3_LIBRARY instead of SQLITE3_LIBRARY")
set(SQLite3_LIBRARY ${SQLITE3_LIBRARY})
endif()
# Would build and run with older versons, but with horrible performance
find_package(SQLite3 REQUIRED)
# Would build and run with older versions, but with horrible performance
# See https://github.com/OSGeo/PROJ/issues/1718
IF("${SQLITE3_VERSION}" VERSION_LESS "3.11")
message(SEND_ERROR "sqlite3 >= 3.11 required!")
ENDIF()
if(SQLite3_VERSION VERSION_LESS "3.11")
message(SEND_ERROR "SQLite3 >= 3.11 required!")
endif()
################################################################################
# Check for libtiff
################################################################################
option(ENABLE_TIFF "Enable TIFF support to read some grids" ON)
mark_as_advanced(ENABLE_TIFF)
set(TIFF_ENABLED FALSE)
if(ENABLE_TIFF)
find_package(TIFF REQUIRED)
if(TIFF_FOUND)
set(TIFF_ENABLED TRUE)
else()
message(SEND_ERROR
"libtiff dependency not found! Use ENABLE_TIFF=OFF to force it off")
endif()
else()
message(WARNING
"TIFF support is not enabled and will result in the inability to read "
"some grids")
endif()
################################################################################
# Check for curl
################################################################################
option(ENABLE_CURL "Enable Curl support" ON)
set(CURL_ENABLED FALSE)
if(ENABLE_CURL)
find_package(CURL REQUIRED)
if(CURL_FOUND)
set(CURL_ENABLED TRUE)
# Curl SSL options are described in
# https://curl.se/libcurl/c/CURLOPT_SSL_OPTIONS.html
#set(CURLSSLOPT_NO_REVOKE 2)
#set(SSL_OPTIONS ${CURLSSLOPT_NO_REVOKE})
#add_compile_definitions(SSL_OPTIONS=${SSL_OPTIONS})
else()
message(SEND_ERROR "curl dependency not found!")
endif()
endif()
################################################################################
option(EMBED_PROJ_DATA_PATH "Whether the PROJ_DATA_PATH should be embedded" ON)
if(DEFINED PROJ_LIB_ENV_VAR_TRIED_LAST)
set(PROJ_DATA_ENV_VAR_TRIED_LAST ${PROJ_LIB_ENV_VAR_TRIED_LAST})
message(WARNING "PROJ_LIB_ENV_VAR_TRIED_LAST option has been renamed to PROJ_DATA_ENV_VAR_TRIED_LAST. PROJ_LIB_ENV_VAR_TRIED_LAST is still working for now, but may be completely replaced by PROJ_DATA_ENV_VAR_TRIED_LAST in a future release")
else()
option(PROJ_DATA_ENV_VAR_TRIED_LAST "Whether the PROJ_DATA environment variable should be tried after the hardcoded location" OFF)
endif()
if(PROJ_DATA_ENV_VAR_TRIED_LAST)
add_definitions(-DPROJ_DATA_ENV_VAR_TRIED_LAST)
endif()
################################################################################
# threading configuration
################################################################################
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_package(Threads)
include(CheckIncludeFiles)
include(CheckCSourceCompiles)
if(MSVC)
set(CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} /WX /W4")
else()
set(CMAKE_REQUIRED_LIBRARIES m)
set(CMAKE_REQUIRED_FLAGS "${CMAKE_C_FLAGS} -Werror -Wall")
endif()
if(Threads_FOUND AND CMAKE_USE_PTHREADS_INIT)
set(CMAKE_REQUIRED_LIBRARIES
"${CMAKE_REQUIRED_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}")
check_c_source_compiles("
#include <pthread.h>
int main(int argc, char* argv[]) {
(void)PTHREAD_MUTEX_RECURSIVE;
(void)argv;
return argc;
}
" HAVE_PTHREAD_MUTEX_RECURSIVE_DEFN)
if(HAVE_PTHREAD_MUTEX_RECURSIVE_DEFN)
add_definitions(-DHAVE_PTHREAD_MUTEX_RECURSIVE=1)
endif()
endif()
# Set a default build type for single-configuration cmake generators if
@@ -178,50 +318,211 @@ if(MSVC OR CMAKE_CONFIGURATION_TYPES)
set(CMAKE_DEBUG_POSTFIX _d)
endif()
option(PROJ_TESTS "Enable build of collection of PROJ tests" ON)
boost_report_value(PROJ_TESTS)
if(PROJ_TESTS)
enable_testing()
endif()
include(ProjTest)
# Put the libraries and binaries that get built into directories at the
# top of the build tree rather than in hard-to-find leaf
# directories. This simplifies manual testing and the use of the build
# tree rather than installed Boost libraries.
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
# tree rather than installed PROJ libraries.
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJ_BINARY_DIR}/lib)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJ_BINARY_DIR}/lib)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJ_BINARY_DIR}/bin)
link_directories(${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
################################################################################
# Installation
################################################################################
include(ProjInstallPath)
set(BINDIR "${DEFAULT_BINDIR}"
CACHE PATH "The directory to install binaries into.")
set(LIBDIR "${DEFAULT_LIBDIR}"
CACHE PATH "The directory to install libraries into.")
set(DATADIR "${DEFAULT_DATADIR}"
CACHE PATH "The directory to install data files into.")
set(DOCDIR "${DEFAULT_DOCDIR}"
CACHE PATH "The directory to install doc files into.")
set(INCLUDEDIR "${DEFAULT_INCLUDEDIR}"
CACHE PATH "The directory to install includes into.")
set(CMAKECONFIGDIR "${DEFAULT_CMAKEDIR}"
CACHE PATH "The directory to install cmake config files into.")
# By default GNUInstallDirs will use the upper case project name
# for CMAKE_INSTALL_DOCDIR, resulting in something like share/doc/PROJ
# instead of share/doc/proj which historically have been the path used
# by the project.
# Here force the use of a lower case project name and reset after
# GNUInstallDirs has done its thing
set(PROJECT_NAME_ORIGINAL "${PROJECT_NAME}")
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME)
include(GNUInstallDirs)
set(PROJECT_NAME "${PROJECT_NAME_ORIGINAL}")
set(PROJ_DATA_PATH "${CMAKE_INSTALL_FULL_DATADIR}/proj")
################################################################################
# Tests
################################################################################
option(BUILD_TESTING "Build the testing tree." ON)
if(BUILD_TESTING)
enable_testing()
include(ProjTest)
else()
message(STATUS "Testing disabled")
endif()
################################################################################
# Whether we should embed resources
################################################################################
function (is_sharp_embed_available res)
if (CMAKE_VERSION VERSION_GREATER_EQUAL 3.21 AND
((CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 15.0) OR
(CMAKE_C_COMPILER_ID STREQUAL "Clang" AND CMAKE_C_COMPILER_VERSION VERSION_GREATER_EQUAL 19.0)))
# CMAKE_C_STANDARD=23 only supported since CMake 3.21
set(TEST_SHARP_EMBED
"static const unsigned char embedded[] = {\n#embed __FILE__\n};\nint main() { (void)embedded; return 0;}"
)
set(CMAKE_C_STANDARD_BACKUP "${CMAKE_C_STANDARD}")
set(CMAKE_C_STANDARD "23")
check_c_source_compiles("${TEST_SHARP_EMBED}" _TEST_SHARP_EMBED)
set(CMAKE_C_STANDARD "${CMAKE_C_STANDARD_BACKUP}")
if (_TEST_SHARP_EMBED)
set(${res} ON PARENT_SCOPE)
else()
set(${res} OFF PARENT_SCOPE)
endif()
else()
set(${res} OFF PARENT_SCOPE)
endif()
endfunction()
is_sharp_embed_available(IS_SHARP_EMBED_AVAILABLE_RES)
if (NOT DEFINED BUILD_SHARED_LIBS)
message(FATAL_ERROR "BUILD_SHARED_LIBS should be set")
endif()
if (NOT BUILD_SHARED_LIBS)
set(DEFAULT_EMBED_RESOURCE_FILES ON)
else()
set(DEFAULT_EMBED_RESOURCE_FILES OFF)
endif()
option(EMBED_RESOURCE_FILES "Whether resource files (limited to proj.db) should be embedded into the PROJ library" ${DEFAULT_EMBED_RESOURCE_FILES})
option(USE_ONLY_EMBEDDED_RESOURCE_FILES "Whether embedded resource files (limited to proj.db) should be used (should nominally be used together with EMBED_RESOURCE_FILES=ON, otherwise this will result in non-functional builds)" OFF)
if (USE_ONLY_EMBEDDED_RESOURCE_FILES AND NOT EMBED_RESOURCE_FILES)
message(WARNING "USE_ONLY_EMBEDDED_RESOURCE_FILES=ON set but EMBED_RESOURCE_FILES=OFF: some drivers will lack required resource files")
endif()
################################################################################
# Build configured components
################################################################################
include_directories(${PROJ4_SOURCE_DIR}/src)
message(STATUS "")
set(PROJ_DICTIONARY
world
other.extra
nad27
GL27
nad83
nad.lst
CH
ITRF2000
ITRF2008
ITRF2014
ITRF2020
)
include_directories(${PROJ_SOURCE_DIR}/src)
add_subdirectory(data)
add_subdirectory(include)
add_subdirectory(src)
add_subdirectory(man)
add_subdirectory(cmake)
if(PROJ_TESTS)
if(BUILD_TESTING)
add_subdirectory(test)
endif()
option(BUILD_EXAMPLES "Whether to build example programs" OFF)
if(BUILD_EXAMPLES)
add_subdirectory(examples)
endif()
add_subdirectory(scripts)
set(docfiles COPYING NEWS.md AUTHORS.md)
install(FILES ${docfiles}
DESTINATION ${CMAKE_INSTALL_DOCDIR})
################################################################################
# Build debug symbols
################################################################################
option(EXPORT_PDB "Export PDB file" OFF)
if (WIN32 AND EXPORT_PDB)
target_compile_options(proj PRIVATE /Zi /Zf)
target_link_options(proj PRIVATE /DEBUG /OPT:REF /OPT:ICF)
if(BUILD_SHARED_LIBS)
set(pdbFile $<TARGET_PDB_FILE:proj>)
else()
set(pdbDirFullPath ${CMAKE_BINARY_DIR}/lib)
set_target_properties(proj
PROPERTIES
COMPILE_PDB_OUTPUT_DIRECTORY ${pdbDirFullPath}
COMPILE_PDB_NAME proj)
set(pdbFile ${pdbDirFullPath}/proj.pdb)
endif()
install(FILES ${pdbFile} DESTINATION lib)
endif()
################################################################################
# pkg-config support
################################################################################
configure_proj_pc()
install(FILES
${CMAKE_CURRENT_BINARY_DIR}/proj.pc
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig")
################################################################################
# "make dist" workalike
################################################################################
set(CPACK_SOURCE_GENERATOR "TGZ;ZIP")
set(CPACK_SOURCE_PACKAGE_FILE_NAME "proj-${PROJ_VERSION}")
set(CPACK_PACKAGE_VENDOR "OSGeo")
set(CPACK_PACKAGE_VERSION_MAJOR ${PROJ_VERSION_MAJOR})
set(CPACK_PACKAGE_VERSION_MINOR ${PROJ_VERSION_MINOR})
set(CPACK_PACKAGE_VERSION_PATCH ${PROJ_VERSION_PATCH})
set(CPACK_VERBATIM_VARIABLES TRUE)
set(CPACK_SOURCE_IGNORE_FILES
/\\..* # any file/directory starting with .
/.*\\.yml
/.*\\.gz
/.*\\.zip
/.*build.*/
\\.deps
/autogen\\.sh
/autom4te\\.cache
/CODE_OF_CONDUCT.md
/CONTRIBUTING.md
/disabled_workflows/
/Dockerfile
/docs/
/Doxyfile
/HOWTO-RELEASE.md
/m4/lt*
/m4/libtool*
/media/
/schemas/
/test/fuzzers/
/test/gigs/.*gie\\.failing
/test/postinstall/
/travis/
${PROJECT_BINARY_DIR}
)
include(CPack)
get_property(_is_multi_config_generator GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(NOT _is_multi_config_generator)
add_custom_target(dist
COMMAND ${CMAKE_MAKE_PROGRAM} package_source
)
message(STATUS "PROJ: Configured 'dist' target")
endif()
configure_file(cmake/uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/proj_uninstall.cmake @ONLY)
add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/proj_uninstall.cmake)
message(STATUS "EMBED_RESOURCE_FILES=${EMBED_RESOURCE_FILES}")
+4 -5
View File
@@ -55,7 +55,7 @@ a project may be further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at [kristianevers@gmail.com](mailto:kristianevers@gmail.com). All
reported by contacting the project team at <kristianevers@gmail.com>. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
@@ -68,10 +68,9 @@ members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
[homepage]: https://www.contributor-covenant.org
available at <https://www.contributor-covenant.org/version/1/4/code-of-conduct.html>
For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
<https://www.contributor-covenant.org/faq>
[homepage]: https://www.contributor-covenant.org
+26 -26
View File
@@ -1,11 +1,11 @@
# How to contribute to PROJ.4
# How to contribute to PROJ
PROJ.4 has a wide and varied user base. Some are highly skilled geodesists with a deep
PROJ has a wide and varied user base. Some are highly skilled geodesists with a deep
knowledge of map projections and reference systems, some are GIS software developers
and others are GIS users. All users, regardless of the profession or skill level,
has the ability to contribute to PROJ.4. Here's a few suggestion on how:
has the ability to contribute to PROJ. Here's a few suggestion on how:
* Help PROJ.4-users that is less experienced than yourself.
* Help PROJ-users that is less experienced than yourself.
* Write a bug report
* Request a new feature
* Write documentation for your favorite map projection
@@ -13,16 +13,17 @@ has the ability to contribute to PROJ.4. Here's a few suggestion on how:
* Implement a new feature
In the following sections you can find some guidelines on how to contribute.
As PROJ.4 is managed on GitHub most contributions require that you have a GitHub
As PROJ is managed on GitHub most contributions require that you have a GitHub
account. Familiarity with [issues](https://guides.github.com/features/issues/) and
the [GitHub Flow](https://guides.github.com/introduction/flow/) is an advantage.
## Help a fellow PROJ.4 user
The main forum for support for PROJ.4 is the mailing list. You can subscribe to
## Help a fellow PROJ user
The main forum for support for PROJ is the mailing list. You can subscribe to
the mailing list [here](http://lists.osgeo.org/mailman/listinfo/proj) and read
the archive [here](http://lists.osgeo.org/pipermail/proj/).
If you have questions about the usage of PROJ.4 the mailing list is also the place to go.
If you have questions about the usage of PROJ the mailing list is also the place to go.
Please *do not* use the GitHub issue tracker as a support forum. Your question is much
more likely to be answered on the mailing list, as many more people follow that than
the issue tracker.
@@ -30,7 +31,7 @@ the issue tracker.
## Adding bug reports
Bug reports are handled in the [issue tracker](https://github.com/OSGeo/PROJ/issues)
on PROJ.4's home on GitHub. Writing a good bug report is not easy. But fixing a poorly
on PROJ's home on GitHub. Writing a good bug report is not easy. But fixing a poorly
documented bug is not easy either, so please put in the effort it takes to create a
thorough bug report.
@@ -38,7 +39,7 @@ A good bug report includes at least:
* A title that quickly explains the problem
* A description of the problem and how it can be reproduced
* Version of PROJ.4 being used
* Version of PROJ being used
* Version numbers of any other relevant software being used, e.g. operating system
* A description of what already has been done to solve the problem
@@ -47,15 +48,15 @@ will find interest in solving the problem. You will probably get follow-up quest
after submitting a bug report. Please answer them in a timely manner if you have an
interest in getting the issue solved.
Finally, please only submit bug reports that are actually related to PROJ.4. If the
issue materializes in software that uses PROJ.4 it is likely a problem with that
particular software. Make sure that it actually is a PROJ.4 problem before you submit
an issue. If you can reproduce the problem only by using tools from PROJ.4 it is
definitely a problem with PROJ.4.
Finally, please only submit bug reports that are actually related to PROJ. If the
issue materializes in software that uses PROJ it is likely a problem with that
particular software. Make sure that it actually is a PROJ problem before you submit
an issue. If you can reproduce the problem only by using tools from PROJ it is
definitely a problem with PROJ.
## Feature requests
Got an idea for a new feature in PROJ.4? Submit a thorough description of the new
Got an idea for a new feature in PROJ? Submit a thorough description of the new
feature in the [issue tracker](https://github.com/OSGeo/PROJ/issues). Please
include any technical documents that can help the developer make the new feature a
reality. An example of this could be a publicly available academic paper that
@@ -67,23 +68,23 @@ Note that not all feature requests are accepted.
## Write documentation
PROJ.4 is in dire need of better documentation. Any contributions of documentation
are greatly appreciated. The PROJ.4 documentation is available on [proj.org](https://proj.org).
PROJ is in dire need of better documentation. Any contributions of documentation
are greatly appreciated. The PROJ documentation is available on [proj.org](https://proj.org).
The website is generated with [Sphinx](http://www.sphinx-doc.org/en/stable/). Contributions
to the documentation should be made as [Pull Requests](https://github.com/OSGeo/PROJ/pulls)
on GitHub.
If you intend to document one of PROJ.4's supported projections please use the
If you intend to document one of PROJ's supported projections please use the
[Mercator projection](https://proj.org/operations/projections/merc.html) as a template.
## Code contributions
See [Code Contributions](https://proj.org/community/code_contributions.html)
#### Legalese
### Legalese
Committers are the front line gatekeepers to keep the code base clear of improperly contributed code.
It is important to the PROJ.4 users, developers and the OSGeo foundation to avoid contributing any
It is important to the PROJ users, developers and the OSGeo foundation to avoid contributing any
code to the project without it being clearly licensed under the project license.
Generally speaking the key issues are that those providing code to be included in the repository
@@ -122,7 +123,6 @@ improperly contributing code to the source repository:
* If there is uncertainty about whether a change is proper to contribute to the code base, please
seek more information from the project steering committee, or the foundation legal counsel.
## Additional Resources
* [General GitHub documentation](https://help.github.com/)
@@ -130,6 +130,6 @@ improperly contributing code to the source repository:
## Acknowledgements
The _code contribution_ section of this CONTRIBUTING file is inspired by
[PDAL's](https://github.com/PDAL/PDAL/blob/master/CONTRIBUTING.md) and the _legalese_ section is
modified from [GDAL committer guidelines](https://trac.osgeo.org/gdal/wiki/rfc3_commiters)
The [code contribution](#Code Contributions) section of this CONTRIBUTING file is inspired by
[PDAL's](https://github.com/PDAL/PDAL/blob/master/CONTRIBUTING.md) and the [legalese](#legalese)
section is modified from [GDAL committer guidelines](https://trac.osgeo.org/gdal/wiki/rfc3_commiters)
+9 -9
View File
@@ -1,19 +1,20 @@
All source, data files and other contents of the PROJ.4 package are
All source, data files and other contents of the PROJ package are
available under the following terms. Note that the PROJ 4.3 and earlier
was "public domain" as is common with US government work, but apparently
this is not a well defined legal term in many countries. I am placing
everything under the following MIT style license because I believe it is
this is not a well defined legal term in many countries. Frank Warmerdam placed
everything under the following MIT style license because he believed it is
effectively the same as public domain, allowing anyone to use the code as
they wish, including making proprietary derivatives.
they wish, including making proprietary derivatives.
Though I have put my own name as copyright holder, I don't mean to imply
I did the work. Essentially all work was done by Gerald Evenden.
Initial PROJ 4.3 public domain code was put as Frank Warmerdam as copyright
holder, but he didn't mean to imply he did the work. Essentially all work was
done by Gerald Evenden.
Copyright information can be found in source files.
--------------
Copyright (c) 2000, Frank Warmerdam
Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and associated documentation files (the "Software"),
to deal in the Software without restriction, including without limitation
@@ -31,4 +32,3 @@ I did the work. Essentially all work was done by Gerald Evenden.
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.
+7 -7
View File
@@ -40,7 +40,7 @@
2015-07-27 Even Rouault <even.rouault@spatialys.com>
* : Remove setlocale() use in pj_init_ctx(), and replace uses of atof() &
strtod() by their locale safe variants pj_atof() and pj_strtod().
Proj versions from now advertize #define PJ_LOCALE_SAFE 1 in proj_api.h
Proj versions from now advertise #define PJ_LOCALE_SAFE 1 in proj_api.h
and export pj_atof() & pj_strtod() (#226)
2015-06-01 Charles Karney <https://github.com/cffk>
@@ -601,7 +601,7 @@
2010-03-16 Frank Warmerdam <warmerdam@pobox.com>
* src/pj_transform.c, src/pj_init.c, src/projects.h, src/pj_gridlist.c,
src/pj_apply_gridshit.c: rework the translation of nadgrids parameters
src/pj_apply_gridshift.c: rework the translation of nadgrids parameters
into a list of gridshift files to avoid use of static "lastnadgrids"
information which screws up multithreading. Changes the PJ structure.
@@ -1491,7 +1491,7 @@ Rel. 4.4.4 2001/09/15
2001-05-14 Frank Warmerdam <warmerdam@pobox.com>
* upraded config.sub and config.guess as per debian bug report 97374.
* upgraded config.sub and config.guess as per debian bug report 97374.
Rel. 4.4.3 2001/04/20
-------------------------------------------------------------------------
@@ -1714,7 +1714,7 @@ Rel. 4.3.1 94/2/16 Base-line
-------------------------------------------------------------------------
94/6/2
Transverse Mercator, spherical inverse fixed. Misplaced parenthsis.
Transverse Mercator, spherical inverse fixed. Misplaced parenthesis.
94/10/5
Dropped dependency on FILENAME_MAX---too poorly defined in both
@@ -1756,14 +1756,14 @@ Rel. 4.3 94/2/16 Base-line
Added SPECIAL entry to conics Lambert, Albers and Equidistant.
Corrected nad/install.in test so as to only look for conus.lla.Z
as test for installation of NADCON datum matricies.
as test for installation of NADCON datum matrices.
94/3/19
Problems with MAPGEN's mapdef choking on call to proj. Fixed
with PROJ.4.3-patch-01.
94/3/22
Bumb mode of handling memory allocation for 2D arrays, so that
Bump mode of handling memory allocation for 2D arrays, so that
execution of -L may not work on some systems. Interim corrections
distributed with PROJ.4.3-patch-02.
@@ -1937,7 +1937,7 @@ Rel. 4.1.1 93/3/26 Base-line
pj_strerrno prototype added to projects.h
DOS option in strtod.c for MS C's lack of standard macros in neaders.
DOS option in strtod.c for MS C's lack of standard macros in headers.
Rel. 4.1 93/3/8 Base-line --- @(#)CHANGE-LOG 4.14 95/09/23 GIE REL
-------------------------------------------------------------------------
+24 -30
View File
@@ -1,51 +1,45 @@
##
# OSGeo/PROJ
FROM ubuntu:18.04 as builder
FROM ubuntu:24.04 AS builder
MAINTAINER Howard Butler <howard@hobu.co>
LABEL maintainer="Howard Butler <howard@hobu.co>"
ARG PROJ_VERSION=master
ARG DESTDIR="/build"
# Setup build env
RUN apt-get update -y \
&& apt-get install -y --fix-missing --no-install-recommends \
software-properties-common build-essential ca-certificates \
git make cmake wget unzip libtool automake \
zlib1g-dev libsqlite3-dev pkg-config sqlite3
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --fix-missing --no-install-recommends \
software-properties-common build-essential ca-certificates \
cmake wget unzip \
zlib1g-dev libsqlite3-dev sqlite3 libcurl4-gnutls-dev \
libtiff-dev \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN git clone https://github.com/OSGeo/PROJ.git \
&& cd PROJ \
&& ./autogen.sh \
&& ./configure --prefix=/usr \
&& make \
&& make install
COPY . /PROJ
RUN cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTING=OFF -S /PROJ -B _build
RUN cmake --build _build -j $(nproc)
RUN cmake --install _build
RUN rm -rfv _build
FROM ubuntu:18.04 as runner
FROM ubuntu:24.04 AS runner
RUN date
RUN apt-get update; \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
libsqlite3-0 \
curl unzip
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
libsqlite3-0 libtiff6 libcurl4 libcurl3-gnutls \
wget ca-certificates \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# Put this first as this is rarely changing
RUN \
mkdir -p /usr/share/proj; \
curl -LOs https://download.osgeo.org/proj/proj-datumgrid-1.8.zip && unzip -j -u -o proj-datumgrid-1.8.zip -d /usr/share/proj; \
curl -LOs https://download.osgeo.org/proj/proj-datumgrid-europe-1.2.zip && unzip -j -u -o proj-datumgrid-europe-1.2.zip -d /usr/share/proj; \
curl -LOs https://download.osgeo.org/proj/proj-datumgrid-oceania-1.0.zip && unzip -j -u -o proj-datumgrid-oceania-1.0.zip -d /usr/share/proj; \
curl -LOs https://download.osgeo.org/proj/proj-datumgrid-world-1.0.zip && unzip -j -u -o proj-datumgrid-world-1.0.zip -d /usr/share/proj; \
curl -LOs https://download.osgeo.org/proj/proj-datumgrid-north-america-1.2.zip && unzip -j -u -o proj-datumgrid-north-america-1.2.zip -d /usr/share/proj; \
rm *.zip
WORKDIR /usr/share/proj
RUN wget --no-verbose --mirror https://cdn.proj.org/ || true
RUN cd cdn.proj.org && rm -fv *.js *.css *.html favicon* && mv * .. && cd .. && rmdir cdn.proj.org
WORKDIR /
COPY --from=builder /build/usr/share/proj/ /usr/share/proj/
COPY --from=builder /build/usr/include/ /usr/include/
COPY --from=builder /build/usr/bin/ /usr/bin/
COPY --from=builder /build/usr/lib/ /usr/lib/
+6 -84
View File
@@ -230,12 +230,6 @@ TAB_SIZE = 4
ALIASES =
# This tag can be used to specify a number of word-keyword mappings (TCL only).
# A mapping has the form "name=value". For example adding "class=itcl::class"
# will allow you to use the command class in the itcl::class meaning.
TCL_SUBST =
# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
# only. Doxygen will then generate output that is more tailored for C. For
# instance, some of the names that are used will be different. The list of all
@@ -772,7 +766,7 @@ WARN_LOGFILE =
# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING
# Note: If this tag is empty the current directory is searched.
INPUT = src/iso19111 include/proj src/proj.h src/proj_experimental.h src/general_doc.dox
INPUT = src/iso19111 src/iso19111/operation include/proj src/proj.h src/proj_experimental.h src/general_doc.dox src/filemanager.cpp src/networkfilemanager.cpp src/coordinates.cpp src/trans_bounds.cpp
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
@@ -1039,13 +1033,6 @@ VERBATIM_HEADERS = YES
ALPHABETICAL_INDEX = YES
# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
# which the alphabetical index list will be split.
# Minimum value: 1, maximum value: 20, default value: 5.
# This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
COLS_IN_ALPHA_INDEX = 5
# In case all classes in a project start with a common prefix, all classes will
# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
# can be used to specify a prefix (or a list of prefixes) that should be ignored
@@ -1174,15 +1161,6 @@ HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80
# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
# page will contain the date and time when the page was generated. Setting this
# to YES can help to show when doxygen was last run and thus if the
# documentation is up to date.
# The default value is: NO.
# This tag requires that the tag GENERATE_HTML is set to YES.
HTML_TIMESTAMP = NO
# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
# documentation will contain sections that can be hidden and shown after the
# page has loaded.
@@ -1453,17 +1431,6 @@ EXT_LINKS_IN_WINDOW = NO
FORMULA_FONTSIZE = 10
# Use the FORMULA_TRANPARENT tag to determine whether or not the images
# generated for formulas are transparent PNGs. Transparent PNGs are not
# supported properly for IE 6.0, but are supported on all modern browsers.
#
# Note that when changing this option you need to delete any form_*.png files in
# the HTML output directory before the changes have effect.
# The default value is: YES.
# This tag requires that the tag GENERATE_HTML is set to YES.
FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
# http://www.mathjax.org) which uses client side Javascript for the rendering
# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX
@@ -1742,16 +1709,6 @@ LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
# If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
# code with syntax highlighting in the LaTeX output.
#
# Note that which sources are shown also depends on other settings such as
# SOURCE_BROWSER.
# The default value is: NO.
# This tag requires that the tag GENERATE_LATEX is set to YES.
LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. See
# http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
@@ -1886,7 +1843,7 @@ MAN_LINKS = NO
# captures the structure of the code including all documentation.
# The default value is: NO.
GENERATE_XML = NO
GENERATE_XML = YES
# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
@@ -2051,7 +2008,10 @@ PREDEFINED = DOXYGEN_ENABLED \
protected=private \
INLINED_MAKE_SHARED= \
PROJ_OPAQUE_PRIVATE_DATA= \
PROJ_PRIVATE=private
PROJ_PRIVATE=private \
PROJ_PURE_DECL= \
noexceptoverride="noexcept override" \
PROJ_NO_RETURN=
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
@@ -2129,15 +2089,6 @@ EXTERNAL_PAGES = YES
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
# If the CLASS_DIAGRAMS tag is set to YES, doxygen will generate a class diagram
# (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
# NO turns the diagrams off. Note that this option also works with HAVE_DOT
# disabled, but it is recommended to install and use dot, since it yields more
# powerful graphs.
# The default value is: YES.
CLASS_DIAGRAMS = YES
# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see:
# http://www.mcternan.me.uk/mscgen/)) to produce the chart and insert it in the
@@ -2180,23 +2131,6 @@ HAVE_DOT = YES
DOT_NUM_THREADS = 0
# When you want a differently looking font in the dot files that doxygen
# generates you can specify the font name using DOT_FONTNAME. You need to make
# sure dot is able to find the font, which can be done by putting it in a
# standard location or by setting the DOTFONTPATH environment variable or by
# setting DOT_FONTPATH to the directory containing the font.
# The default value is: Helvetica.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_FONTNAME = Helvetica
# The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
# dot graphs.
# Minimum value: 4, maximum value: 24, default value: 10.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_FONTSIZE = 10
# By default doxygen will tell dot to use the default font as specified with
# DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
# the path where dot can find it using this tag.
@@ -2406,18 +2340,6 @@ DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
# background. This is disabled by default, because dot on Windows does not seem
# to support this out of the box.
#
# Warning: Depending on the platform used, enabling this option may lead to
# badly anti-aliased labels on the edges of a graph (i.e. they become hard to
# read).
# The default value is: NO.
# This tag requires that the tag HAVE_DOT is set to YES.
DOT_TRANSPARENT = NO
# Set the DOT_MULTI_TARGETS tag to YES to allow dot to generate multiple output
# files in one run (i.e. multiple -o and -T options on the command line). This
# makes dot run faster, but since only newer versions of dot (>1.8.10) support
-248
View File
@@ -1,248 +0,0 @@
Preparing a PROJ Release
===============================================================================
Preparing a PROJ release is a three-step process. Before the actual release is
published we want to issue one or more release candidates to ensure that the
code is in fact ready to be released. That is step one. Step two starts when a
release candidate has been selected for promotion to final release. Step three
updates version numbers in the master branch to avoid confusion between
released code and code still in development.
The three phases are described below.
1 Release candidate
===============================================================================
At least one release candidate is necessary before the final release is
published. In case more than one release candidate is needed most steps below
can be skipped depending on what prompted the release candidate 1+n. Steps 1.6
and 1.7 are mandatory for all release candidates, otherwise it will in most
cases only be necessary to update the NEWS section (1.3).
Release candidates should be released about a week before the final release is
scheduled. When preparing major version releases it may be wise to issue the
release candidate earlier than that.
When a release candidate has not prompted any request for changes in 48 hours,
a motion for promotion to final release should be issued on the PROJ mailing
list. The PROJ PSC guidelines describes the rules for passing a motion.
1.1 Update ABI version numbers:
-------------------------------------------------------------------------------
Determine the ABI version number. It consists of "current:revision:age". Follow
the steps below to determine the next ABI version number:
- If the library source code has changed at all since the last update,
then increment revision (c:r:a becomes c:r+1:a).
- If any interfaces have been added, removed, or changed since the last
update, increment current, and set revision to 0.
- If any interfaces have been added since the last public release, then
increment age.
- If any interfaces have been removed since the last public release, then
set age to 0.
Update the following files with the new ABI version number:
- `src/Makefile.am` Update -version-info
- `CMakelists.txt`: Update PROJ_BUILD_VERSION (cur:rev:age) and
PROJ_API_VERSION (current)
*Commit the changes to master.*
1.2 Update man pages
-------------------------------------------------------------------------------
Man pages are (mostly) automatically generated from the Sphinx docs. The pages
in man/man3/ was manually updated in 1.1. Here we update the pages in
man/man1/. Follow these steps:
- Update version number and date in `man/man3/pj_init.3` and
`man/man3/geodesic.3`
- Temporarily update version in `docs/source/conf.py`
- run `script/update_man.sh`
- Revert version number in `docs/source/conf.py`
The `update_man.sh` script builds the man pages and commits the update man pages
to master.
1.3 Write release notes
-------------------------------------------------------------------------------
Update `NEWS` with descriptions of the changes since the last release.
Hopefully issues and pull requests that go into the new release have been
properly tagged with the milestone for the current release.
End the section by thanking the authors that contributed to the release. Get a
sorted list of contributors in descending order of activity:
```
git shortlog -sn x.y.z..HEAD | tac | awk '{$1=""; print $0}'
```
where `x.y.z` is the tag of the previous release. You may need to edit the list
slightly since not all authors has properly configured their names in git.
*Commit the changes to master.*
1.4 Update `CITATION`
-------------------------------------------------------------------------------
If needed, update the year in `CITATION`.
*Commit the changes to master.*
1.5 Create maintenance branch
-------------------------------------------------------------------------------
*Skip this step if you are preparing a patch release or RC2 and later.*
Create the branch:
```
git branch x.y
```
where `x` is the major version number and `y` is the minor version number. Bug
fixes found in the release candidates should be pushed to master and
subsequently cherry-picked to the maintenance branch.
*Push branch upstream.*
1.6 Prepare and upload archives
-------------------------------------------------------------------------------
Run autoconf and configure the build:
```
./autogen.sh
mkdir build
cd build
../configure
make dist
```
Rename the archives and generate MD5 sum files:
```
mv proj-x.y.z.tar.gz proj-x.y.zRCn.tar.gz
mv proj-x.y.z.zip proj-x.y.zRCn.zip
md5 proj-x.y.zRCn.tar.gz > proj-x.y.zRCn.tar.gz.md5
md5 proj-x.y.zRCn.zip > proj-x.y.zRCn.zip.md5
```
Upload to the OSGeo download server:
```
scp proj-x.y.zRCn.* warmerdam@download.osgeo.org:/osgeo/download/proj
```
Adjust version numbers and usernames accordingly.
1.7 Announce the release candidate
-------------------------------------------------------------------------------
Announce the release candidate on the PROJ mailing list.
1.8 Promotion to final release
-------------------------------------------------------------------------------
When you are confident that the latest release candidate is ready for promotion
to final release a motion for promotion should be issued on the PROJ mailing
list. Allow for a minimum of 48 hours for voting time.
2 Final release
===============================================================================
Barring a successful promotion process we can proceed with the final release.
2.1 Prepare and upload archives
-------------------------------------------------------------------------------
See step 1.6 above. Do not rename the archives with RC postfixes.
2.2 Update website
------------------------------------------------------------------------------
- Add the release notes from `NEWS` to `docs/source/news.rst`
- Update download links in `docs/source/download.rst`
- Update `$TRAVIS_BRANCH` in `travis\after_success.sh` to new maintenance
branch.
*Commit the changes to master and cherry-pick into maintenance branch.*
When pushed upstream the website will be update to the current version.
2.3 Tag the release
-------------------------------------------------------------------------------
Tag the release with:
```
git tag -a -m "Create tag x.y.z" x.y.z
git push --tags
```
2.4 Prepare the release on GitHub
-------------------------------------------------------------------------------
When the new tag is pushed upstream GitHub picks up that a new release has been
issued. Update the new release on https://github.com/OSGeo/PROJ/releases with
the release notes from `NEWS` and add the prepared source distribution archives
to the release (otherwise GitHub will just package the entire repository - we
don't want that).
2.5 Announce the new release
-------------------------------------------------------------------------------
The release should be announced on PROJ and MetaCRS mailing lists. Additionally
the release announcement should be sent to news_item@osgeo.org which will add
the announcement to osgeo.org and other OSGeo communication channels.
Make some noise on Twitter and other relevant social media.
3 Post final release
===============================================================================
3.1 Update version numbers
-------------------------------------------------------------------------------
PROJ uses [semantic versioning](http://semver.org/). Depending on the changes
in the release will be either a major, minor or patch release. Update the
version numbers in the files.
- configure.ac: Update the version number in AC_INIT().
- src/proj.h: Update PROJ_VERSION_MAJOR, PROJ_VERSION_MINOR and
PROJ_VERSION_PATCH.
- src/proj_api.h: Update PJ_VERSION.
- src/pj_release.c: Update date to the scheduled release date.
- CMakelists.txt: Update proj_version()
- doc/source/conf.py: Update version number
*Commit changes. Either to master or maintenance branch depending on the nature
of the release.*
3.2 Disable website deployment when releasing a new non-bugfix version
-------------------------------------------------------------------------------
If the previous active version was, let's say, 6.1 and the new version is, let's say, 6.2,
then checkout 6.1 branch, and in travis/after_success.sh, remove the code
that causes commits to 6.1 to cause a website refresh, that is remove the
code under `if test "$TRAVIS_SECURE_ENV_VARS" = "true" -a "$TRAVIS_BRANCH" = "6.1"; then`.
Also edit docs/source/conf.py to change the active branch for documentation
in the `github_version` variable.
+229
View File
@@ -0,0 +1,229 @@
# Preparing a PROJ Release
Preparing a PROJ release is a three-step process. Before the actual release is
published we want to issue one or more release candidates to ensure that the
code is in fact ready to be released. That is step one. Step two starts when a
release candidate has been selected for promotion to final release. Step three
updates version numbers in the master branch to avoid confusion between
released code and code still in development.
The three phases are described below.
## 1 Release candidate
At least one release candidate is necessary before the final release is
published. In case more than one release candidate is needed most steps below
can be skipped depending on what prompted the release candidate 1+n. Steps 1.6
and 1.7 are mandatory for all release candidates, otherwise it will in most
cases only be necessary to update the NEWS section (1.3).
Release candidates should be released about a week before the final release is
scheduled. When preparing major version releases it may be wise to issue the
release candidate earlier than that.
When a release candidate has not prompted any request for changes in 48 hours,
a motion for promotion to final release should be issued on the PROJ mailing
list. The PROJ PSC guidelines describes the rules for passing a motion.
### 1.1 Update ABI version numbers
In case of a un-planned maintenance release, make sure that version numbers are
properly updated: see 3.1
For each release version, increment PROJ_SOVERSION in CMakeLists.txt if the
ABI is not backwards compatible, i.e. any interfaces have been removed, or
changed since the last release. See also:
<https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B>
*Commit the changes to master.*
### 1.2 Update man pages
Man pages are (mostly) automatically generated from the Sphinx docs. Follow
these steps:
- Temporarily update `version` and `data_version` in `docs/source/conf.py`
- run `scripts/update_man.sh`
- Revert version number in `docs/source/conf.py`
The `update_man.sh` script builds the man pages and commits the update man pages
to master.
### 1.3 Write release notes
Update `NEWS.md` with descriptions of the changes since the last release.
Hopefully issues and pull requests that go into the new release have been
properly tagged with the milestone for the current release.
`scripts/releasenotes.py` can be used to create a first draft of the release
notes.
*Commit the changes to master.*
### 1.4 Update `CITATION.cff` and `CITATION`
Update the "version" and "date-released" fields in `CITATION.cff`. The
"doi" does not need to be updated.
If needed, update the two instances of year in `CITATION`.
*Commit the changes to master.*
### 1.5 Update `PROJ_DATA.VERSION`
If the database references data from an updated PROJ-data package, update
`PROJ_DATA.VERSION` in `data/sql/metadata.sql`.
*Commit the changes to master.*
### 1.6 Create maintenance branch
*Skip this step if you are preparing a patch release or RC2 and later.*
Create the branch:
```sh
git branch x.y
```
where `x` is the major version number and `y` is the minor version number. Bug
fixes found in the release candidates should be pushed to master and
subsequently cherry-picked to the maintenance branch.
*Push branch upstream.*
### 1.7 Prepare and upload archives
Checkout the GitHub repo to an isolated local directory to package files only
tracked in git. Then, run CMake and build source distributions:
```sh
BRANCH_NAME=master
git clone --depth 1 --branch $BRANCH_NAME \
https://github.com/OSGeo/PROJ.git PROJ-$BRANCH_NAME
cd PROJ-$BRANCH_NAME
mkdir _build && cd _build
cmake -D BUILD_TESTING=OFF ..
cmake --build . --target dist
```
Rename the archives and generate MD5 sum files:
```sh
mv proj-x.y.z.tar.gz proj-x.y.zRCn.tar.gz
mv proj-x.y.z.zip proj-x.y.zRCn.zip
md5 proj-x.y.zRCn.tar.gz > proj-x.y.zRCn.tar.gz.md5
md5 proj-x.y.zRCn.zip > proj-x.y.zRCn.zip.md5
```
Upload to the OSGeo download server:
```sh
scp proj-x.y.zRCn.* warmerdam@upload.osgeo.org:/osgeo/download/proj
```
Adjust version numbers and usernames accordingly.
### 1.8 Announce the release candidate
Announce the release candidate on the PROJ mailing list.
### 1.9 Promotion to final release
When you are confident that the latest release candidate is ready for promotion
to final release a motion for promotion should be issued on the PROJ mailing
list. Allow for a minimum of 48 hours for voting time.
## 2 Final release
Barring a successful promotion process we can proceed with the final release.
### 2.1 Prepare and upload archives
See step 1.6 above. Do not rename the archives with RC postfixes.
### 2.2 Update the STABLE_BRANCH repository variable
Go to https://github.com/OSGeo/PROJ/settings/variables/actions/STABLE_BRANCH
and update the value to be x.y
### 2.3 Update website
- Add the release notes from `NEWS.md` to `docs/source/news.rst`
These vim substitutions are helpful when converting NEWS.md to rst:
```sh
:s!(\#\(\d\{4}\))!(`\#\1 <https://github.com/OSGeo/PROJ/issues/\1>`_)!
```
- Update download links in `docs/source/download.rst`
*Commit the changes to master and cherry-pick into maintenance branch.*
When pushed upstream the website will be update to the current version.
### 2.4 Tag the release
Tag the release with:
```sh
git tag -a -m "Create tag x.y.z" x.y.z
git push --tags
```
### 2.5 Check the GitHub Zeonodo integration
Go to https://zenodo.org/account/settings/github/ and check that the OSGeo/PROJ
repository is ON so that the creation of the GitHub release triggers the
creation of a corresponding Zenodo record.
### 2.6 Prepare the release on GitHub
When the new tag is pushed upstream GitHub picks up that a new release has been
issued. Update the new release on <https://github.com/OSGeo/PROJ/releases> with
the release notes from `NEWS.md` and add the prepared source distribution archives
to the release (otherwise GitHub will just package the entire repository - we
don't want that).
### 2.7 Announce the new release
The release should be announced on PROJ and MetaCRS mailing lists. Additionally
the release announcement should be sent to <news_item@osgeo.org> which will add
the announcement to osgeo.org and other OSGeo communication channels.
Make some noise on relevant social media.
## 3 Post final release
### 3.1 Update version numbers
PROJ uses [semantic versioning](http://semver.org/). Depending on the changes
in the release will be either a major, minor or patch release. Update the
version numbers in the files.
- src/proj.h: Update PROJ_VERSION_MAJOR, PROJ_VERSION_MINOR and
PROJ_VERSION_PATCH.
- src/release.cpp: Update date to the scheduled release date.
- CMakeLists.txt: Update proj_version()
- docs/source/conf.py: Update version number
*Commit changes. Either to master or maintenance branch depending on the nature
of the release.*
### 3.2 Documentation
Edit the Sphinx configuration docs/source/conf.py with these changes:
- Set "version" to the major project version, e.g. "9.2"
- Set "release" to the full project version, e.g. "9.2.1"
- Set "data_version" to the PROJ-data version
- Set "today_date = date(Y, M, D)" using the release date
- set "github_version" to the maintenance branch label, e.g. "9.2"
HTML and PDF documentation is built using ReadTheDocs, which supports multiple
versions. Versions are based on branch labels, e.g. "9.2". To modify settings,
registered users must first log in. To add a version, go to
<https://readthedocs.org/projects/osgeo-proj/versions/> and click "Activate"
next to the maintenance branch label.
+9 -175
View File
@@ -1,182 +1,16 @@
Basic Installation
==================
These are generic installation instructions.
These are generic installation instructions. See details online at
https://proj.org/install.html
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, a file
`config.cache' that saves the results of its tests to speed up
reconfiguring, and a file `config.log' containing compiler output
(useful mainly for debugging `configure').
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If at some point `config.cache'
contains results you don't want to keep, you may remove or edit it.
PROJ can be built using a modern C/C++ compiler with CMake. From the source
directory, use the following commands to configure, build and install PROJ:
The file `configure.in' is used to create `configure' by a program
called `autoconf'. You only need `configure.in' if you want to change
it or regenerate `configure' using a newer version of `autoconf'.
mkdir build
cd build
cmake ..
cmake --build .
cmake --build . --target install
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system. If you're
using `csh' on an old version of System V, you might need to type
`sh ./configure' instead to prevent `csh' from trying to execute
`configure' itself.
Running `configure' takes awhile. While running, it prints some
messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. You can give `configure'
initial values for variables by setting them in the environment. Using
a Bourne-compatible shell, you can do that on the command line like
this:
CC=c99 CFLAGS=-O2 LIBS=-lposix ./configure
Or on systems that have the `env' program, you can do it like this:
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you must use a version of `make' that
supports the `VPATH' variable, such as GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
If you have to use a `make' that does not supports the `VPATH'
variable, you have to compile the package for one architecture at a time
in the source code directory. After you have installed the package for
one architecture, use `make distclean' before reconfiguring for another
architecture.
Installation Names
==================
By default, `make install' will install the package's files in
`/usr/local/bin', `/usr/local/man', etc. You can specify an
installation prefix other than `/usr/local' by giving `configure' the
option `--prefix=PATH'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
give `configure' the option `--exec-prefix=PATH', the package will use
PATH as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=PATH' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Specifying the System Type
==========================
There may be some features `configure' can not figure out
automatically, but needs to determine by the type of host the package
will run on. Usually `configure' can figure that out, but if it prints
a message saying it can not guess the host type, give it the
`--host=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name with three fields:
CPU-COMPANY-SYSTEM
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the host type.
If you are building compiler tools for cross-compiling, you can also
use the `--target=TYPE' option to select the type of system they will
produce code for and the `--build=TYPE' option to select the type of
system on which you are compiling the package.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Operation Controls
==================
`configure' recognizes the following options to control how it
operates.
`--cache-file=FILE'
Use and save the results of the tests in FILE instead of
`./config.cache'. Set FILE to `/dev/null' to disable caching, for
debugging `configure'.
`--help'
Print a summary of the options to `configure', and exit.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--version'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`configure' also accepts some other, not widely useful, options.
-20
View File
@@ -1,20 +0,0 @@
SUBDIRS = include src man data jniwrap cmake
DIST_SUBDIRS = include src man data jniwrap cmake test
EXTRA_DIST = CMakeLists.txt CITATION README.md
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = proj.pc
AUTOMAKE_OPTIONS = dist-zip
ACLOCAL_AMFLAGS = -I m4
check-local:
cd test; $(MAKE) check
README: README.md
fgrep -v "[![" $< > $@
clean-local:
$(RM) README
-1317
View File
File diff suppressed because it is too large. Load diff
+3304
View File
File diff suppressed because it is too large. Load diff
+28 -91
View File
@@ -1,11 +1,12 @@
# PROJ
[![Travis Status](https://travis-ci.com/OSGeo/PROJ.svg?branch=master)](https://travis-ci.com/OSGeo/PROJ)
[![AppVeyor Status](https://ci.appveyor.com/api/projects/status/github/OSGeo/PROJ?branch=master&svg=true)](https://ci.appveyor.com/project/OSGeo/PROJ?branch=master)
[![Coveralls Status](https://coveralls.io/repos/github/OSGeo/PROJ/badge.svg?branch=master)](https://coveralls.io/github/OSGeo/PROJ?branch=master)
[![CodeQL](https://github.com/OSGeo/PROJ/actions/workflows/codeql.yml/badge.svg)](https://github.com/OSGeo/PROJ/actions/workflows/codeql.yml)
[![Gitter](https://badges.gitter.im/OSGeo/proj.4.svg)](https://gitter.im/OSGeo/proj.4)
[![Mailing List](https://img.shields.io/badge/PROJ-mailing%20list-4eb899.svg)](http://lists.osgeo.org/mailman/listinfo/proj)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](code-of-conduct.md)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v1.4%20adopted-ff69b4.svg)](CODE_OF_CONDUCT.md)
[![Release](https://img.shields.io/github/v/release/OSGeo/PROJ)](https://github.com/OSGeo/PROJ/releases)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.5884394.svg)](https://doi.org/10.5281/zenodo.5884394)
PROJ is a generic coordinate transformation software, that transforms
coordinates from one coordinate reference system (CRS) to another.
@@ -13,99 +14,34 @@ This includes cartographic projections as well as geodetic transformations.
For more information on the PROJ project please see the web page at:
https://proj.org/
<https://proj.org/>
The PROJ mailing list can be found at:
https://lists.osgeo.org/mailman/listinfo/proj/
<https://lists.osgeo.org/mailman/listinfo/proj/>
See the NEWS file for changes between versions.
See the NEWS.md file for changes between versions.
The following command line utilities are included in the PROJ package:
- `proj`: for cartographic projection of geodetic coordinates
- `proj`: for cartographic projection of geodetic coordinates.
- `cs2cs`: for transformation from one CRS to another CRS.
- `geod`: for geodesic (great circle) computations.
- `cct`: for generic Coordinate Conversions and Transformations.
- `gie`: the Geospatial Integrity Investigation Environment.
- `projinfo`: for geodetic object and coordinate operation queries
- `projinfo`: for geodetic object and coordinate operation queries.
- `projsync`: for synchronizing PROJ datum and transformation support data.
> More information on the utilities can be found on the [PROJ website](https://proj.org/apps).
## Installation
### Build dependencies
PROJ requires C and C++11 compilers.
It also requires SQLite3 (headers, library and executable). The minimum
version of SQLite3 required is 3.11
Consult the [Installation](https://proj.org/install.html) page of the official
documentation.
For builds on the master branch, [install.rst](https://github.com/OSGeo/PROJ/blob/master/docs/source/install.rst)
might be more up-to-date.
### Building with CMake
cd proj
mkdir build
cd build
cmake ..
cmake --build .
On Windows, one may need to specify generator:
cmake -G "Visual Studio 15 2017" ..
If the SQLite3 dependency is installed in a custom location, specify the
paths to the include directory and the library:
cmake -DSQLITE3_INCLUDE_DIR=/opt/SQLite/include -DSQLITE3_LIBRARY=/opt/SQLite/lib/libsqlite3.so ..
Tests are run with
ctest
The test suite requires that the proj-datumgrid package is installed
in `PROJ_LIB`.
### Building on Unix/Linux
FSF's configuration procedure is used to ease installation of the
PROJ system.
The default destination path prefix for installed files is `/usr/local`.
Results from the installation script will be placed into subdirectories
`bin`, `include`, `lib`, `man/man1` and `man/man3`.
If this default path prefix is proper, then execute:
./configure
See the note below if you are building PROJ directly from the git repository.
If another path prefix is required, then execute:
./configure --prefix=/my/path
In either case, the directory of the prefix path must exist and be
writable by the installer.
After executing configure, execute:
make
make install
The install target will create, if necessary, all required sub-directories.
Tests are run with
make check
The test suite requires that the proj-datumgrid package is installed
in `PROJ_LIB`.
#### Building from the git repository
If you are building from the git repository you have to first run
./autogen.sh
which will generate a configure script that can be used as described above.
### Distribution files and format
## Distribution files and format
Sources are distributed in one or more files. The principle elements
of the system are stored in a compressed tar file named `proj-x.y.z.tar.gz` where
@@ -114,20 +50,14 @@ number, and "z" indicates the patch number of the release.
In addition to the PROJ software package, distributions of datum
conversion grid files and PROJ parameter files are also available.
The grid package is distributed under the name `proj-datumgrid-x.y.zip`,
The grid package is distributed under the name `proj-data-x.y.zip`,
where "x" is the major release version and "y" is the minor release
version numbers. Similarly regional packages are distributed. The
regional packages contain resources that are not essential to the
functionality of PROJ but still of value to users in the region
specific to the package. All grids that were in proj-datumgrids-1.6
remain in proj-datumgrids-1.7; the regional datumgrid files contain
grids for datums not previously supported (prior to PROJ 5.0.0).
version numbers. The resource packages can be downloaded from the
[PROJ website](https://proj.org/download.html).
The resource packages can be downloaded from the [PROJ website](https://proj.org/download.html).
More info on the contents of the various resource packages can be
More info on the contents of the proj-data package can be
found at the
[proj-datumgrid GitHub repository](https://github.com/OSGeo/proj-datumgrid).
[PROJ-data GitHub repository](https://github.com/OSGeo/PROJ-data).
The resource file packages should be extracted to `PROJ_LIB`
where PROJ will find them after installation. The default location of
@@ -135,6 +65,13 @@ where PROJ will find them after installation. The default location of
be changed to a different directory. On Windows you have to define
`PROJ_LIB` yourself.
### Citing PROJ in publications
As an alternative to installing the data package on the local system,
the resource files can be retrieved on-the-fly from the
[PROJ CDN](https://cdn.proj.org/).
A [network-enabled](https://proj.org/usage/network.html) PROJ build, will
automatically fetch resource files that are not present locally from the CDN.
## Citing PROJ in publications
See [CITATION](CITATION)
+49 -35
View File
@@ -1,7 +1,3 @@
platform:
- x64
- x86
branches:
except:
- /(cherry-pick-)?backport-\d+-to-/
@@ -10,53 +6,71 @@ environment:
matrix:
# VS 2015
- VS_VERSION: Visual Studio 14
- platform: x86
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
BUILD_SHARED_LIBS: OFF
CMAKE_GENERATOR: Ninja
# VS 2017
- VS_VERSION: Visual Studio 15
APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
# - platform: x64
# APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
# BUILD_SHARED_LIBS: ON
# CMAKE_GENERATOR: Ninja
shallow_clone: true
cache:
- C:\Tools\vcpkg\installed\ -> appveyor.yml
build_script:
- echo build_script
- git clone https://github.com/microsoft/vcpkg
- cd vcpkg
- bootstrap-vcpkg.bat
- set PATH=%CD%;%PATH%
- cd ..
- vcpkg install sqlite3:"%platform%"-windows
- set SQLITE3_BIN=%APPVEYOR_BUILD_FOLDER%\sqlite3\bin
- mkdir %SQLITE3_BIN%
- copy c:\projects\proj\vcpkg\installed\"%platform%"-windows\bin\sqlite3.dll %SQLITE3_BIN%
- ps: |
appveyor DownloadFile https://sqlite.org/2018/sqlite-tools-win32-x86-3250100.zip
7z x sqlite-tools-win32-x86-3250100.zip
- copy "%APPVEYOR_BUILD_FOLDER%"\sqlite-tools-win32-x86-3250100\sqlite3.exe %SQLITE3_BIN%
- set PATH=%PATH%;%SQLITE3_BIN%
- if "%platform%" == "x64" SET VS_FULL=%VS_VERSION% Win64
- if "%platform%" == "x64" SET BUILD_LIBPROJ_SHARED=ON
- if "%platform%" == "x86" SET VS_FULL=%VS_VERSION%
- if "%platform%" == "x86" SET BUILD_LIBPROJ_SHARED=OFF
- echo "%VS_FULL%"
- set VCPKG_ROOT=C:\Tools\vcpkg
- set VCPKG_INSTALLED=%VCPKG_ROOT%\installed\%platform%-windows
- set VCPKG_DEFAULT_TRIPLET=%platform%-windows
- set VCPKG_DEFAULT_HOST_TRIPLET=%platform%-windows
# If cached directory does not exist, update vcpkg and install dependencies
# The checkout of a precise sha1 for VS2015 is a workaround for https://github.com/microsoft/vcpkg/issues/11666
- if not exist %VCPKG_INSTALLED%\bin (
cd "%VCPKG_ROOT%" &
git fetch --depth=1 origin 2023.04.15 &
(if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" (git -c advice.detachedHead=false checkout FETCH_HEAD)) &
.\bootstrap-vcpkg.bat -disableMetrics &
vcpkg install sqlite3[core,tool] tiff curl --triplet=%platform%-windows &
cd %APPVEYOR_BUILD_FOLDER%
)
- dir %VCPKG_INSTALLED%\bin
- set PATH=%VCPKG_INSTALLED%\tools;%PATH%
# See https://www.appveyor.com/docs/lang/cpp/
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" if %platform%==x86
(call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" x86)
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017"
(call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %platform% )
#
- set PROJ_BUILD=%APPVEYOR_BUILD_FOLDER%\build
- mkdir %PROJ_BUILD%
- cd %PROJ_BUILD%
- set PROJ_DIR=%APPVEYOR_BUILD_FOLDER%\proj_dir
- cmake -G "%VS_FULL%" .. -DCMAKE_BUILD_TYPE=Release -DBUILD_LIBPROJ_SHARED="%BUILD_LIBPROJ_SHARED%" -DCMAKE_C_FLAGS="/WX" -DCMAKE_CXX_FLAGS="/WX" -DCMAKE_TOOLCHAIN_FILE=C:/projects/proj/vcpkg/scripts/buildsystems/vcpkg.cmake -DCMAKE_INSTALL_PREFIX="%PROJ_DIR%"
- cmake --build . --config Release --target install
- >-
cmake ..
-D CMAKE_BUILD_TYPE=Release
-D BUILD_SHARED_LIBS="%BUILD_SHARED_LIBS%"
-D CMAKE_C_FLAGS="/WX"
-D CMAKE_CXX_FLAGS="/WX"
-D CMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake
-D CMAKE_INSTALL_PREFIX="%PROJ_DIR%"
- ninja -v
- ninja install
- dir %PROJ_DIR%\bin
test_script:
- echo test_script
- set PROJ_LIB=%PROJ_DIR%\share\proj
- cd %PROJ_LIB%
- curl -O https://download.osgeo.org/proj/proj-datumgrid-1.8.zip
- 7z e -aoa -y proj-datumgrid-1.8.zip
- set PROJ_DATA=%PROJ_DIR%\share\proj
- cd %PROJ_BUILD%
- ctest -V -C Release
- set PATH=%PATH%;%PROJ_DIR%\bin
- ctest --output-on-failure -C Release
- set BUILD_MODE=shared
- if BUILD_SHARED_LIBS==OFF (set BUILD_MODE=static)
- call %APPVEYOR_BUILD_FOLDER%\test\postinstall\test_cmake.bat %PROJ_DIR% %BUILD_MODE%
# Executables in %PROJ_DIR%\bin need runtime from %VCPKG_INSTALLED%\bin
- set PATH=%PROJ_DIR%\bin;%VCPKG_INSTALLED%\bin;%PATH%
- proj
deploy: off
-41
View File
@@ -1,41 +0,0 @@
#!/bin/sh
#
# Autotools boostrapping script
#
giveup()
{
echo
echo " Something went wrong, giving up!"
echo
exit 1
}
OSTYPE=`uname -s`
for libtoolize in glibtoolize libtoolize; do
LIBTOOLIZE=`which $libtoolize 2>/dev/null`
if test "$LIBTOOLIZE"; then
break;
fi
done
#AMFLAGS="--add-missing --copy --force-missing"
AMFLAGS="--add-missing --copy"
if test "$OSTYPE" = "IRIX" -o "$OSTYPE" = "IRIX64"; then
AMFLAGS=$AMFLAGS" --include-deps";
fi
echo "Running aclocal"
aclocal -I ./m4 || giveup
echo "Running autoheader"
autoheader || giveup
echo "Running libtoolize"
$LIBTOOLIZE --force --copy || giveup
echo "Running automake"
automake $AMFLAGS # || giveup
echo "Running autoconf"
autoconf || giveup
echo "======================================"
echo "Now you are ready to run './configure'"
echo "======================================"
+117 -34
View File
@@ -1,9 +1,75 @@
# proj-config.cmake for the install tree. It's installed in
# ${INSTALL_CMAKE_DIR} and @PROJECT_ROOT_DIR@ is the relative
# path to the root from there. (Note that the whole install tree can
# be relocated.)
file(RELATIVE_PATH PROJECT_ROOT_DIR
${CMAKE_INSTALL_PREFIX}/${CMAKECONFIGDIR} ${CMAKE_INSTALL_PREFIX})
# The old CMake PROJECT-NAME was PROJ4.
set (PROJECT_LEGACY_NAME PROJ4)
string (TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
string (TOLOWER "${PROJECT_LEGACY_NAME}" PROJECT_LEGACY_LOWER)
# Starting with version 7.0, we install config-style find package
# files so that PROJ can be found with both
#
# find_package(PROJ)
# find_package(PROJ4)
#
# Here are the details... The command
#
# find_package(PROJ)
#
# if successful, will define variables
#
# PROJ_FOUND
# PROJ_VERSION
# PROJ_LIBRARIES = PROJ::proj
# PROJ_INCLUDE_DIRS
# etc
#
# and will define targets
#
# PROJ::proj
# PROJ4::proj
#
# Similarly
#
# find_package(PROJ4)
#
# if successful, will define variables
#
# PROJ4_FOUND
# PROJ4_VERSION
# PROJ4_LIBRARIES = PROJ4::proj
# PROJ4_INCLUDE_DIRS
# etc
#
# and will define targets
#
# PROJ::proj
# PROJ4::proj
#
# Note that targets PROJ::proj and PROJ4::proj are provided in both
# cases. However, no attempt is made to define both sets of variables
# with the two find_package options. Doing so would just lead to user
# confusion.
#
# Because pre-7.0 versions of PROJ do not support find_package (PROJ)
# and do not define a target PROJ::proj
#
# find_package(PROJ4)
#
# (instead of PROJ) should be used in any development scenarios which
# might involve (even indirectly) pre-7.0 versions of PROJ.
#
# At some future dates, find_package (PROJ4) will
#
# define PROJ4_LIBRARIES = PROJ::proj
# give WARNING message suggesting migration to find_package(PROJ)
# be disallowed via the version checking code
#
# At some more distant date, the PROJ4::proj target will be retired.
#
#
# All this messiness is confined to
#
# cmake/CMakeLists.txt (this file)
# cmake/project-config.cmake.in
# cmake/project-config-version.cmake.in
# Variables needed by ${PROJECT_NAME_LOWER}-config-version.cmake
if (MSVC)
@@ -16,32 +82,49 @@ else ()
set (MSVC_TOOLSET_VERSION 0)
set (MSVC_TOOLSET_MAJOR 0)
endif ()
if (CMAKE_CROSSCOMPILING)
# Ensure that all "true" (resp. "false") settings are represented by
# the same string.
set (CMAKE_CROSSCOMPILING_STR "ON")
else ()
set (CMAKE_CROSSCOMPILING_STR "OFF")
endif ()
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
configure_file(project-config.cmake.in project-config.cmake @ONLY)
configure_file(project-config-version.cmake.in
project-config-version.cmake @ONLY)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/project-config.cmake"
DESTINATION "${CMAKECONFIGDIR}"
RENAME "${PROJECT_NAME_LOWER}-config.cmake")
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/project-config-version.cmake"
DESTINATION "${CMAKECONFIGDIR}"
RENAME "${PROJECT_NAME_LOWER}-config-version.cmake")
# Make information about the cmake targets (the library and the tools)
# available.
install(EXPORT targets
FILE ${PROJECT_NAME_LOWER}-targets.cmake
DESTINATION "${CMAKECONFIGDIR}")
install(EXPORT targets
NAMESPACE ${PROJECT_NAME}::
FILE ${PROJECT_NAME_LOWER}-namespace-targets.cmake
DESTINATION "${CMAKECONFIGDIR}")
# If this is a regular build (PROJECT_SOURCE_DIR == CMAKE_SOURCE_DIR), export legacy files by default
# Otherwise, this is embedded in another project, only export PROJ target
# cf https://github.com/OSGeo/gdal/issues/5646
string(COMPARE EQUAL "${PROJECT_SOURCE_DIR}" "${CMAKE_SOURCE_DIR}" DEFAULT_VAL)
option(INSTALL_LEGACY_CMAKE_FILES "Install PROJ4 legacy target CMake files" ${DEFAULT_VAL})
set(PROJECT_LIST ${PROJECT_NAME})
if (INSTALL_LEGACY_CMAKE_FILES)
set(PROJECT_LIST "${PROJECT_LIST}" "${PROJECT_LEGACY_NAME}")
endif ()
foreach (PROJECT_VARIANT_NAME IN LISTS PROJECT_LIST)
string (TOLOWER "${PROJECT_VARIANT_NAME}" PROJECT_VARIANT_LOWER)
set (CMAKECONFIGSUBDIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_VARIANT_LOWER}")
# proj-config.cmake for the install tree. It's installed in
# ${CMAKECONFIGSUBDIR} and @PROJECT_ROOT_DIR@ is the relative
# path to the root from there. (Note that the whole install tree can
# be relocated.)
file (RELATIVE_PATH PROJECT_ROOT_DIR
${CMAKE_INSTALL_PREFIX}/${CMAKECONFIGSUBDIR} ${CMAKE_INSTALL_PREFIX})
configure_file (project-config.cmake.in
project-${PROJECT_VARIANT_LOWER}-config.cmake @ONLY)
configure_file (project-config-version.cmake.in
project-${PROJECT_VARIANT_LOWER}-version.cmake @ONLY)
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/project-${PROJECT_VARIANT_LOWER}-config.cmake"
DESTINATION "${CMAKECONFIGSUBDIR}"
RENAME "${PROJECT_VARIANT_LOWER}-config.cmake")
install(FILES
"${CMAKE_CURRENT_BINARY_DIR}/project-${PROJECT_VARIANT_LOWER}-version.cmake"
DESTINATION "${CMAKECONFIGSUBDIR}"
RENAME "${PROJECT_VARIANT_LOWER}-config-version.cmake")
# Make information about the cmake targets (the library and the tools)
# available.
install(EXPORT targets
NAMESPACE ${PROJECT_NAME}::
FILE ${PROJECT_NAME_LOWER}-targets.cmake
DESTINATION "${CMAKECONFIGSUBDIR}")
if (INSTALL_LEGACY_CMAKE_FILES)
install(EXPORT targets
NAMESPACE ${PROJECT_LEGACY_NAME}::
FILE ${PROJECT_LEGACY_LOWER}-targets.cmake
DESTINATION "${CMAKECONFIGSUBDIR}")
endif()
endforeach ()
+62
View File
@@ -0,0 +1,62 @@
#
# CMake module to support ccache (or clcache for MSVC)
#
# Copyright (c) 2021, Mike Taves <mwtoews at gmail dot com>
#
# Usage:
# Add "include(Ccache)" to CMakeLists.txt and enable
# using the option -D USE_CCACHE=ON
option(USE_CCACHE
"Use ccache (or clcache for MSVC) to compile C/C++ objects" OFF)
if(NOT USE_CCACHE)
# stop here and return to including file
return()
endif()
# Search priority:
# 1. ccache for many compilers except MSVC
# 2. clcache for MSVC
find_program(CCACHE_PROGRAM NAMES ccache clcache)
if(CCACHE_PROGRAM)
message(STATUS "Configuring ccache with ${CCACHE_PROGRAM}")
if(CMAKE_GENERATOR STREQUAL "Xcode")
# see https://crascit.com/2016/04/09/using-ccache-with-cmake/
set(C_LAUNCHER "${CCACHE_PROGRAM}")
set(CXX_LAUNCHER "${CCACHE_PROGRAM}")
set(CCACHE_LAUNCH_C ${CMAKE_BINARY_DIR}/ccache-c)
set(CCACHE_LAUNCH_CXX ${CMAKE_BINARY_DIR}/ccache-cxx)
file(WRITE "${CCACHE_LAUNCH_C}" "\
#!/bin/sh
shift
exec \"${C_LAUNCHER}\" \"${CMAKE_C_COMPILER}\" \"$@\"
")
file(WRITE "${CCACHE_LAUNCH_CXX}" "\
#!/bin/sh
shift
exec \"${CXX_LAUNCHER}\" \"${CMAKE_CXX_COMPILER}\" \"$@\"
")
# Note: file(CHMOD) introduced in CMake 3.19
execute_process(
COMMAND chmod a+rx
"${CCACHE_LAUNCH_C}"
"${CCACHE_LAUNCH_CXX}"
)
# Set Xcode project attributes to route compilation and linking
# through the wrapper scripts
set(CMAKE_XCODE_ATTRIBUTE_CC "${CCACHE_LAUNCH_C}")
set(CMAKE_XCODE_ATTRIBUTE_CXX "${CCACHE_LAUNCH_CXX}")
set(CMAKE_XCODE_ATTRIBUTE_LD "${CCACHE_LAUNCH_C}")
set(CMAKE_XCODE_ATTRIBUTE_LDPLUSPLUS "${CCACHE_LAUNCH_CXX}")
else()
# Most other generators (Unix Makefiles, Ninja, etc.)
set(CMAKE_C_COMPILER_LAUNCHER "${CCACHE_PROGRAM}")
set(CMAKE_CXX_COMPILER_LAUNCHER "${CCACHE_PROGRAM}")
endif()
else()
message(WARNING "Ccache was requested, but no program was not found")
endif()
+99
View File
@@ -0,0 +1,99 @@
# Derived from https://gitlab.com/jhamberg/cmake-examples/-/blob/master/cmake/FileEmbed.cmake
# MIT licensed
# Copyright (c) 2022 Jonathan Hamberg
function(FileEmbedSetup)
if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/file_embed)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}file_embed)
endif ()
if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/file_embed/file_embed_empty.c)
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/file_embed/file_embed_empty.c "")
endif ()
add_library(file_embed ${CMAKE_CURRENT_BINARY_DIR}/file_embed/file_embed_empty.c)
target_include_directories(file_embed PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/file_embed)
endfunction()
function(FileEmbedAdd file)
FileEmbedGenerate(${file} var)
target_sources(file_embed PUBLIC ${var})
add_custom_command(
OUTPUT ${var}
COMMAND ${CMAKE_COMMAND}
-DRUN_FILE_EMBED_GENERATE=1
"-DFILE_EMBED_GENERATE_PATH=${file}"
-P ${PROJECT_SOURCE_DIR}/cmake/FileEmbed.cmake
MAIN_DEPENDENCY ${file}
)
endfunction()
function(FileEmbedGenerate file generated_c)
get_filename_component(base_filename ${file} NAME)
set(output_filename "${base_filename}.c")
string(MAKE_C_IDENTIFIER ${base_filename} c_name)
file(READ ${file} content HEX)
string(LENGTH "${content}" size)
math(EXPR size_mult_16 "${size} - (${size} % 16)")
string(SUBSTRING "${content}" 0 ${size_mult_16} content_mult_16)
string(REGEX REPLACE
"([A-Fa-f0-9][A-Fa-f0-9])\
([A-Fa-f0-9][A-Fa-f0-9])\
([A-Fa-f0-9][A-Fa-f0-9])\
([A-Fa-f0-9][A-Fa-f0-9])\
([A-Fa-f0-9][A-Fa-f0-9])\
([A-Fa-f0-9][A-Fa-f0-9])\
([A-Fa-f0-9][A-Fa-f0-9])\
([A-Fa-f0-9][A-Fa-f0-9])"
"0x\\1,0x\\2,0x\\3,0x\\4,0x\\5,0x\\6,0x\\7,0x\\8,\n" SEPARATED_HEX "${content_mult_16}")
set(SEPARATED_HEX_REMAINDER "")
if (NOT ${size_mult_16} EQUAL ${size})
string(SUBSTRING "${content}" ${size_mult_16} 16 content_remainder)
string(REGEX REPLACE "([A-Fa-f0-9][A-Fa-f0-9])" "0x\\1," SEPARATED_HEX_REMAINDER "${content_remainder}")
endif()
set(output_c "${SEPARATED_HEX}${SEPARATED_HEX_REMAINDER}")
set(output_c "
#include \"${c_name}.h\"
const uint8_t ${c_name}_data[] = {
${output_c}
}\;
const unsigned ${c_name}_size = sizeof(${c_name}_data)\;
")
set(output_h "
#ifndef ${c_name}_H
#define ${c_name}_H
#include <stdint.h>
extern const uint8_t ${c_name}_data[]\;
extern const unsigned ${c_name}_size\;
#endif // ${c_name}_H
")
if (NOT EXISTS ${CMAKE_CURRENT_BINARY_DIR}/file_embed)
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}file_embed)
endif ()
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/file_embed/${c_name}.c
${output_c})
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/file_embed/${c_name}.h
${output_h})
set(${generated_c} ${CMAKE_CURRENT_BINARY_DIR}/file_embed/${c_name}.c PARENT_SCOPE)
endfunction()
if (RUN_FILE_EMBED_GENERATE)
FileEmbedGenerate(${FILE_EMBED_GENERATE_PATH} var)
endif ()
-80
View File
@@ -1,80 +0,0 @@
# Find Sqlite3
# ~~~~~~~~~~~~
# Copyright (c) 2007, Martin Dobias <wonder.sk at gmail.com>
# Redistribution and use is allowed according to the terms of the BSD license.
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
#
# CMake module to search for Sqlite3 library
#
# If it's found it sets SQLITE3_FOUND to TRUE
# and following variables are set:
# SQLITE3_INCLUDE_DIR
# SQLITE3_LIBRARY
# SQLITE3_VERSION
# find_path and find_library normally search standard locations
# before the specified paths. To search non-standard paths first,
# FIND_* is invoked first with specified paths and NO_DEFAULT_PATH
# and then again with no specified paths to search the default
# locations. When an earlier FIND_* succeeds, subsequent FIND_*s
# searching for the same item do nothing.
# try to use framework on mac
# want clean framework path, not unix compatibility path
if(APPLE)
if(CMAKE_FIND_FRAMEWORK MATCHES "FIRST"
OR CMAKE_FRAMEWORK_PATH MATCHES "ONLY"
OR NOT CMAKE_FIND_FRAMEWORK)
set(CMAKE_FIND_FRAMEWORK_save ${CMAKE_FIND_FRAMEWORK} CACHE STRING "" FORCE)
set(CMAKE_FIND_FRAMEWORK "ONLY" CACHE STRING "" FORCE)
#find_path(SQLITE3_INCLUDE_DIR SQLite3/sqlite3.h)
find_library(SQLITE3_LIBRARY SQLite3)
if(SQLITE3_LIBRARY)
# find_path doesn't add "Headers" for a framework
set(SQLITE3_INCLUDE_DIR ${SQLITE3_LIBRARY}/Headers
CACHE PATH "Path to a file.")
endif()
set(CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK_save} CACHE STRING "" FORCE)
endif()
endif()
find_path(SQLITE3_INCLUDE_DIR sqlite3.h
"$ENV{LIB_DIR}/include"
"$ENV{LIB_DIR}/include/sqlite"
"$ENV{INCLUDE}"
)
find_library(SQLITE3_LIBRARY NAMES sqlite3_i sqlite3 PATHS
"$ENV{LIB_DIR}/lib"
"$ENV{LIB}/lib"
)
if(SQLITE3_INCLUDE_DIR AND SQLITE3_LIBRARY)
set(SQLITE3_FOUND TRUE)
endif()
# Extract version information from the header file
if(SQLITE3_INCLUDE_DIR)
file(STRINGS ${SQLITE3_INCLUDE_DIR}/sqlite3.h _ver_line
REGEX "^#define SQLITE_VERSION *\"[0-9]+\\.[0-9]+\\.[0-9]+\""
LIMIT_COUNT 1)
string(REGEX MATCH "[0-9]+\\.[0-9]+\\.[0-9]+"
SQLITE3_VERSION "${_ver_line}")
unset(_ver_line)
endif()
if(SQLITE3_FOUND)
if(NOT SQLITE3_FIND_QUIETLY)
message(STATUS "Found Sqlite3: ${SQLITE3_LIBRARY}")
message(STATUS "Sqlite3 version: ${SQLITE3_VERSION}")
endif()
else()
if(SQLITE3_FIND_REQUIRED)
message(FATAL_ERROR "Could not find Sqlite3")
endif()
endif()
-14
View File
@@ -1,14 +0,0 @@
EXTRA_DIST = CMakeLists.txt \
ProjInstallPath.cmake \
ProjUtilities.cmake \
proj_config.cmake.in \
ProjConfig.cmake \
ProjMac.cmake \
ProjTest.cmake \
ProjVersion.cmake \
policies.cmake \
proj_config.cmake.in \
project-config-version.cmake.in \
project-config.cmake.in \
FindSqlite3.cmake
+21 -18
View File
@@ -7,40 +7,43 @@
# (See accompanying file LICENSE_1_0.txt or copy at
# https://www.boost.org/LICENSE_1_0.txt)
################################################################################
include(CheckIncludeFiles)
include(CheckLibraryExists)
include(CheckFunctionExists)
# check needed include file
check_include_files(dlfcn.h HAVE_DLFCN_H)
check_include_files(inttypes.h HAVE_INTTYPES_H)
check_include_files(jni.h HAVE_JNI_H)
check_include_files(memory.h HAVE_MEMORY_H)
check_include_files(stdint.h HAVE_STDINT_H)
check_include_files(stdlib.h HAVE_STDLIB_H)
check_include_files(string.h HAVE_STRING_H)
check_include_files(sys/stat.h HAVE_SYS_STAT_H)
check_include_files(sys/types.h HAVE_SYS_TYPES_H)
check_include_files(unistd.h HAVE_UNISTD_H)
check_include_files("stdlib.h;stdarg.h;string.h;float.h" STDC_HEADERS)
# if C flags have -Werror, temporarily remove these while running some checks
string(FIND "${CMAKE_C_FLAGS}" "-Werror" FIND_WERROR)
if(FIND_WERROR GREATER_EQUAL 0)
# we must be careful about not matching -Werror=something, so let's append
# a space at the end of CMAKE_C_FLAGS and match -Werror with a trailing space
string(REPLACE "-Werror " " " _tmp_CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ")
set(_prev_CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
set(CMAKE_C_FLAGS "${_tmp_CMAKE_C_FLAGS}")
endif()
# check needed include file
check_function_exists(localeconv HAVE_LOCALECONV)
check_function_exists(strerror HAVE_STRERROR)
if(NOT WIN32)
check_library_exists(dl dladdr "" HAVE_LIBDL)
check_library_exists(m exp "" HAVE_LIBM)
endif()
# check libm need on unix
check_library_exists(m ceil "" HAVE_LIBM)
# restore CMAKE_C_FLAGS as before
if(FIND_WERROR GREATER_EQUAL 0)
set(CMAKE_C_FLAGS "${_prev_CMAKE_C_FLAGS}")
endif()
set(PACKAGE "proj")
set(PACKAGE_BUGREPORT "https://github.com/OSGeo/PROJ/issues")
set(PACKAGE_NAME "PROJ")
set(PACKAGE_STRING "PROJ ${${PROJECT_INTERN_NAME}_VERSION}")
set(PACKAGE_STRING "PROJ ${${PROJECT_NAME}_VERSION}")
set(PACKAGE_TARNAME "proj")
set(PACKAGE_URL "https://proj.org")
set(PACKAGE_VERSION "${${PROJECT_INTERN_NAME}_VERSION}")
set(PACKAGE_VERSION "${${PROJECT_NAME}_VERSION}")
# check if a second proj_config.h exists (created by ./configure)
# as this is within CMake's C_INCLUDES / CXX_INCLUDES
set(AUTOCONF_PROJ_CONFIG_H "${CMAKE_SOURCE_DIR}/src/proj_config.h")
set(AUTOCONF_PROJ_CONFIG_H "${PROJ_SOURCE_DIR}/src/proj_config.h")
if(EXISTS ${AUTOCONF_PROJ_CONFIG_H})
message(WARNING
"Autoconf's ${AUTOCONF_PROJ_CONFIG_H} may interfere with this "
-56
View File
@@ -18,59 +18,3 @@ if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
set(CMAKE_INSTALL_PREFIX ${DEFAULT_PROJ_ROOT_DIR}
CACHE PATH "Proj install prefix" FORCE)
endif()
#TODO
# for data install testing the PROJ_LIB envVar
string(TOLOWER "${PROJECT_NAME}" PROJECT_NAME_LOWER)
if(UNIX)
include(GNUInstallDirs)
set(DEFAULT_BIN_SUBDIR ${CMAKE_INSTALL_BINDIR})
set(DEFAULT_LIB_SUBDIR ${CMAKE_INSTALL_LIBDIR})
set(DEFAULT_DATA_SUBDIR ${CMAKE_INSTALL_DATAROOTDIR}/proj)
set(DEFAULT_INCLUDE_SUBDIR ${CMAKE_INSTALL_INCLUDEDIR})
set(DEFAULT_DOC_SUBDIR ${CMAKE_INSTALL_DOCDIR})
set(DEFAULT_CMAKE_SUBDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME_LOWER})
else()
# Common locations for Unix and Mac OS X
set(DEFAULT_BIN_SUBDIR bin)
set(DEFAULT_LIB_SUBDIR lib)
set(DEFAULT_DATA_SUBDIR share/proj)
set(DEFAULT_DOC_SUBDIR doc/proj)
set(DEFAULT_INCLUDE_SUBDIR include)
set(DEFAULT_DOC_SUBDIR share/doc/proj)
set(DEFAULT_CMAKE_SUBDIR lib/cmake/${PROJECT_NAME_LOWER})
endif()
# Locations are changeable by user to customize layout of PROJ installation
# (default values are platform-specific)
set(PROJ_BIN_SUBDIR ${DEFAULT_BIN_SUBDIR} CACHE STRING
"Subdirectory where executables will be installed")
set(PROJ_LIB_SUBDIR ${DEFAULT_LIB_SUBDIR} CACHE STRING
"Subdirectory where libraries will be installed")
set(PROJ_INCLUDE_SUBDIR ${DEFAULT_INCLUDE_SUBDIR} CACHE STRING
"Subdirectory where header files will be installed")
set(PROJ_DATA_SUBDIR ${DEFAULT_DATA_SUBDIR} CACHE STRING
"Subdirectory where data will be installed")
set(PROJ_DOC_SUBDIR ${DEFAULT_DOC_SUBDIR} CACHE STRING
"Subdirectory where doc will be installed")
set(PROJ_CMAKE_SUBDIR ${DEFAULT_CMAKE_SUBDIR} CACHE STRING
"Subdirectory where cmake proj-config file will be installed")
# Mark *DIR variables as advanced and dedicated to use by power-users only.
mark_as_advanced(
PROJ_ROOT_DIR
PROJ_BIN_SUBDIR
PROJ_LIB_SUBDIR
PROJ_INCLUDE_SUBDIR
PROJ_DATA_SUBDIR
PROJ_DOC_SUBDIR
PROJ_CMAKE_SUBDIR
)
set(DEFAULT_BINDIR "${PROJ_BIN_SUBDIR}")
set(DEFAULT_LIBDIR "${PROJ_LIB_SUBDIR}")
set(DEFAULT_DATADIR "${PROJ_DATA_SUBDIR}")
set(DEFAULT_DOCDIR "${PROJ_DOC_SUBDIR}")
set(DEFAULT_INCLUDEDIR "${PROJ_INCLUDE_SUBDIR}")
set(DEFAULT_CMAKEDIR "${PROJ_CMAKE_SUBDIR}")
+6 -4
View File
@@ -22,8 +22,10 @@ if(APPLE)
option(BUILD_FRAMEWORKS_AND_BUNDLE
"if set to ON, build a library framework and application bundle, \
otherwise install classical UNIX bin/lib" OFF)
set(DEFAULT_BINDIR ${BUNDLEDIR})
boost_report_value(BUNDLEDIR)
boost_report_value(PROJ_INSTALL_NAME_DIR)
boost_report_value(FRAMEWORKDIR)
if(BUILD_FRAMEWORKS_AND_BUNDLE)
set(CMAKE_INSTALL_BINDIR ${BUNDLEDIR})
endif()
print_variable(BUNDLEDIR)
print_variable(PROJ_INSTALL_NAME_DIR)
print_variable(FRAMEWORKDIR)
endif()
+56 -33
View File
@@ -1,50 +1,73 @@
#
# add test with sh script
# Add command-line interface tests
#
function(proj_add_test_script_sh SH_NAME BIN_USE)
if(UNIX)
get_filename_component(testname ${SH_NAME} NAME_WE)
set(TEST_OK 1)
if(ARGV2)
set(TEST_OK 0)
set(GRID_FULLNAME ${PROJECT_SOURCE_DIR}/data/${ARGV2})
if(EXISTS ${GRID_FULLNAME})
set(TEST_OK 1)
endif()
endif()
if(CMAKE_VERSION VERSION_LESS 2.8.4)
set(TEST_OK 0)
message(STATUS "test with bash script need a cmake version >= 2.8.4")
endif()
if(${TEST_OK})
add_test(NAME "${testname}"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/data
COMMAND ${PROJECT_SOURCE_DIR}/test/cli/${SH_NAME}
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${${BIN_USE}}
)
set_tests_properties( ${testname}
PROPERTIES ENVIRONMENT "PROJ_LIB=${PROJECT_BINARY_DIR}/data")
endif()
function(proj_test_set_properties TESTNAME)
set(_env "PROJ_SKIP_READ_USER_WRITABLE_DIRECTORY=YES"
"PROJ_DATA=${PROJ_BINARY_DIR}/data/for_tests")
if(TIFF_ENABLED)
set(_env ${_env} "TIFF_ENABLED=YES")
else()
set(_env ${_env} "TIFF_ENABLED=NO")
endif()
set_property(TEST ${TESTNAME}
PROPERTY ENVIRONMENT ${_env})
endfunction()
function(proj_add_test_script_sh SH_NAME EXE_PATH)
set(testname ${SH_NAME})
add_test(NAME ${testname}
WORKING_DIRECTORY ${PROJ_BINARY_DIR}/test/cli
COMMAND bash ${PROJ_SOURCE_DIR}/test/cli/${SH_NAME} "${${EXE_PATH}}"
)
proj_test_set_properties(${testname})
endfunction()
function(proj_run_cli_test TESTFILE EXE_PATH)
set(testname ${TESTFILE})
add_test(NAME ${testname}
WORKING_DIRECTORY ${PROJ_BINARY_DIR}/test/cli
COMMAND ${Python_EXECUTABLE}
${PROJ_SOURCE_DIR}/test/cli/run_cli_test.py
--exe "${${EXE_PATH}}"
${PROJ_SOURCE_DIR}/test/cli/${TESTFILE}
)
proj_test_set_properties(${testname})
endfunction()
function(proj_add_gie_test TESTNAME TESTCASE)
set(GIE_BIN $<TARGET_FILE_NAME:gie>)
set(TESTFILE ${CMAKE_SOURCE_DIR}/test/${TESTCASE})
set(TESTFILE ${PROJ_SOURCE_DIR}/test/${TESTCASE})
add_test(NAME ${TESTNAME}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/test
WORKING_DIRECTORY ${PROJ_SOURCE_DIR}/test
COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${GIE_BIN}
${TESTFILE}
)
set_tests_properties( ${TESTNAME}
PROPERTIES ENVIRONMENT "PROJ_LIB=${PROJECT_BINARY_DIR}/data")
proj_test_set_properties(${TESTNAME})
endfunction()
# Create user writable directory for tests
add_custom_target(create_tmp_user_writable_dir ALL
COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJ_BINARY_DIR}/tmp_user_writable_dir
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJ_BINARY_DIR}/tmp_user_writable_dir)
function(proj_add_gie_network_dependent_test TESTNAME TESTCASE)
set(GIE_BIN $<TARGET_FILE_NAME:gie>)
set(TESTFILE ${PROJ_SOURCE_DIR}/test/${TESTCASE})
add_test(NAME ${TESTNAME}
WORKING_DIRECTORY ${PROJ_SOURCE_DIR}/test
COMMAND ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${GIE_BIN}
${TESTFILE}
)
set_property(TEST ${TESTNAME}
PROPERTY ENVIRONMENT
"PROJ_USER_WRITABLE_DIRECTORY=${PROJ_BINARY_DIR}/tmp_user_writable_dir"
"PROJ_NETWORK=ON"
"PROJ_DATA=${PROJ_BINARY_DIR}/data/for_tests")
endfunction()
+65 -81
View File
@@ -13,104 +13,88 @@
################################################################################
# Macros in this module:
#
# proj_target_output_name:
# print_variable
# proj_target_output_name
# configure_proj_pc
#
################################################################################
#
# A big shout out to the cmake gurus @ compiz
#
function(colormsg)
string(ASCII 27 _escape)
set(WHITE "29")
set(GRAY "30")
set(RED "31")
set(GREEN "32")
set(YELLOW "33")
set(BLUE "34")
set(MAG "35")
set(CYAN "36")
foreach(color WHITE GRAY RED GREEN YELLOW BLUE MAG CYAN)
set(HI${color} "1\;${${color}}")
set(LO${color} "2\;${${color}}")
set(_${color}_ "4\;${${color}}")
set(_HI${color}_ "1\;4\;${${color}}")
set(_LO${color}_ "2\;4\;${${color}}")
endforeach()
set(str "")
set(coloron FALSE)
foreach(arg ${ARGV})
if(NOT ${${arg}} STREQUAL "")
if(CMAKE_COLOR_MAKEFILE)
set(str "${str}${_escape}[${${arg}}m")
set(coloron TRUE)
endif()
else()
set(str "${str}${arg}")
if(coloron)
set(str "${str}${_escape}[0m")
set(coloron FALSE)
endif()
set(str "${str} ")
endif()
endforeach()
message(STATUS ${str})
endfunction()
# colormsg("Colors:"
# WHITE "white" GRAY "gray" GREEN "green"
# RED "red" YELLOW "yellow" BLUE "blue" MAG "mag" CYAN "cyan"
# _WHITE_ "white" _GRAY_ "gray" _GREEN_ "green"
# _RED_ "red" _YELLOW_ "yellow" _BLUE_ "blue" _MAG_ "mag" _CYAN_ "cyan"
# _HIWHITE_ "white" _HIGRAY_ "gray" _HIGREEN_ "green"
# _HIRED_ "red" _HIYELLOW_ "yellow" _HIBLUE_ "blue" _HIMAG_ "mag"
# _HICYAN_ "cyan" HIWHITE "white" HIGRAY "gray" HIGREEN "green"
# HIRED "red" HIYELLOW "yellow" HIBLUE "blue" HIMAG "mag" HICYAN "cyan"
# "right?")
#
# pretty-prints the value of a variable so that the
# equals signs align
#
function(boost_report_value NAME)
function(print_variable NAME)
string(LENGTH "${NAME}" varlen)
# LOG
#message(STATUS "boost_report_value: NAME=${NAME} (${varlen})")
#message(STATUS "boost_report_value: \${NAME}=${${NAME}}")
math(EXPR padding_len 40-${varlen})
string(SUBSTRING " "
0 ${padding_len} varpadding)
colormsg("${NAME}${varpadding} = ${${NAME}}")
math(EXPR padding_len 30-${varlen})
if(${padding_len} GREATER 0)
string(SUBSTRING " "
0 ${padding_len} varpadding)
endif()
message(STATUS "${NAME}${varpadding} = ${${NAME}}")
endfunction()
#
# Generates output name for given target depending on platform and version.
# For instance, on Windows, dynamic link libraries get ABI version suffix
# proj_X_Y.dll.
# Configure a pkg-config file proj.pc
# See also ProjInstallPath.cmake
#
function(proj_target_output_name TARGET_NAME OUTPUT_NAME)
if(NOT DEFINED TARGET_NAME)
message(SEND_ERROR "Error, the variable TARGET_NAME is not defined!")
function(set_variable_from_rel_or_absolute_path var root rel_or_abs_path)
if(IS_ABSOLUTE "${rel_or_abs_path}")
set(${var} "${rel_or_abs_path}" PARENT_SCOPE)
else()
set(${var} "${root}/${rel_or_abs_path}" PARENT_SCOPE)
endif()
endfunction()
if(NOT DEFINED ${PROJECT_INTERN_NAME}_VERSION)
message(SEND_ERROR
"Error, the variable ${${PROJECT_INTERN_NAME}_VERSION} is not defined!")
endif()
# On Windows, ABI version is specified using binary file name suffix.
# On Unix, suffix is empty and SOVERSION is used instead.
if(WIN32)
string(LENGTH "${${PROJECT_INTERN_NAME}_ABI_VERSION}" abilen)
if(abilen GREATER 0)
set(SUFFIX "_${${PROJECT_INTERN_NAME}_ABI_VERSION}")
function(configure_proj_pc)
set(prefix ${CMAKE_INSTALL_PREFIX})
set_variable_from_rel_or_absolute_path("libdir" "$\{prefix\}" "${CMAKE_INSTALL_LIBDIR}")
set_variable_from_rel_or_absolute_path("includedir" "$\{prefix\}" "${CMAKE_INSTALL_INCLUDEDIR}")
set_variable_from_rel_or_absolute_path("datarootdir" "$\{prefix\}" "${CMAKE_INSTALL_DATAROOTDIR}")
set(datadir "$\{datarootdir\}")
set(PACKAGE "proj")
set(VERSION ${PROJ_VERSION})
# Build strings of dependencies (Libs.private, Requires.private)
set(EXTRA_LIBS "${CMAKE_THREAD_LIBS_INIT}")
set(EXTRA_REQUIRES "")
option(USE_PKGCONFIG_REQUIRES "Use 'Requires' instead 'Libs' in proj.pc" ON)
macro(add_module_or_libs MODULE)
if(USE_PKGCONFIG_REQUIRES)
list(APPEND EXTRA_REQUIRES "${MODULE}")
else()
list(APPEND EXTRA_LIBS "${ARGN}")
endif()
endmacro()
add_module_or_libs(sqlite3 -lsqlite3)
if(TIFF_ENABLED)
add_module_or_libs(libtiff-4 -ltiff)
endif()
if(CURL_ENABLED)
add_module_or_libs(libcurl -lcurl)
endif()
if(WIN32 AND NOT MINGW)
list(APPEND EXTRA_LIBS -lole32 -lshell32)
else()
set(cxx_libs "${CMAKE_CXX_IMPLICIT_LINK_LIBRARIES}")
list(REMOVE_ITEM cxx_libs ${CMAKE_C_IMPLICIT_LINK_LIBRARIES} nonempty)
foreach(lib IN LISTS cxx_libs)
list(APPEND EXTRA_LIBS "-l${lib}")
endforeach()
endif()
if(HAVE_LIBM AND NOT "-lm" IN_LIST EXTRA_LIBS)
list(APPEND EXTRA_LIBS -lm)
endif()
if(HAVE_LIBDL)
list(APPEND EXTRA_LIBS -ldl)
endif()
set(${OUTPUT_NAME} ${TARGET_NAME}${SUFFIX} PARENT_SCOPE)
# Join lists with a space
list(JOIN EXTRA_LIBS " " EXTRA_LIBS)
list(JOIN EXTRA_REQUIRES " " EXTRA_REQUIRES)
configure_file(
${CMAKE_CURRENT_SOURCE_DIR}/proj.pc.in
${CMAKE_CURRENT_BINARY_DIR}/proj.pc
@ONLY)
endfunction()
+8 -20
View File
@@ -27,27 +27,15 @@ macro(proj_version)
${ARGN})
# Set version components
set(${PROJECT_INTERN_NAME}_VERSION_MAJOR ${THIS_VERSION_MAJOR})
set(${PROJECT_INTERN_NAME}_VERSION_MINOR ${THIS_VERSION_MINOR})
set(${PROJECT_INTERN_NAME}_VERSION_PATCH ${THIS_VERSION_PATCH})
set(${PROJECT_NAME}_VERSION_MAJOR ${THIS_VERSION_MAJOR})
set(${PROJECT_NAME}_VERSION_MINOR ${THIS_VERSION_MINOR})
set(${PROJECT_NAME}_VERSION_PATCH ${THIS_VERSION_PATCH})
# Set VERSION string
set(${PROJECT_INTERN_NAME}_VERSION
"${${PROJECT_INTERN_NAME}_VERSION_MAJOR}.\
${${PROJECT_INTERN_NAME}_VERSION_MINOR}.\
${${PROJECT_INTERN_NAME}_VERSION_PATCH}")
set(${PROJECT_NAME}_VERSION
"${${PROJECT_NAME}_VERSION_MAJOR}.\
${${PROJECT_NAME}_VERSION_MINOR}.\
${${PROJECT_NAME}_VERSION_PATCH}")
# Set ABI version string used to name binary output
# On Windows, ABI version is specified using binary file name suffix.
if(WIN32)
set(${PROJECT_INTERN_NAME}_ABI_VERSION
"${${PROJECT_INTERN_NAME}_VERSION_MAJOR}_\
${${PROJECT_INTERN_NAME}_VERSION_MINOR}")
endif()
message(STATUS "")
boost_report_value(${PROJECT_INTERN_NAME}_VERSION)
if(WIN32)
boost_report_value(${PROJECT_INTERN_NAME}_ABI_VERSION)
endif()
print_variable(${PROJECT_NAME}_VERSION)
endmacro()
+2 -41
View File
@@ -1,48 +1,12 @@
/* Define to 1 if you have the <dlfcn.h> header file. */
#cmakedefine HAVE_DLFCN_H 1
/* Define to 1 if you have the <inttypes.h> header file. */
#cmakedefine HAVE_INTTYPES_H 1
/* Define to 1 if you have the <jni.h> header file. */
#cmakedefine HAVE_JNI_H 1
/* Define to 1 if you have the `m' library (-lm). */
#cmakedefine HAVE_LIBM 1
/* Define to 1 if you have the `dl' library (-ldl). */
#cmakedefine HAVE_LIBDL 1
/* Define to 1 if you have localeconv */
#cmakedefine HAVE_LOCALECONV 1
/* Define to 1 if you have the <memory.h> header file. */
#cmakedefine HAVE_MEMORY_H 1
/* Define to 1 if you have the <stdint.h> header file. */
#cmakedefine HAVE_STDINT_H 1
/* Define to 1 if you have the <stdlib.h> header file. */
#cmakedefine HAVE_STDLIB_H 1
/* Define to 1 if you have the `strerror' function. */
#cmakedefine HAVE_STRERROR 1
/* Define to 1 if you have the <strings.h> header file. */
#cmakedefine HAVE_STRINGS_H 1
/* Define to 1 if you have the <string.h> header file. */
#cmakedefine HAVE_STRING_H 1
/* Define to 1 if you have the <sys/stat.h> header file. */
#cmakedefine HAVE_SYS_STAT_H 1
/* Define to 1 if you have the <sys/types.h> header file. */
#cmakedefine HAVE_SYS_TYPES_H 1
/* Define to 1 if you have the <unistd.h> header file. */
#cmakedefine HAVE_UNISTD_H 1
/* Enabled for Java/JNI Support */
#cmakedefine JNI_ENABLED 1
/* Name of package */
#cmakedefine PACKAGE "${PACKAGE}"
@@ -61,8 +25,5 @@
/* Define to the version of this package. */
#cmakedefine PACKAGE_VERSION "${PACKAGE_VERSION}"
/* Define to 1 if you have the ANSI C header files. */
#cmakedefine STDC_HEADERS 1
/* Version number of package */
#cmakedefine VERSION "${VERSION}"
+5 -22
View File
@@ -1,4 +1,4 @@
# Version checking for @PROJECT_NAME@
# Version checking for @PROJECT_VARIANT_NAME@
set (PACKAGE_VERSION "@PROJ_VERSION@")
set (PACKAGE_VERSION_MAJOR "@PROJ_VERSION_MAJOR@")
@@ -14,26 +14,19 @@ if (MSVC)
# digit.
math (EXPR MSVC_TOOLSET_MAJOR "${MSVC_TOOLSET_VERSION}/10")
endif ()
if (CMAKE_CROSSCOMPILING)
# Ensure that all "true" (resp. "false") settings are represented by
# the same string.
set (CMAKE_CROSSCOMPILING_STR "ON")
else ()
set (CMAKE_CROSSCOMPILING_STR "OFF")
endif ()
if (NOT PACKAGE_FIND_NAME STREQUAL "@PROJECT_NAME@")
if (NOT PACKAGE_FIND_NAME STREQUAL "@PROJECT_VARIANT_NAME@")
# Check package name (in particular, because of the way cmake finds
# package config files, the capitalization could easily be "wrong").
# This is necessary to ensure that the automatically generated
# variables, e.g., <package>_FOUND, are consistently spelled.
set (REASON "package = @PROJECT_NAME@, NOT ${PACKAGE_FIND_NAME}")
set (REASON "package = @PROJECT_VARIANT_NAME@, NOT ${PACKAGE_FIND_NAME}")
set (PACKAGE_VERSION_UNSUITABLE TRUE)
elseif (NOT (APPLE OR (NOT DEFINED CMAKE_SIZEOF_VOID_P) OR
CMAKE_SIZEOF_VOID_P EQUAL @CMAKE_SIZEOF_VOID_P@))
CMAKE_SIZEOF_VOID_P EQUAL "@CMAKE_SIZEOF_VOID_P@"))
# Reject if there's a 32-bit/64-bit mismatch (not necessary with Apple
# since a multi-architecture library is built for that platform).
set (REASON "sizeof(*void) = @CMAKE_SIZEOF_VOID_P@")
set (REASON "sizeof(*void) = @CMAKE_SIZEOF_VOID_P@")
set (PACKAGE_VERSION_UNSUITABLE TRUE)
elseif (MSVC AND NOT (
# toolset version must be at least as great as @PROJECT_NAME@'s
@@ -43,16 +36,6 @@ elseif (MSVC AND NOT (
# Reject if there's a mismatch in MSVC compiler versions
set (REASON "MSVC_TOOLSET_VERSION = @MSVC_TOOLSET_VERSION@")
set (PACKAGE_VERSION_UNSUITABLE TRUE)
elseif (NOT CMAKE_CROSSCOMPILING_STR STREQUAL "@CMAKE_CROSSCOMPILING_STR@")
# Reject if there's a mismatch in ${CMAKE_CROSSCOMPILING}
set (REASON "cross-compiling = @CMAKE_CROSSCOMPILING@")
set (PACKAGE_VERSION_UNSUITABLE TRUE)
elseif (CMAKE_CROSSCOMPILING AND
NOT (CMAKE_SYSTEM_NAME STREQUAL "@CMAKE_SYSTEM_NAME@" AND
CMAKE_SYSTEM_PROCESSOR STREQUAL "@CMAKE_SYSTEM_PROCESSOR@"))
# Reject if cross-compiling and there's a mismatch in the target system
set (REASON "target = @CMAKE_SYSTEM_NAME@-@CMAKE_SYSTEM_PROCESSOR@")
set (PACKAGE_VERSION_UNSUITABLE TRUE)
elseif (PACKAGE_FIND_VERSION)
if (PACKAGE_FIND_VERSION VERSION_EQUAL PACKAGE_VERSION)
set (PACKAGE_VERSION_EXACT TRUE)
+64 -17
View File
@@ -1,32 +1,79 @@
# Configure @PROJECT_NAME@
#
# Set
# @PROJECT_NAME@_FOUND = 1
# @PROJECT_NAME@_INCLUDE_DIRS = /usr/local/include
# @PROJECT_NAME@_LIBRARIES = proj
# @PROJECT_NAME@_LIBRARY_DIRS = /usr/local/lib
# @PROJECT_NAME@_BINARY_DIRS = /usr/local/bin
# @PROJECT_NAME@_VERSION = 4.9.1 (for example)
# @PROJECT_VARIANT_NAME@_FOUND = 1
# @PROJECT_VARIANT_NAME@_INCLUDE_DIRS = /usr/local/include
# @PROJECT_VARIANT_NAME@_LIBRARIES = @PROJECT_VARIANT_NAME@::proj
# @PROJECT_VARIANT_NAME@_LIBRARY_DIRS = /usr/local/lib
# @PROJECT_VARIANT_NAME@_BINARY_DIRS = /usr/local/bin
# @PROJECT_VARIANT_NAME@_VERSION = 4.9.1 (for example)
if(@PROJECT_VARIANT_NAME@ STREQUAL "PROJ4")
message(DEPRECATION "find_package(PROJ4) is deprecated and will be retired soon. Please use find_package(PROJ) instead.")
endif()
message (STATUS "Reading ${CMAKE_CURRENT_LIST_FILE}")
# @PROJECT_NAME@_VERSION is set by version file
message (STATUS
"@PROJECT_NAME@ configuration, version ${@PROJECT_NAME@_VERSION}")
include(CMakeFindDependencyMacro)
# We cannot have a find_dependency() call between cmake_policy(PUSH)/cmake_policy(POP)
# because find_dependency() issues a return() on failure, which results in
# imbalanced push/pop
# Cf https://gitlab.kitware.com/cmake/cmake/-/issues/17612
cmake_policy(PUSH)
cmake_policy(SET CMP0012 NEW)
if("@ENABLE_TIFF@")
set(PROJ_CONFIG_FIND_TIFF_DEP ON)
endif()
if("@CURL_ENABLED@")
set(PROJ_CONFIG_FIND_CURL_DEP ON)
endif()
cmake_policy(POP)
find_dependency(SQLite3)
if(DEFINED PROJ_CONFIG_FIND_TIFF_DEP)
find_dependency(TIFF)
endif()
if(DEFINED PROJ_CONFIG_FIND_CURL_DEP)
# Chainload CURL usage requirements
find_dependency(CURL)
# Target CURL::libcurl only defined since CMake 3.12
if(NOT TARGET CURL::libcurl)
add_library(CURL::libcurl INTERFACE IMPORTED)
set_target_properties(CURL::libcurl PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${CURL_INCLUDE_DIRS}"
INTERFACE_LINK_LIBRARIES "${CURL_LIBRARIES}"
)
endif()
endif()
function(set_variable_from_rel_or_absolute_path var root rel_or_abs_path)
if(IS_ABSOLUTE "${rel_or_abs_path}")
set(${var} "${rel_or_abs_path}" PARENT_SCOPE)
else()
set(${var} "${root}/${rel_or_abs_path}" PARENT_SCOPE)
endif()
endfunction()
# Tell the user project where to find our headers and libraries
get_filename_component (_DIR ${CMAKE_CURRENT_LIST_FILE} PATH)
get_filename_component (_ROOT "${_DIR}/@PROJECT_ROOT_DIR@" ABSOLUTE)
set (@PROJECT_NAME@_INCLUDE_DIRS "${_ROOT}/@INCLUDEDIR@")
set (@PROJECT_NAME@_LIBRARY_DIRS "${_ROOT}/@LIBDIR@")
set (@PROJECT_NAME@_BINARY_DIRS "${_ROOT}/@BINDIR@")
# Use _ROOT as prefix here for the possibility of relocation after installation.
set_variable_from_rel_or_absolute_path("@PROJECT_VARIANT_NAME@_INCLUDE_DIRS" "${_ROOT}" "@CMAKE_INSTALL_INCLUDEDIR@")
set_variable_from_rel_or_absolute_path("@PROJECT_VARIANT_NAME@_LIBRARY_DIRS" "${_ROOT}" "@CMAKE_INSTALL_LIBDIR@")
set_variable_from_rel_or_absolute_path("@PROJECT_VARIANT_NAME@_BINARY_DIRS" "${_ROOT}" "@CMAKE_INSTALL_BINDIR@")
set (@PROJECT_NAME@_LIBRARIES @PROJECT_NAME@::proj)
set (@PROJECT_VARIANT_NAME@_LIBRARIES @PROJECT_VARIANT_NAME@::proj)
# Read in the exported definition of the library
include ("${_DIR}/@PROJECT_NAME_LOWER@-targets.cmake")
include ("${_DIR}/@PROJECT_NAME_LOWER@-namespace-targets.cmake")
if (@INSTALL_LEGACY_CMAKE_FILES@)
include ("${_DIR}/@PROJECT_LEGACY_LOWER@-targets.cmake")
endif()
unset (_ROOT)
unset (_DIR)
# For backward compatibility with old releases of libgeotiff
set (@PROJECT_NAME@_INCLUDE_DIR ${@PROJECT_NAME@_INCLUDE_DIRS})
if ("@PROJECT_VARIANT_NAME@" STREQUAL "PROJ4")
# For backward compatibility with old releases of libgeotiff
set (@PROJECT_VARIANT_NAME@_INCLUDE_DIR
${@PROJECT_VARIANT_NAME@_INCLUDE_DIRS})
endif ()
+65
View File
@@ -0,0 +1,65 @@
# install_manifest.txt is created in the top build tree, not the project one
if (NOT EXISTS "@CMAKE_BINARY_DIR@/install_manifest.txt")
message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_BINARY_DIR@/install_manifest.txt\"")
endif()
set(uninstall_file_list "@CMAKE_BINARY_DIR@/install_manifest.txt")
if(EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest_extra.txt")
list(APPEND uninstall_file_list "@CMAKE_CURRENT_BINARY_DIR@/install_manifest_extra.txt")
endif()
set(dir_list)
foreach (manifest_file IN ITEMS ${uninstall_file_list})
file(READ "${manifest_file}" files)
string(REGEX REPLACE "\n$" "" files "${files}")
string(REGEX REPLACE "\n" ";" files "${files}")
list(REVERSE files)
foreach (file ${files})
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
if (IS_DIRECTORY "$ENV{DESTDIR}${file}")
list(APPEND dir_list "${file}")
elseif (EXISTS "$ENV{DESTDIR}${file}")
get_filename_component(dir "${file}" DIRECTORY)
list(APPEND dir_list "${dir}")
execute_process(
COMMAND @CMAKE_COMMAND@ -E remove "$ENV{DESTDIR}${file}"
OUTPUT_VARIABLE rm_out
RESULT_VARIABLE rm_retval
)
if(NOT ${rm_retval} EQUAL 0)
message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
endif (NOT ${rm_retval} EQUAL 0)
else ()
message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
endif ()
endforeach(file)
endforeach()
while(NOT "${dir_list}" STREQUAL "")
list(REMOVE_DUPLICATES dir_list)
set(new_dir_list)
foreach (file IN ITEMS ${dir_list})
if (IS_DIRECTORY "$ENV{DESTDIR}${file}" AND "${file}" MATCHES "@CMAKE_INSTALL_PREFIX@[/\\].+")
file(GLOB file_list "$ENV{DESTDIR}${file}/*")
list(LENGTH file_list file_list_len)
# Only remove empty directories
if(file_list_len EQUAL 0)
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
execute_process(
COMMAND @CMAKE_COMMAND@ -E remove_directory "$ENV{DESTDIR}${file}"
OUTPUT_VARIABLE rm_out
RESULT_VARIABLE rm_retval
)
if(${rm_retval} EQUAL 0)
get_filename_component(upper_dir "${file}" DIRECTORY)
list(APPEND new_dir_list "${upper_dir}")
else()
message(STATUS "Problem when removing directory \"$ENV{DESTDIR}${file}\"")
endif()
endif()
endif()
endforeach()
set(dir_list "${new_dir_list}")
endwhile()
-336
View File
@@ -1,336 +0,0 @@
dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
AC_INIT([PROJ], [6.3.0],
[https://github.com/OSGeo/PROJ/issues], proj, [https://proj.org])
AC_CONFIG_MACRO_DIR([m4])
AC_LANG(C)
AC_CONFIG_AUX_DIR([.])
AM_INIT_AUTOMAKE([subdir-objects])
AM_CONFIG_HEADER(src/proj_config.h)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CC_C99
AC_PROG_CXX
AX_CXX_COMPILE_STDCXX_11([noext],[mandatory])
AC_PROG_INSTALL
AC_PROG_LN_S
AC_PROG_MAKE_SET
AM_PROG_LIBTOOL
dnl Enable as much warnings as possible
AX_CFLAGS_WARN_ALL(C_WFLAGS)
AX_CXXFLAGS_WARN_ALL(CXX_WFLAGS)
dnl For ICC: it needs -we10006 instead of -Werror to turn unknown options to errors
dnl Some gcc/clang versions might succeed on this test, so also include -Werror in ERROR_ON_UNKNOWN_OPTIONS
AX_CHECK_COMPILE_FLAG([-Werror -we10006],[ERROR_ON_UNKNOWN_OPTIONS="-Werror -we10006"],[ERROR_ON_UNKNOWN_OPTIONS="-Werror"])
dnl A few ICC warnings to turn off
dnl warning #188: enumerated type mixed with another type (needed on libcsf)
dnl warning #1684: conversion from pointer to same-sized integral type (potential portability problem) (needed on frmts/mrf)
dnl warning #2259: non-pointer conversion from "size_t={unsigned long}" to "int" may lose significant bits
dnl warning #2304: non-explicit constructor with single argument may cause implicit type conversion
dnl warning #3280: declaration hides member
dnl remark #11074: Inlining inhibited by limit max-size
dnl remark #11076: To get full report use -qopt-report=4 -qopt-report-phase ipo
AX_CHECK_COMPILE_FLAG([-diag-disable 188,1684,2259,2304,3280,11074,11076],[C_WFLAGS="$C_WFLAGS -diag-disable 188,1684,2259,2304,3280,11074,11076" CXX_WFLAGS="$CXX_WFLAGS -diag-disable 188,1684,2259,2304,3280,11074,11076"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wextra],[C_WFLAGS="$C_WFLAGS -Wextra" CXX_WFLAGS="$CXX_WFLAGS -Wextra"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Winit-self],[C_WFLAGS="$C_WFLAGS -Winit-self" CXX_WFLAGS="$CXX_WFLAGS -Winit-self"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wunused-parameter], [C_WFLAGS="$C_WFLAGS -Wunused-parameter" CXX_WFLAGS="$CXX_WFLAGS -Wunused-parameter" NO_UNUSED_PARAMETER_FLAG="-Wno-unused-parameter"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wmissing-prototypes], [C_WFLAGS="$C_WFLAGS -Wmissing-prototypes"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wmissing-declarations], [C_WFLAGS="$C_WFLAGS -Wmissing-declarations"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wformat], [C_WFLAGS="$C_WFLAGS -Wformat" CXX_WFLAGS="$CXX_WFLAGS -Wformat"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wformat -Werror=format-security -Wno-format-nonliteral], [C_WFLAGS="$C_WFLAGS -Werror=format-security -Wno-format-nonliteral" CXX_WFLAGS="$CXX_WFLAGS -Werror=format-security -Wno-format-nonliteral"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wshorten-64-to-32], [C_WFLAGS="$C_WFLAGS -Wshorten-64-to-32" CXX_WFLAGS="$CXX_WFLAGS -Wshorten-64-to-32"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wlogical-op], [C_WFLAGS="$C_WFLAGS -Wlogical-op" CXX_WFLAGS="$CXX_WFLAGS -Wlogical-op" NO_LOGICAL_OP_FLAG="-Wno-logical-op"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wshadow], [C_WFLAGS="$C_WFLAGS -Wshadow" CXX_WFLAGS="$CXX_WFLAGS -Wshadow"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl Error out on things that will fail with MSVC
AX_CHECK_COMPILE_FLAG([-Werror=vla], [C_WFLAGS="$C_WFLAGS -Werror=vla" CXX_WFLAGS="$CXX_WFLAGS -Werror=vla"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Werror=declaration-after-statement], [C_WFLAGS="$C_WFLAGS -Wdeclaration-after-statement"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl -Wclobbered is not reliable on most gcc versions
dnl AX_CHECK_COMPILE_FLAG([-Wno-clobbered], [C_WFLAGS="$C_WFLAGS -Wno-clobbered" CXX_WFLAGS="$CXX_WFLAGS -Wno-clobbered"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl Warn when macros __TIME__, __DATE__ or __TIMESTAMP__ are encountered as they might prevent bit-wise-identical reproducible compilations.
AX_CHECK_COMPILE_FLAG([-Wdate-time], [C_WFLAGS="$C_WFLAGS -Wdate-time" CXX_WFLAGS="$CXX_WFLAGS -Wdate-time"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl GCC 6 warnings
AX_CHECK_COMPILE_FLAG([-Wnull-dereference], [C_WFLAGS="$C_WFLAGS -Wnull-dereference" CXX_WFLAGS="$CXX_WFLAGS -Wnull-dereference"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wduplicated-cond], [C_WFLAGS="$C_WFLAGS -Wduplicated-cond" CXX_WFLAGS="$CXX_WFLAGS -Wduplicated-cond"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl GCC 7 warnings
dnl Do not enable yet. Causes warning in alg/gdalthinplate.cpp due to armadillo templates
dnl AX_CHECK_COMPILE_FLAG([-Wduplicated-branches], [C_WFLAGS="$C_WFLAGS -Wduplicated-branches" CXX_WFLAGS="$CXX_WFLAGS -Wduplicated-branches"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl GCC 8 warnings
AC_LANG_PUSH([C++])
AX_CHECK_COMPILE_FLAG([-Wextra-semi], [CXX_WFLAGS="$CXX_WFLAGS -Wextra-semi"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AC_LANG_POP([C++])
AX_CHECK_COMPILE_FLAG([-Wno-sign-compare], [NO_SIGN_COMPARE="-Wno-sign-compare"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl clang >= 3.9
AX_CHECK_COMPILE_FLAG([-Wcomma], [C_WFLAGS="$C_WFLAGS -Wcomma" CXX_WFLAGS="$CXX_WFLAGS -Wcomma"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl clang and gcc 5
AX_CHECK_COMPILE_FLAG([-Wfloat-conversion], [C_WFLAGS="$C_WFLAGS -Wfloat-conversion" CXX_WFLAGS="$CXX_WFLAGS -Wfloat-conversion"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl clang >= 3.2
AX_CHECK_COMPILE_FLAG([-Wdocumentation -Wno-documentation-deprecated-sync], [C_WFLAGS="$C_WFLAGS -Wdocumentation -Wno-documentation-deprecated-sync" CXX_WFLAGS="$CXX_WFLAGS -Wdocumentation -Wno-documentation-deprecated-sync"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl C++ specific stuff
AC_LANG_PUSH([C++])
AX_CHECK_COMPILE_FLAG([-Wunused-private-field], [CXX_WFLAGS="$CXX_WFLAGS -Wunused-private-field"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wmissing-prototypes], [CXX_WFLAGS="$CXX_WFLAGS -Wmissing-prototypes"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wmissing-declarations], [CXX_WFLAGS="$CXX_WFLAGS -Wmissing-declarations"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wnon-virtual-dtor], [CXX_WFLAGS="$CXX_WFLAGS -Wnon-virtual-dtor" NO_NON_VIRTUAL_DTOR_FLAG="-Wno-non-virtual-dtor"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wold-style-cast], [WARN_OLD_STYLE_CAST="-Wold-style-cast"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Weffc++], [WARN_EFFCPLUSPLUS="-Weffc++"],,[$ERROR_ON_UNKNOWN_OPTIONS])
dnl g++-4.8 complain a bit too much with -Weffc++
if test "$WARN_EFFCPLUSPLUS" != ""; then
SAVED_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $WARN_EFFCPLUSPLUS -Werror"
AC_MSG_CHECKING([if -Weffc++ should be enabled])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[[
class Base {};
class A: public Base {};
]])],
[AC_MSG_RESULT([yes])],
[WARN_EFFCPLUSPLUS=""]
[AC_MSG_RESULT([no])])
CXXFLAGS="$SAVED_CXXFLAGS"
CXX_WFLAGS="$CXX_WFLAGS $WARN_EFFCPLUSPLUS"
fi
dnl Clang enables -Woverloaded-virtual if -Wall is defined, but not GCC
AX_CHECK_COMPILE_FLAG([-Woverloaded-virtual], [CXX_WFLAGS="$CXX_WFLAGS -Woverloaded-virtual"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wweak-vtables], [CXX_WFLAGS="$CXX_WFLAGS -Wweak-vtables"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wdeprecated], [CXX_WFLAGS="$CXX_WFLAGS -Wdeprecated"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Wabstract-vbase-init], [CXX_WFLAGS="$CXX_WFLAGS -Wabstract-vbase-init"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AX_CHECK_COMPILE_FLAG([-Winconsistent-missing-destructor-override], [CXX_WFLAGS="$CXX_WFLAGS -Winconsistent-missing-destructor-override"],,[$ERROR_ON_UNKNOWN_OPTIONS])
HAVE_GCC_WARNING_ZERO_AS_NULL_POINTER_CONSTANT=no
AX_CHECK_COMPILE_FLAG([-Wzero-as-null-pointer-constant], [CXX_WFLAGS="$CXX_WFLAGS -Wzero-as-null-pointer-constant" HAVE_GCC_WARNING_ZERO_AS_NULL_POINTER_CONSTANT=yes NO_ZERO_AS_NULL_POINTER_CONSTANT_FLAG="-Wno-zero-as-null-pointer-constant"],,[$ERROR_ON_UNKNOWN_OPTIONS])
if test "$HAVE_GCC_WARNING_ZERO_AS_NULL_POINTER_CONSTANT" = "yes"; then
AC_DEFINE_UNQUOTED(HAVE_GCC_WARNING_ZERO_AS_NULL_POINTER_CONSTANT, 1,
[Define to 1 if the compiler supports -Wzero-as-null-pointer-constant])
fi
AC_LANG_POP([C++])
dnl ---------------------------------------------------------------------------
dnl Check for --enable-lto
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING([to enable LTO (link time optimization) build])
AC_ARG_ENABLE(lto,
AS_HELP_STRING([--enable-lto],
[enable LTO(link time optimization) (disabled by default)]))
FLTO_FLAG=""
if test "x$enable_lto" = "xyes"; then
AC_LANG_PUSH([C++])
AX_CHECK_COMPILE_FLAG([-flto], [FLTO_FLAG="-flto"],,[$ERROR_ON_UNKNOWN_OPTIONS])
if test "$FLTO_FLAG" != ""; then
SAVED_CXXFLAGS=$CXXFLAGS
CXXFLAGS="$CXXFLAGS $FLTO_FLAG -Werror"
AC_MSG_CHECKING([if -flto is available at link time])
AC_LINK_IFELSE([AC_LANG_PROGRAM(
[[]])],
[AC_MSG_RESULT([yes])],
[FLTO_FLAG=""]
[AC_MSG_RESULT([no])])
CXXFLAGS="$SAVED_CXXFLAGS"
fi
AC_LANG_POP([C++])
AX_CHECK_COMPILE_FLAG([-Wodr], [CXX_WFLAGS="$CXX_WFLAGS -Wodr"],,[$ERROR_ON_UNKNOWN_OPTIONS])
else
AC_MSG_RESULT([no])
fi
AC_SUBST(FLTO_FLAG,$FLTO_FLAG)
dnl Result in better inlining, but larger file
dnl AX_CHECK_COMPILE_FLAG([-fno-semantic-interposition], [CFLAGS="$CFLAGS -fno-semantic-interposition" CXXFLAGS="$CXXFLAGS -fno-semantic-interposition"],,[$ERROR_ON_UNKNOWN_OPTIONS])
AC_SUBST(C_WFLAGS,$C_WFLAGS)
AC_SUBST(CXX_WFLAGS,$CXX_WFLAGS)
AC_SUBST(NO_ZERO_AS_NULL_POINTER_CONSTANT_FLAG,$NO_ZERO_AS_NULL_POINTER_CONSTANT_FLAG)
CFLAGS="${CFLAGS} -fvisibility=hidden"
CXXFLAGS="${CXXFLAGS} -fvisibility=hidden"
dnl Checks for libraries.
save_CFLAGS="$CFLAGS"
CFLAGS=`echo "$CFLAGS" | sed "s/-Werror/ /"`
AC_CHECK_LIB(m,exp,,,)
CFLAGS="$save_CFLAGS"
dnl We check for headers
AC_HEADER_STDC
dnl Check flag for accurate arithmetic with Intel compiler. This is
dnl needed to stop the compiler from ignoring parentheses in expressions
dnl like (a + b) + c and from simplifying 0.0 + x to x (which is wrong if
dnl x = -0.0).
AX_CHECK_COMPILE_FLAG([-fp-model precise],
[CFLAGS="$CFLAGS -fp-model precise"],,[-Werror])
AC_SEARCH_LIBS([sqrt], [m])
AC_CHECK_FUNC(localeconv, [AC_DEFINE(HAVE_LOCALECONV,1,[Define to 1 if you have localeconv])])
AC_CHECK_FUNCS([strerror])
dnl ---------------------------------------------------------------------------
dnl Check for JNI support.
dnl ---------------------------------------------------------------------------
JNI_INCLUDE=
export JNI_INCLUDE
AC_ARG_WITH(jni,
[AS_HELP_STRING([--with-jni=dir],
[Include Java/JNI support, add optional include dir])
],,)
if test "$with_jni" = "yes" ; then
AC_DEFINE(JNI_ENABLED,1,[Enabled for Java/JNI Support])
AC_MSG_CHECKING(whether to enable Java/JNI support)
AC_MSG_RESULT([enabled])
elif test "$with_jni" != "no" -a "$with_jni" != "" ; then
AC_MSG_CHECKING(whether to enable Java/JNI support)
if test \! -r "$with_jni/jni.h" ; then
AC_MSG_ERROR(Did not find $with_jni/jni.h)
fi
AC_DEFINE(JNI_ENABLED,1,[Enabled for Java/JNI Support])
AC_MSG_RESULT([enabled])
JNI_INCLUDE="-I$with_jni"
elif test "$with_jni" = "" ; then
AC_CHECK_HEADERS(jni.h)
AC_MSG_CHECKING(whether to enable Java/JNI support)
if test "$ac_cv_header_jni_h" = "no" ; then
AC_MSG_RESULT([disabled])
else
AC_MSG_RESULT([enabled])
AC_DEFINE(JNI_ENABLED,1,[Enabled for Java/JNI Support])
fi
else
AC_MSG_CHECKING(whether to enable Java/JNI support)
AC_MSG_RESULT([disabled])
fi
AC_SUBST(JNI_INCLUDE,$JNI_INCLUDE)
dnl ---------------------------------------------------------------------------
dnl Provide a mechanism to disable real mutex support (if lacking win32 or
dnl posix mutexes for instance).
dnl ---------------------------------------------------------------------------
AC_ARG_WITH([mutex],
AS_HELP_STRING([--without-mutex],
[Disable real mutex locks (lacking pthreads)]),,)
AC_MSG_CHECKING([for mutexes])
THREAD_LIB=""
if test "$with_mutex" = yes -o x"$with_mutex" = x ; then
MUTEX_SETTING=pthread
AC_CHECK_LIB(pthread,pthread_create,PTHREAD_EXISTS=YES,,,)
if test -n "$PTHREAD_EXISTS" ; then
THREAD_LIB="-lpthread"
fi
AC_CHECK_LIB(pthread,pthread_mutexattr_settype,,,)
AC_CHECK_DECL(PTHREAD_MUTEX_RECURSIVE,
AC_DEFINE(HAVE_PTHREAD_MUTEX_RECURSIVE, [], [Define if your pthreads implementation have PTHREAD_MUTEX_RECURSIVE]),
,
[#include <pthread.h>])
AC_MSG_RESULT([enabled, pthread])
else
MUTEX_SETTING=stub
AC_MSG_RESULT([disabled by user])
fi
AC_SUBST(MUTEX_SETTING,$MUTEX_SETTING)
AC_SUBST(THREAD_LIB,$THREAD_LIB)
dnl ---------------------------------------------------------------------------
dnl Check for sqlite3 library and binary
dnl ---------------------------------------------------------------------------
if test "x$SQLITE3_CFLAGS$SQLITE3_LIBS" = "x" ; then
dnl Would build and run with older versons, but with horrible performance
dnl See https://github.com/OSGeo/PROJ/issues/1718
PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.11])
fi
AC_SUBST(SQLITE3_CFLAGS,$SQLITE3_CFLAGS)
AC_SUBST(SQLITE3_LIBS,$SQLITE3_LIBS)
AC_CHECK_PROG(SQLITE3_CHECK,sqlite3,yes)
if test x"$SQLITE3_CHECK" != x"yes" ; then
AC_MSG_ERROR([Please install sqlite3 binary.])
fi
dnl ---------------------------------------------------------------------------
dnl Check for external Google Test
dnl ---------------------------------------------------------------------------
AC_ARG_WITH(external-gtest,
AS_HELP_STRING([--with-external-gtest],
[Whether to use external Google Test]),,)
if test "x$with_external_gtest" = "xyes" ; then
AC_MSG_RESULT([using external GTest.])
PKG_CHECK_MODULES([GTEST], [gtest >= 1.8.0])
else
AC_MSG_RESULT([using internal GTest.])
GTEST_CFLAGS="-I\$(top_srcdir)/test/googletest/include"
GTEST_LIBS="\$(top_builddir)/test/googletest/libgtest.la"
fi
AM_CONDITIONAL(USE_EXTERNAL_GTEST, [test "x$with_external_gtest" = "xyes"])
AC_SUBST(GTEST_CFLAGS,$GTEST_CFLAGS)
AC_SUBST(GTEST_LIBS,$GTEST_LIBS)
dnl ---------------------------------------------------------------------------
dnl Generate files
dnl ---------------------------------------------------------------------------
AC_CONFIG_FILES([Makefile cmake/Makefile src/Makefile include/Makefile include/proj/Makefile include/proj/internal/Makefile
include/proj/internal/nlohmann/Makefile
test/Makefile test/cli/Makefile test/gie/Makefile test/gigs/Makefile test/unit/Makefile
man/Makefile man/man1/Makefile man/man3/Makefile data/Makefile
jniwrap/Makefile jniwrap/org.osgeo.proj/Makefile jniwrap/org.osgeo.proj/org/Makefile jniwrap/org.osgeo.proj/org/proj4/Makefile])
if ! test "x$with_external_gtest" = "xyes" ; then
AC_CONFIG_FILES([test/googletest/Makefile test/googletest/include/Makefile
test/googletest/include/gtest/Makefile
test/googletest/include/gtest/internal/Makefile
test/googletest/include/gtest/internal/custom/Makefile
test/googletest/src/Makefile])
fi
AC_CONFIG_FILES([proj.pc])
AC_OUTPUT
+3 -4
View File
@@ -3,8 +3,7 @@
# See: https://shop.swisstopo.admin.ch/en/products/geo_software/GIS_info
#
# You'll need to download the grids separately and put in a directory
# scanned by libproj. Directories may be added to the scan list through
# the PROJ_LIB environment variable
# scanned by libproj.
#
# Note that an independent effort was made to derive an usable grid
# from the CH1903->CH1903+ grid initially available from the Swisstopo
@@ -18,6 +17,6 @@
#
<metadata> +origin=Swisstopo +lastupdate=2012-02-27
# CH1903/LV03
<1903_LV03> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +nadgrids=CHENYX06_etrs.gsb +no_defs
<1903_LV03> +proj=somerc +lat_0=46.95240555555556 +lon_0=7.439583333333333 +k_0=1 +x_0=600000 +y_0=200000 +ellps=bessel +units=m +nadgrids=CHENyx06_ETRS.gsb +no_defs
# CH1903
<1903> +proj=longlat +ellps=bessel +nadgrids=CHENYX06_etrs.gsb +no_defs <>
<1903> +proj=longlat +ellps=bessel +nadgrids=CHENyx06_ETRS.gsb +no_defs <>
+70 -30
View File
@@ -2,18 +2,17 @@
# files containing dictionary of useful projection
#
set(PROJ_DICTIONARY
null
world
other.extra
nad27
GL27
nad83
nad.lst
CH
ITRF2000
ITRF2008
ITRF2014
set(PROJ_DB_CACHE_DIR "" CACHE PATH "Directory used to cache proj.db")
if(NOT IS_DIRECTORY ${PROJ_DB_CACHE_DIR})
if(NOT "${PROJ_DB_CACHE_DIR}" STREQUAL "")
message(WARNING
"PROJ_DB_CACHE_DIR (${PROJ_DB_CACHE_DIR}) not set to a directory")
set(PROJ_DB_CACHE_DIR "")
endif()
endif()
set(PROJ_INI
proj.ini
)
#
@@ -24,28 +23,24 @@ file(GLOB GSB_FILES *.gsb)
file(GLOB GTX_FILES *.gtx)
set(GRIDSHIFT_FILES ${GSB_FILES} ${GTX_FILES})
file(GLOB SCHEMA_FILES *.json)
file(GLOB GEOTIFF_FILES *.tif)
set(ALL_SQL_IN "${CMAKE_CURRENT_BINARY_DIR}/all.sql.in")
set(PROJ_DB "${CMAKE_CURRENT_BINARY_DIR}/proj.db")
include(sql_filelist.cmake)
add_custom_command(
OUTPUT ${ALL_SQL_IN}
COMMAND ${CMAKE_COMMAND} "-DALL_SQL_IN=${ALL_SQL_IN}"
-P "${CMAKE_CURRENT_SOURCE_DIR}/generate_all_sql_in.cmake"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS ${SQL_FILES}
COMMENT "Generating all.sql.in"
VERBATIM
)
add_custom_target(generate_all_sql_in ALL DEPENDS ${ALL_SQL_IN})
set(PROJ_DB_SQL_EXPECTED_MD5 "f6a88a01020b8abf364ff2d27271ae60")
add_custom_command(
OUTPUT ${PROJ_DB}
COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJ_DB}
COMMAND ${EXE_SQLITE3} -init ${ALL_SQL_IN} ${PROJ_DB} .quit
# note: we didn't port yet the foreign_key_check done in Makefile.am
DEPENDS generate_all_sql_in ${ALL_SQL_IN}
COMMAND ${CMAKE_COMMAND} "-DALL_SQL_IN=${ALL_SQL_IN}" "-DEXE_SQLITE3=${EXE_SQLITE3}" "-DPROJ_DB=${PROJ_DB}" "-DPROJ_VERSION=${PROJ_VERSION}" "-DPROJ_DB_CACHE_DIR=${PROJ_DB_CACHE_DIR}" "-DPROJ_DB_SQL_EXPECTED_MD5=${PROJ_DB_SQL_EXPECTED_MD5}" "-DDATA_BINARY_DIR=${CMAKE_CURRENT_BINARY_DIR}"
-P "${CMAKE_CURRENT_SOURCE_DIR}/generate_proj_db.cmake"
COMMAND ${CMAKE_COMMAND} -E copy ${PROJ_DB} ${CMAKE_CURRENT_BINARY_DIR}/for_tests
DEPENDS ${SQL_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/generate_proj_db.cmake"
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Generating proj.db"
VERBATIM
)
@@ -53,20 +48,65 @@ add_custom_command(
add_custom_target(generate_proj_db ALL DEPENDS ${PROJ_DB})
if(NOT "${CMAKE_CURRENT_SOURCE_DIR}" STREQUAL "${CMAKE_CURRENT_BINARY_DIR}")
foreach(FILE ${PROJ_DICTIONARY} ${GRIDSHIFT_FILES})
foreach(FILE ${PROJ_INI} ${PROJ_DICTIONARY} ${GRIDSHIFT_FILES})
configure_file(${FILE} ${FILE} COPYONLY)
endforeach()
endif()
# Copy select resource files in a for_tests subdirectory so that we are not
# influenced by the presence of other grids
# Note: this is done at configure/cmake time, not build time.
# So if you install new grids in the source data/ subdirectory, run cmake again
set(DATA_FOR_TESTS
GL27
nad27
nad83
ITRF2000)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/for_tests)
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/for_tests/tests)
foreach(FILE ${DATA_FOR_TESTS} ${PROJ_INI})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/${FILE} ${CMAKE_CURRENT_BINARY_DIR}/for_tests/${FILE} COPYONLY)
endforeach()
file(GLOB DATA_TESTS tests/*)
foreach(FILE ${DATA_TESTS})
get_filename_component(FILENAME ${FILE} NAME)
configure_file(${FILE} ${CMAKE_CURRENT_BINARY_DIR}/for_tests/tests/${FILENAME} COPYONLY)
endforeach()
set(DATA_FOR_TESTS_FROM_TESTS_SUBDIR
alaska
BETA2007.gsb
conus
MD
ntf_r93.gsb
ntv1_can.dat)
foreach(FILE ${DATA_FOR_TESTS_FROM_TESTS_SUBDIR})
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tests/${FILE} ${CMAKE_CURRENT_BINARY_DIR}/for_tests/${FILE} COPYONLY)
endforeach()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tests/egm96_15_downsampled.gtx ${CMAKE_CURRENT_BINARY_DIR}/for_tests/egm96_15.gtx COPYONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tests/ntv2_0_downsampled.gsb ${CMAKE_CURRENT_BINARY_DIR}/for_tests/ntv2_0.gsb COPYONLY)
# test_cs2cs_datumfile has a special case
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${CMAKE_CURRENT_BINARY_DIR}/for_tests/dir with space")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/tests/conus "${CMAKE_CURRENT_BINARY_DIR}/for_tests/dir with space/myconus" COPYONLY)
#
#install
#
set(ALL_DATA_FILE
${PROJ_DICTIONARY}
${GRIDSHIFT_FILES}
${PROJ_DB}
${SCHEMA_FILES}
${GEOTIFF_FILES}
)
if (NOT USE_ONLY_EMBEDDED_RESOURCE_FILES)
list(APPEND ALL_DATA_FILE ${PROJ_INI} ${PROJ_DB} ${PROJ_DICTIONARY})
endif()
install(
FILES ${ALL_DATA_FILE}
DESTINATION ${DATADIR}
DESTINATION ${PROJ_DATA_PATH}
)
+36 -3
View File
@@ -42,20 +42,53 @@
<CARB> +proj=helmert +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector
<EURA> +proj=helmert +drx=-0.000083 +dry=0.000534 +drz=0.000750 +convention=position_vector
<EURA> +proj=helmert +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector
<INDI> +proj=helmert +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector
<NAZC> +proj=helmert +drx=-0.000330 +dry=-0.001551 +drz=0.001625 +convention=position_vector
<NOAM> +proj=helmert +drx=0.000035 +dry=-0.000662 +drz=0.0001 +convention=position_vector
<NOAM> +proj=helmert +drx=0.000035 +dry=-0.000662 +drz=-0.0001 +convention=position_vector
<NUBI> +proj=helmert +drx=0.000095 +dry=-0.000598 +drz=0.000723 +convention=position_vector
<PCFC> +proj=helmert +drx=0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector
<PCFC> +proj=helmert +drx=-0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector
<SOAM> +proj=helmert +drx=-0.000243 +dry=-0.000311 +drz=-0.000154 +convention=position_vector
<SOMA> +proj=helmert +drx=-0.000080 +dry=-0.000745 +drz=0.000897 +convention=position_vector
<SUND> +proj=helmert +drx=0.000047 +dry=-0.001 +drz=0.000975 +convention=position_vector
# Plate names suffixed by _T (for Translation) that includes the translation
# rates +dx=0.00041 +dy=0.00022 +dz=0.00041 given by Table 2 of the ITRF2008 plate motion model
# paper
<AMUR_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000190 +dry=-0.000442 +drz=0.000915 +convention=position_vector
<ANTA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000252 +dry=-0.000302 +drz=0.000643 +convention=position_vector
<ARAB_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001202 +dry=-0.000054 +drz=0.001485 +convention=position_vector
<AUST_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001504 +dry=0.001172 +drz=0.001228 +convention=position_vector
<CARB_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000049 +dry=-0.001088 +drz=0.000664 +convention=position_vector
<EURA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000083 +dry=-0.000534 +drz=0.000750 +convention=position_vector
<INDI_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.001232 +dry=0.000303 +drz=0.001540 +convention=position_vector
<NAZC_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000330 +dry=-0.001551 +drz=0.001625 +convention=position_vector
<NOAM_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000035 +dry=-0.000662 +drz=-0.0001 +convention=position_vector
<NUBI_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000095 +dry=-0.000598 +drz=0.000723 +convention=position_vector
<PCFC_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000411 +dry=0.001036 +drz=-0.002166 +convention=position_vector
<SOAM_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000243 +dry=-0.000311 +drz=-0.000154 +convention=position_vector
<SOMA_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=-0.000080 +dry=-0.000745 +drz=0.000897 +convention=position_vector
<SUND_T> +proj=helmert +dx=0.00041 +dy=0.00022 +dz=0.00041 +drx=0.000047 +dry=-0.001 +drz=0.000975 +convention=position_vector
+4 -4
View File
@@ -7,11 +7,11 @@
<ITRF2000> +proj=helmert +x=0.0007 +y=0.0012 +z=-0.0261 +s=0.00212 +dx=0.0001 +dy=0.0001 +dz=-0.0019 +ds=0.00011 +t_epoch=2010.0 +convention=position_vector
<ITRF97> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +d=0.0038 +rz=0.00026 +dx0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF97> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF96> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +t_epoch=2010.0 +convention=position_vector
<ITRF96> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF94> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +t_epoch=2010.0 +convention=position_vector
<ITRF94> +proj=helmert +x=0.0074 +y=-0.0005 +z=-0.0628 +s=0.0038 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF93> +proj=helmert +x=-0.0504 +y=0.0033 +z=-0.0602 +s=0.00429 +rx=-0.00281 +ry=-0.00338 +rz=0.0004 +dx=-0.0028 +dy=-0.0001 +dz=-0.0025 +ds=0.00012 +drx=-0.00011 +dry=-0.00019 +drz=0.00007 +t_epoch=2010.0 +convention=position_vector
@@ -23,7 +23,7 @@
<ITRF89> +proj=helmert +x=0.0304 +y=0.0355 +z=-0.1308 +s=0.00819 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF88> +proj=helmert +x=0.0254 +y=-0.0005 +z=-0.1548 +s=0.01129 +rx=0.0001 +rz= +dx=0.00026 +dy=0.0001 +dx=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
<ITRF88> +proj=helmert +x=0.0254 +y=-0.0005 +z=-0.1548 +s=0.01129 +rx=0.0001 +rz=0.00026 +dx=0.0001 +dy=-0.0005 +dz=-0.0033 +ds=0.00012 +drz=0.00002 +t_epoch=2010.0 +convention=position_vector
# ITRF2014 Plate Motion Model parameters
#
+91
View File
@@ -0,0 +1,91 @@
# ITRF2020 params are in mm/year, PJ_helmert uses m/year
# Generated with generate_itrf2020.py from EPSG database
<ITRF2014> +proj=helmert +x=-0.0014 +y=-0.0009 +z=0.0014 +s=-0.00042 +dy=-0.0001 +dz=0.0002 +t_epoch=2015 +convention=position_vector
<ITRF2008> +proj=helmert +x=0.0002 +y=0.001 +z=0.0033 +s=-0.00029 +dy=-0.0001 +dz=0.0001 +ds=3e-05 +t_epoch=2015 +convention=position_vector
<ITRF2005> +proj=helmert +x=0.0027 +y=0.0001 +z=-0.0014 +s=0.00065 +dx=0.0003 +dy=-0.0001 +dz=0.0001 +ds=3e-05 +t_epoch=2015 +convention=position_vector
<ITRF2000> +proj=helmert +x=-0.0002 +y=0.0008 +z=-0.0342 +s=0.00225 +dx=0.0001 +dz=-0.0017 +ds=0.00011 +t_epoch=2015 +convention=position_vector
<ITRF97> +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
<ITRF96> +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
<ITRF94> +proj=helmert +x=0.0065 +y=-0.0039 +z=-0.0779 +rz=0.00036 +s=0.00398 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
<ITRF93> +proj=helmert +x=-0.0658 +y=0.0019 +z=-0.0713 +rx=-0.00336 +ry=-0.00433 +rz=0.00075 +s=0.00447 +dx=-0.0028 +dy=-0.0002 +dz=-0.0023 +drx=-0.00011 +dry=-0.00019 +drz=7e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
<ITRF92> +proj=helmert +x=0.0145 +y=-0.0019 +z=-0.0859 +rz=0.00036 +s=0.00327 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
<ITRF91> +proj=helmert +x=0.0265 +y=0.0121 +z=-0.0919 +rz=0.00036 +s=0.00467 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
<ITRF90> +proj=helmert +x=0.0245 +y=0.0081 +z=-0.1079 +rz=0.00036 +s=0.00497 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
<ITRF89> +proj=helmert +x=0.0295 +y=0.0321 +z=-0.1459 +rz=0.00036 +s=0.00837 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
<ITRF88> +proj=helmert +x=0.0245 +y=-0.0039 +z=-0.1699 +rx=0.0001 +rz=0.00036 +s=0.01147 +dx=0.0001 +dy=-0.0006 +dz=-0.0031 +drz=2e-05 +ds=0.00012 +t_epoch=2015 +convention=position_vector
# ITRF2020 Plate Motion Model parameters
#
# As described in https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2023GL106373
# (and also in https://itrf.ign.fr/docs/solutions/itrf2020/ITRF2020-PMM.dat, but with
# different units)
<AMUR> +proj=helmert +drx=-0.000131 +dry=-0.000551 +drz=0.000837 +convention=position_vector
<ANTA> +proj=helmert +drx=-0.000269 +dry=-0.000312 +drz=0.000678 +convention=position_vector
<ARAB> +proj=helmert +drx=0.001129 +dry=-0.000146 +drz=0.001438 +convention=position_vector
<AUST> +proj=helmert +drx=0.001487 +dry=0.001175 +drz=0.001223 +convention=position_vector
<CARB> +proj=helmert +drx=0.000207 +dry=-0.001422 +drz=0.000726 +convention=position_vector
<EURA> +proj=helmert +drx=-0.000085 +dry=-0.000519 +drz=0.000753 +convention=position_vector
<INDI> +proj=helmert +drx=0.001137 +dry=0.000013 +drz=0.001444 +convention=position_vector
<NAZC> +proj=helmert +drx=-0.000327 +dry=-0.001561 +drz=0.001605 +convention=position_vector
<NOAM> +proj=helmert +drx=0.000045 +dry=-0.000666 +drz=-0.000098 +convention=position_vector
<NUBI> +proj=helmert +drx=0.000090 +dry=-0.000585 +drz=0.000717 +convention=position_vector
<PCFC> +proj=helmert +drx=-0.000404 +dry=0.001021 +drz=-0.002154 +convention=position_vector
<SOAM> +proj=helmert +drx=-0.000261 +dry=-0.000282 +drz=-0.000157 +convention=position_vector
<SOMA> +proj=helmert +drx=-0.000081 +dry=-0.000719 +drz=0.000864 +convention=position_vector
# Plate names suffixed by _T (for Translation) that includes the translation
# rates +dx=0.00037 +dy=0.00035 +dz=0.00074 given by Table 2 of the ITRF2020 plate motion model
# paper
<AMUR_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000131 +dry=-0.000551 +drz=0.000837 +convention=position_vector
<ANTA_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000269 +dry=-0.000312 +drz=0.000678 +convention=position_vector
<ARAB_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001129 +dry=-0.000146 +drz=0.001438 +convention=position_vector
<AUST_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001487 +dry=0.001175 +drz=0.001223 +convention=position_vector
<CARB_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000207 +dry=-0.001422 +drz=0.000726 +convention=position_vector
<EURA_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000085 +dry=-0.000519 +drz=0.000753 +convention=position_vector
<INDI_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.001137 +dry=0.000013 +drz=0.001444 +convention=position_vector
<NAZC_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000327 +dry=-0.001561 +drz=0.001605 +convention=position_vector
<NOAM_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000045 +dry=-0.000666 +drz=-0.000098 +convention=position_vector
<NUBI_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=0.000090 +dry=-0.000585 +drz=0.000717 +convention=position_vector
<PCFC_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000404 +dry=0.001021 +drz=-0.002154 +convention=position_vector
<SOAM_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000261 +dry=-0.000282 +drz=-0.000157 +convention=position_vector
<SOMA_T> +proj=helmert +dx=0.00037 +dy=0.00035 +dz=0.00074 +drx=-0.000081 +dry=-0.000719 +drz=0.000864 +convention=position_vector
-107
View File
@@ -1,107 +0,0 @@
DATAPATH = $(top_srcdir)/data
pkgdata_DATA = GL27 nad.lst nad27 nad83 world other.extra \
CH null \
ITRF2000 ITRF2008 ITRF2014 proj.db \
projjson.schema.json
SQL_ORDERED_LIST = sql/begin.sql \
sql/proj_db_table_defs.sql \
sql/conversion_triggers.sql \
sql/metadata.sql \
sql/unit_of_measure.sql \
sql/area.sql \
sql/coordinate_system.sql \
sql/axis.sql \
sql/ellipsoid.sql \
sql/prime_meridian.sql \
sql/geodetic_datum.sql \
sql/vertical_datum.sql \
sql/conversion.sql \
sql/geodetic_crs.sql \
sql/projected_crs.sql \
sql/vertical_crs.sql \
sql/compound_crs.sql \
sql/helmert_transformation.sql \
sql/grid_transformation.sql \
sql/grid_transformation_custom.sql \
sql/other_transformation.sql \
sql/concatenated_operation.sql \
sql/concatenated_operation_step.sql \
sql/alias_name.sql \
sql/supersession.sql \
sql/deprecation.sql \
sql/esri.sql \
sql/ignf.sql \
sql/grid_alternatives.sql \
sql/grid_alternatives_generated.sql \
sql/customizations.sql \
sql/commit.sql
EXTRA_DIST = GL27 nad.lst nad27 nad83 \
world other.extra \
CH \
ITRF2000 ITRF2008 ITRF2014 \
projjson.schema.json \
CMakeLists.txt tests/test_nodata.gtx null \
generate_all_sql_in.cmake sql_filelist.cmake \
$(SQL_ORDERED_LIST)
install-data-local:
$(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
@for gridfile in $(DATAPATH)/*.gsb $(DATAPATH)/*.gtx $(DATAPATH)/ntv1_can.dat dummy \
$(DATAPATH)/alaska $(DATAPATH)/conus $(DATAPATH)/hawaii $(DATAPATH)/null \
$(DATAPATH)/prvi $(DATAPATH)/stgeorge $(DATAPATH)/stlrnc $(DATAPATH)/stpaul \
$(DATAPATH)/FL $(DATAPATH)/MD $(DATAPATH)/TN $(DATAPATH)/WI $(DATAPATH)/WO; do \
if test "$$gridfile" != "dummy" -a -f "$$gridfile" ; then \
echo $(INSTALL_DATA) $$gridfile $(DESTDIR)$(pkgdatadir)/`basename $$gridfile`; \
$(INSTALL_DATA) $$gridfile $(DESTDIR)$(pkgdatadir)/`basename $$gridfile`; \
fi; \
done
# head -c1 not handled on Solaris
proj.db: $(DATAPATH)/sql/*.sql
@echo "Make proj.db"
$(RM) proj.db
@export SQL_EXPANDED_LIST=""; \
for x in $(SQL_ORDERED_LIST); do \
export SQL_EXPANDED_LIST="$${SQL_EXPANDED_LIST} $(DATAPATH)/$$x"; \
done; \
if test "x$(PROJ_DB_CACHE_DIR)" != "x" -a -x "$$(command -v md5sum)" -a -f "$(PROJ_DB_CACHE_DIR)/proj.db" -a -f "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5" ; then \
cat $${SQL_EXPANDED_LIST} | md5sum | diff - "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5" > /dev/null \
&& (echo "Reusing cached proj.db"; cp "$(PROJ_DB_CACHE_DIR)/proj.db" proj.db); \
fi; \
if test ! -f proj.db ; then \
cat $${SQL_EXPANDED_LIST} | sqlite3 proj.db; \
fi; \
if [ $$? -ne 0 ] ; then \
echo "Build of proj.db failed"; \
$(RM) proj.db; \
exit 1; \
fi; \
echo "" | head -c1; \
if [ $$? -eq 0 ] ; then \
echo "Running foreign_key_check"; \
if [[ $$(echo "pragma foreign_key_check;" | sqlite3 proj.db | head -c1 | wc -c) -ne 0 ]]; then \
echo "Foreign key check failed"; \
$(RM) proj.db; \
exit 1; \
else \
if test "x$(PROJ_DB_CACHE_DIR)" != "x" -a -x "$$(command -v md5sum)" ; then \
mkdir -p "$(PROJ_DB_CACHE_DIR)"; \
cat $${SQL_EXPANDED_LIST} | md5sum > "$(PROJ_DB_CACHE_DIR)/proj.db.sql.md5"; \
cp proj.db "$(PROJ_DB_CACHE_DIR)"; \
fi \
fi \
fi
# For out-of-tree builds, link all file of the source data dir to the generated data
check-local:
@if [ ! -f GL27 ]; then \
for x in $(DATAPATH)/*; do \
ln -sf $$x .; \
done \
fi
clean-local:
$(RM) proj.db
+1 -16
View File
@@ -4,16 +4,6 @@ File Contents:
README --- This file
epsg --- Translation of EPSG GCS/PCS codes into PROJ via init= mechanism.
epsg-deprecated --- EPSG definitions that have been deprecated. They are
not part of 'epsg' anymore, but may have been delivered
with earlier versions of 'epsg'.
Thus, they might occur e.g. in WMS (Web Mapping Services)
running with old EPSG definitions.
This file is not complete at all - it contains just
definitions that were individually reported.
nad27 --- North American Datum 1927 for "init=" definition of
State Plane Coordinate Systems (SPCS).
@@ -25,9 +15,4 @@ world --- Proj specifications for several international grid systems.
nad.lst --- Reference list of SPCS States and NGS datum identifiers
IGNF --- Translation of French Mapping Agency codes into PROJ via init= mechanism.
install --- Unix shell (sh) script to install proj init files.
Read beginning for usage instructions.
Additional data files are available in https://github.com/OSGeo/proj-datumgrid/
Additional data files are available in https://github.com/OSGeo/PROJ-data
+582
View File
@@ -0,0 +1,582 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Schema for deformation models",
"type": "object",
"properties": {
"file_type": {
"type": "string",
"enum": [
"deformation_model_master_file"
],
"description": "File type. Always \"deformation_model_master_file\""
},
"format_version": {
"type": "string",
"enum": [
"1.0"
]
},
"name": {
"type": "string",
"description": "A brief descriptive name of the deformation model"
},
"version": {
"type": "string",
"description": "A string identifying the version of the deformation model. The format for specifying version will be defined by the agency responsible for the deformation model"
},
"publication_date": {
"$ref": "#/definitions/datetime",
"description": "The date on which this version of the deformation model was published (or possibly the date on which it takes effect?)"
},
"license": {
"type": "string",
"description": "License under which the model is published"
},
"description": {
"type": "string",
"description": "A text description of the model"
},
"authority": {
"type": "object",
"description": "Basic information about the agency responsible for the data set",
"properties": {
"name": {
"type": "string",
"description": "The name of the agency"
},
"url": {
"type": "string",
"description": "The url of the agency website",
"format": "uri"
},
"address": {
"type": "string",
"description": "The postal address of the agency"
},
"email": {
"type": "string",
"description": "An email contact address for the agency",
"format": "email"
}
},
"required": [
"name"
],
"additionalProperties": false
},
"links": {
"type": "array",
"description": "Links to related information",
"items": {
"type": "object",
"properties": {
"href": {
"type": "string",
"description": "The URL holding the information",
"format": "uri"
},
"rel": {
"type": "string",
"description": "The relationship to the dataset. Proposed relationships are:\n- \"about\": a web page for human consumption describing the model\n- \"source\": the authoritative source data from which the deformation model is built.\n- \"metadata\": ISO 19115 XML metadata regarding the deformation model."
},
"type": {
"type": "string",
"description": "MIME type"
},
"title": {
"type": "string",
"description": "Description of the link"
}
},
"required": [
"href"
],
"additionalProperties": false
}
},
"source_crs": {
"$ref": "#/definitions/crs",
"description": "The coordinate reference system to which the deformation model applies"
},
"target_crs": {
"$ref": "#/definitions/crs",
"description": "For a time dependent coordinate transformation the coordinate reference system resulting from applying the deformation"
},
"definition_crs": {
"$ref": "#/definitions/crs",
"description": "The coordinate reference system used to define the component spatial models. This proposal only supports using the same value for the source and definition coordinate reference system."
},
"reference_epoch": {
"$ref": "#/definitions/datetime",
"description": "A nominal reference epoch of the deformation model. This is not necessarily used to calculate the deformation model - each component defines its own time function."
},
"uncertainty_reference_epoch": {
"$ref": "#/definitions/datetime",
"description": "The uncertainties of the deformation model are calculated in terms of this epoch. This is described below in the Time functions section."
},
"horizontal_offset_unit": {
"type": "string",
"enum": [
"metre",
"degree"
]
},
"vertical_offset_unit": {
"type": "string",
"enum": [
"metre"
]
},
"horizontal_uncertainty_type": {
"type": "string",
"enum": [
"circular 95% confidence limit"
]
},
"horizontal_uncertainty_unit": {
"type": "string",
"enum": [
"metre"
]
},
"vertical_uncertainty_type": {
"type": "string",
"enum": [
"95% confidence limit"
]
},
"vertical_uncertainty_unit": {
"type": "string",
"enum": [
"metre"
]
},
"horizontal_offset_method": {
"type": "string",
"description": "Defines how the horizontal offsets are applied to geographic coordinates",
"enum": [
"addition",
"geocentric"
]
},
"extent": {
"$ref": "#/definitions/extent",
"description": "Defines the region within which the deformation model is defined. It cannot be calculated outside this region. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values"
},
"time_extent": {
"type": "object",
"description": "Defines the range of times for which the model is valid, specified by a first and a last value. The deformation model is undefined for dates outside this range.",
"properties": {
"first": {
"$ref": "#/definitions/datetime"
},
"last": {
"$ref": "#/definitions/datetime"
}
},
"required": [
"first",
"last"
],
"additionalProperties": false
},
"components": {
"type": "array",
"items": {
"$ref": "#/definitions/component"
}
}
},
"required": [
"file_type",
"format_version",
"source_crs",
"target_crs",
"definition_crs",
"extent",
"time_extent",
"components"
],
"additionalProperties": false,
"definitions": {
"component": {
"type": "object",
"definition": "A component describes an aspect of the deformation, such as glacial isostatic adjustment, secular deformation, earthquakes, etc.",
"properties": {
"description": {
"type": "string",
"description": "A text description of this component of the model"
},
"extent": {
"$ref": "#/definitions/extent",
"description": "The region within the component is defined. Outside this region the component evaluates to 0. The region is specified by a type and value. This proposal only supports using a bounding box as an array of [west,south,east,north] coordinate values"
},
"displacement_type": {
"type": "string",
"description": "The displacement parameters defined by the model. The \"none\" option allows for a component which defines uncertainty with different grids to those defining displacement",
"enum": [
"none",
"horizontal",
"vertical",
"3d"
]
},
"uncertainty_type": {
"type": "string",
"description": "The uncertainty parameters defined by the model",
"enum": [
"none",
"horizontal",
"vertical",
"3d"
]
},
"horizontal_uncertainty": {
"type": "number",
"description": "The horizontal uncertainty to use if it is not defined explicitly in the spatial model"
},
"vertical_uncertainty": {
"type": "number",
"description": "The vertical uncertainty to use if it is not defined explicitly in the spatial model"
},
"spatial_model": {
"type": "object",
"description": "Defines the spatial model",
"properties": {
"type": {
"type": "string",
"description": "Specifies the type of the spatial model data file. Initially it is proposed that only GeoTIFF is supported",
"enum": [
"GeoTIFF"
]
},
"interpolation_method": {
"type": "string",
"description": "Interpolation method",
"enum": [
"bilinear",
"geocentric_bilinear"
]
},
"filename": {
"type": "string",
"description": "Specifies location of the spatial model GeoTIFF file relative to this JSON file"
},
"md5_checksum": {
"type": "string",
"description": "A hex encoded MD5 checksum of the grid file that can be used to validate that it is the correct version of the file"
}
},
"required": [
"type",
"interpolation_method",
"filename"
],
"additionalProperties": false
},
"time_function": {
"$ref": "#/definitions/time_function"
}
},
"required": [
"description",
"extent",
"displacement_type",
"spatial_model",
"time_function"
],
"additionalProperties": false
},
"crs": {
"type": "string",
"pattern": "^[a-zA-Z]+:[a-zA-Z0-9]+$"
},
"datetime": {
"type": "string",
"format": "date-time",
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
},
"extent": {
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"bbox"
]
},
"parameters": {
"type": "object",
"properties": {
"bbox": {
"type": "array",
"minItems": 4,
"maxItems": 4,
"items": {
"type": "number"
}
}
}
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
},
"time_function": {
"description": "Function describing a multiplicative factor to apply to the spatial_model depending on the time",
"oneOf": [
{
"$ref": "#/definitions/time_function_constant"
},
{
"$ref": "#/definitions/time_function_velocity"
},
{
"$ref": "#/definitions/time_function_step"
},
{
"$ref": "#/definitions/time_function_reverse_step"
},
{
"$ref": "#/definitions/time_function_piecewise"
},
{
"$ref": "#/definitions/time_function_exponential"
}
]
},
"time_function_constant": {
"description": "The valuation of this function is 1 at any epoch",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"constant"
]
},
"parameters": {
"type": "object",
"properties": {
},
"additionalProperties": false
}
},
"required": [
"type"
],
"additionalProperties": false
},
"time_function_velocity": {
"description": "The valuation of this function is 0 at reference_epoch, and proportional to the time difference to it at other times",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"velocity"
]
},
"parameters": {
"type": "object",
"properties": {
"reference_epoch": {
"$ref": "#/definitions/datetime"
}
},
"required": [
"reference_epoch"
],
"additionalProperties": false
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
},
"time_function_step": {
"description": "The valuation of this function is 0 before step_epoch, and 1 starting from it",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"step"
]
},
"parameters": {
"type": "object",
"properties": {
"step_epoch": {
"$ref": "#/definitions/datetime"
}
},
"required": [
"step_epoch"
],
"additionalProperties": false
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
},
"time_function_reverse_step": {
"description": "The valuation of this function is 1 before step_epoch, and 0 starting from it",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"reverse_step"
]
},
"parameters": {
"type": "object",
"properties": {
"step_epoch": {
"$ref": "#/definitions/datetime"
}
},
"required": [
"step_epoch"
],
"additionalProperties": false
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
},
"time_function_piecewise": {
"description": "Piecewise time function",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"piecewise"
]
},
"parameters": {
"type": "object",
"properties": {
"before_first": {
"type": "string",
"description": "Defines the behaviour of the function before the first defined epoch",
"enum": [
"zero",
"constant",
"linear"
]
},
"after_last": {
"type": "string",
"description": "Defines the behaviour of the function after the last defined epoch",
"enum": [
"zero",
"constant",
"linear"
]
},
"model": {
"type": "array",
"description": "A sorted array data points each defined by two elements, \"epoch\" defines the date/time of the data point, and \"scale_factor\" is the corresponding function value. The array is sorted in order of increasing epoch. Note: where the time function includes a step it is represented by two consecutive data points with the same epoch. The first defines the scale factor that applies before the epoch and the second the scale factor that applies after the epoch",
"items": {
"type": "object",
"properties": {
"epoch": {
"$ref": "#/definitions/datetime"
},
"scale_factor": {
"type": "number"
}
},
"required": [
"epoch",
"scale_factor"
],
"additionalProperties": false
},
"minItems": 2
}
},
"required": [
"before_first",
"after_last",
"model"
],
"additionalProperties": false
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
},
"time_function_exponential": {
"description": "The valuation of this function is an exponential function with a time-based relaxation constant",
"type": "object",
"properties": {
"type": {
"type": "string",
"enum": [
"exponential"
]
},
"parameters": {
"type": "object",
"properties": {
"reference_epoch": {
"$ref": "#/definitions/datetime",
"description": "The date/time at which the exponential decay starts"
},
"end_epoch": {
"$ref": "#/definitions/datetime",
"description": "The date/time at which the exponential decay ends (optional)"
},
"relaxation_constant": {
"type": "number",
"description": "Relaxation constant in years"
},
"before_scale_factor": {
"type": "number",
"description": "The scale factor that applies before the reference epoch"
},
"initial_scale_factor": {
"type": "number",
"description": "The initial scale factor"
},
"final_scale_factor": {
"type": "number",
"description": "The scale factor the exponential function approaches"
}
},
"required": [
"reference_epoch",
"relaxation_constant",
"before_scale_factor",
"initial_scale_factor",
"final_scale_factor"
],
"additionalProperties": false
}
},
"required": [
"type",
"parameters"
],
"additionalProperties": false
}
}
}
-2
View File
@@ -1,2 +0,0 @@
# DHDN / Germany zone 3
<31493> +proj=tmerc +lat_0=0.000000000 +lon_0=9.000000000 +k=1.000000 +x_0=3500000.000 +y_0=0.000 +ellps=bessel +units=m no_defs <>
-10
View File
@@ -1,10 +0,0 @@
function(cat IN_FILE OUT_FILE)
file(READ ${IN_FILE} CONTENTS)
file(APPEND ${OUT_FILE} "${CONTENTS}")
endfunction()
file(WRITE "${ALL_SQL_IN}" "")
include(sql_filelist.cmake)
foreach(SQL_FILE ${SQL_FILES})
cat(${SQL_FILE} "${ALL_SQL_IN}")
endforeach()
+82
View File
@@ -0,0 +1,82 @@
function(cat IN_FILE OUT_FILE)
file(READ ${IN_FILE} CONTENTS)
file(APPEND ${OUT_FILE} "${CONTENTS}")
endfunction()
# Generates a all.sql.in file from all the individual .sql files, taking
# into account if extra validation checks must be done before inserting data
# records
function(generate_all_sql_in ALL_SQL_IN_FILENAME EXTRA_VALIDATION OUT_MD5)
set(PROJ_DB_EXTRA_VALIDATION ${EXTRA_VALIDATION})
file(WRITE "${ALL_SQL_IN_FILENAME}" "")
include(sql_filelist.cmake)
foreach(SQL_FILE ${SQL_FILES})
cat(${SQL_FILE} "${ALL_SQL_IN_FILENAME}")
endforeach()
# Compute the MD5 before any records in the metadata table, to avoid
# refreshing the MD5 if we bump PROJ_VERSION or PROJ_DATA.VERSION
file(READ ${ALL_SQL_IN_FILENAME} CONTENTS)
string(REGEX REPLACE "INSERT INTO \\\"metadata\\\"[^\n]*\n?" "" CONTENTS_WITHOUT_METADATA "${CONTENTS}")
string(MD5 OUT_MD5_LOCAL "${CONTENTS_WITHOUT_METADATA}")
set(${OUT_MD5} "${OUT_MD5_LOCAL}" PARENT_SCOPE)
# Do ${PROJ_VERSION} substitution
string(REPLACE "\${PROJ_VERSION}" "${PROJ_VERSION}" CONTENTS_MOD "${CONTENTS}")
file(WRITE "${ALL_SQL_IN_FILENAME}" "${CONTENTS_MOD}")
endfunction()
generate_all_sql_in("${ALL_SQL_IN}" OFF PROJ_DB_SQL_MD5)
file(WRITE "${DATA_BINARY_DIR}/PROJ_DB_SQL_MD5.h" "const char* PROJ_DB_SQL_MD5=\"${PROJ_DB_SQL_MD5}\";\n")
if (NOT "${PROJ_DB_SQL_MD5}" STREQUAL "${PROJ_DB_SQL_EXPECTED_MD5}")
message(WARNING "all.sql.in content has changed. Running extra validation checks when building proj.db...")
set(ALL_SQL_IN_EXTRA_VALIDATION "${ALL_SQL_IN}.extra_validation")
generate_all_sql_in("${ALL_SQL_IN_EXTRA_VALIDATION}" ON PROJ_DB_SQL_EXTRA_VALIDATION_MD5)
set(PROJ_DB_EXTRA_VALIDATION_FILENAME "${PROJ_DB}.extra_validation")
file(REMOVE "${PROJ_DB_EXTRA_VALIDATION_FILENAME}")
execute_process(COMMAND "${EXE_SQLITE3}" "${PROJ_DB_EXTRA_VALIDATION_FILENAME}"
INPUT_FILE "${ALL_SQL_IN_EXTRA_VALIDATION}"
RESULT_VARIABLE STATUS)
if(STATUS AND NOT STATUS EQUAL 0)
message(FATAL_ERROR "Build of proj.db from ${ALL_SQL_IN_EXTRA_VALIDATION} failed")
else()
message(FATAL_ERROR "Update 'set(PROJ_DB_SQL_EXPECTED_MD5 ...)' line in data/CMakeLists.txt with ${PROJ_DB_SQL_MD5} value")
endif()
endif()
set(generate_proj_db ON)
if(IS_DIRECTORY ${PROJ_DB_CACHE_DIR})
set(USE_PROJ_DB_CACHE_DIR TRUE)
set(PROJ_DB_SQL_MD5_FILE "${PROJ_DB_CACHE_DIR}/proj.db.sql.md5")
if(EXISTS "${PROJ_DB_SQL_MD5_FILE}")
file(STRINGS "${PROJ_DB_SQL_MD5_FILE}" CACHED_PROJ_DB_SQL_MD5 LIMIT_COUNT 1)
endif()
file(MD5 "${ALL_SQL_IN}" PROJ_DB_SQL_MD5)
set(CACHED_PROJ_DB "${PROJ_DB_CACHE_DIR}/proj.db")
if("${PROJ_DB_SQL_MD5}" STREQUAL "${CACHED_PROJ_DB_SQL_MD5}" AND EXISTS "${CACHED_PROJ_DB}")
message(STATUS "Reusing cached proj.db from ${PROJ_DB_CACHE_DIR}")
get_filename_component(PROJ_DB_DIR "${PROJ_DB}" DIRECTORY)
file(COPY "${CACHED_PROJ_DB}" DESTINATION "${PROJ_DB_DIR}")
file(TOUCH "${PROJ_DB}")
set(generate_proj_db OFF)
endif()
endif()
if (generate_proj_db)
execute_process(COMMAND "${EXE_SQLITE3}" "${PROJ_DB}"
INPUT_FILE "${ALL_SQL_IN}"
RESULT_VARIABLE STATUS)
if(STATUS AND NOT STATUS EQUAL 0)
message(FATAL_ERROR "Build of proj.db failed")
elseif(USE_PROJ_DB_CACHE_DIR)
message(STATUS "Saving cache: ${CACHED_PROJ_DB}")
file(COPY "${PROJ_DB}" DESTINATION "${PROJ_DB_CACHE_DIR}")
file(WRITE "${PROJ_DB_SQL_MD5_FILE}" "${PROJ_DB_SQL_MD5}\n")
endif()
endif()
BIN
View File
Binary file not shown.
+59
View File
@@ -0,0 +1,59 @@
[general]
; Lines starting by ; are commented lines.
;
; Network capabilities disabled by default.
; Can be overridden with the PROJ_NETWORK=ON environment variable.
; Cf https://proj.org/en/latest/usage/network.html
; Valid values = on, off
network = off
; Endpoint of the Content Delivery Network where remote resources might
; be accessed. Only used if network access is allowed (cf above "network"
; option)
; Can be overridden with the PROJ_NETWORK_ENDPOINT environment variable.
cdn_endpoint = https://cdn.proj.org
; Whether to enable a cache of remote resources that are accessed, on the
; local file system
; Valid values = on, off
cache_enabled = on
; Size of the cache in megabytes
cache_size_MB = 300
; Time-to-live delay in seconds before already accessed remote resources are
; accessed again to check if they have been updated.
cache_ttl_sec = 86400
; Can be set to on so that by default the lack of a known resource files needed
; for the best transformation PROJ would normally use causes an error, or off
; to accept missing resource files without errors or warnings.
; This default value itself is overridden by the PROJ_ONLY_BEST_DEFAULT environment
; variable if set, and then by the ONLY_BEST setting that can be
; passed to the proj_create_crs_to_crs() method, or with the --only-best
; option of the cs2cs program.
; (added in PROJ 9.2)
; Valid values = on, off
only_best_default = off
; Filename of the Certificate Authority (CA) bundle.
; Can be overridden with the PROJ_CURL_CA_BUNDLE / CURL_CA_BUNDLE environment variable.
; (added in PROJ 9.0)
; ca_bundle_path = /path/to/cabundle.pem
; When this is set to on, the operating systems native CA store will be used for certificate verification
; If you set this option to on and also set ca_bundle_path then during verification those certificates are
; searched in addition to the native CA store.
; (added in PROJ 9.6)
; Valid values = on, off
;native_ca = on
; Transverse Mercator (and UTM) default algorithm: auto, evenden_snyder or poder_engsager
; * evenden_snyder is the fastest, but less accurate far from central meridian
; * poder_engsager is slower, but more accurate far from central meridian
; * default will auto-select between the two above depending on the coordinate
; to transform and will use evenden_snyder if the error in doing so is below
; 0.1 mm (for an ellipsoid of the size of Earth)
tmerc_default_algo = poder_engsager
-34
View File
@@ -1,34 +0,0 @@
3d18'0.31206816" 43d26'52.07156484" 0.0 3d18'0.91471" 43d26'52.077" 0.000
600000.0000 2600545.4523 0.0000 652760.737 7033791.245 0.000
135638.3592 2418760.4094 0.0000 187194.062 6855928.882 0.000
998137.3947 2413822.2844 0.0000 1049052.257 6843776.562 0.000
600000.0000 2200000.0000 0.0000 649398.871 6633524.192 0.000
311552.5340 1906457.4840 0.0000 358799.172 6342652.486 0.000
960488.4138 1910172.8812 0.0000 1007068.686 6340907.237 0.000
600000.0000 1699510.8340 0.0000 645204.279 6133556.746 0.000
1203792.5981 626873.17210 0.0000 1247610.438 6055822.838 0.000
600000.0000 2600545.4523 0.0000 179040.148 5610495.275 0.000
135638.3592 2418760.4094 0.0000 -303729.363 5410118.356 0.000
998137.3947 2413822.2844 0.0000 592842.792 5410120.554 0.000
600000.0000 2200000.0000 0.0000 179041.670 5209746.080 0.000
311552.5340 1906457.4840 0.0000 -96825.465 4909184.136 0.000
960488.4138 1910172.8812 0.0000 523880.019 4909191.141 0.000
600000.0000 1699510.8340 0.0000 179047.633 4708817.007 0.000
1203792.5981 626873.17210 0.0000 658287.395 3623739.237 0.000
2d20'11.4239243" 50d23'59.7718445" 0.0 179040.151 5610495.281 0.000
-3d57'49.4051448" 48d35'59.7121716" 0.0 -303729.365 5410118.352 0.000
7d44'12.1439796" 48d35'59.7832558" 0.0 592842.794 5410120.550 0.000
2d20'11.4951975" 46d47'59.8029841" 0.0 179041.668 5209746.077 0.000
-1d15'48.9240599" 44d05'59.8251878" 0.0 -96825.467 4909184.138 0.000
6d50'12.2276489" 44d06'00.0517019" 0.0 523880.022 4909191.143 0.000
2d20'11.7754730" 42d18'00.0824436" 0.0 179047.634 4708817.010 0.000
9d32'12.6680218" 41d24'00.3542556" 0.0 730783.054 4608637.873 0.000
2d20'11.4239243" 50d23'59.7718445" 0.0 260098.730 6140682.441 0.000
-3d57'49.4051448" 48d35'59.7121716" 0.0 -441239.699 5880610.004 0.000
7d44'12.1439796" 48d35'59.7832558" 0.0 861246.246 5880612.827 0.000
2d20'11.4951975" 46d47'59.8029841" 0.0 260100.934 5625762.156 0.000
-1d15'48.9240599" 44d05'59.8251878" 0.0 -140662.197 5252490.165 0.000
6d50'12.2276489" 44d06'00.0517019" 0.0 761061.291 5252498.745 0.000
2d20'11.7754730" 42d18'00.0824436" 0.0 260109.601 5009175.714 0.000
9d32'12.6680218" 41d24'00.3542556" 0.0 1061637.534 4889066.592 0.000
3356123.5400 1303218.3090 5247430.6050 3353421.023 1304074.545 5248934.985
+215 -23
View File
@@ -1,8 +1,8 @@
{
"$id": "https://proj.org/schemas/v0.2/projjson.schema.json",
"$id": "https://proj.org/schemas/v0.7/projjson.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "Schema for PROJJSON",
"$comment": "This file exists both in data/ and in schemas/vXXX/. Keep both in sync. And if changing the value of $id, change PROJJSON_CURRENT_VERSION accordingly in io.cpp",
"description": "Schema for PROJJSON (v0.7)",
"$comment": "This document is copyright Even Rouault and PROJ contributors, 2019-2023, and subject to the MIT license. This file exists both in data/ and in schemas/vXXX/. Keep both in sync. And if changing the value of $id, change PROJJSON_DEFAULT_VERSION accordingly in io.cpp",
"oneOf": [
{ "$ref": "#/definitions/crs" },
@@ -11,7 +11,8 @@
{ "$ref": "#/definitions/ellipsoid" },
{ "$ref": "#/definitions/prime_meridian" },
{ "$ref": "#/definitions/single_operation" },
{ "$ref": "#/definitions/concatenated_operation" }
{ "$ref": "#/definitions/concatenated_operation" },
{ "$ref": "#/definitions/coordinate_metadata" }
],
"definitions": {
@@ -22,6 +23,10 @@
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["AbridgedTransformation"] },
"name": { "type": "string" },
"source_crs": {
"$ref": "#/definitions/crs",
"$comment": "Only present when the source_crs of the bound_crs does not match the source_crs of the AbridgedTransformation. No equivalent in WKT"
},
"method": { "$ref": "#/definitions/method" },
"parameters": {
"type": "array",
@@ -85,7 +90,11 @@
"future",
"past",
"unspecified" ] },
"meridian": { "$ref": "#/definitions/meridian" },
"unit": { "$ref": "#/definitions/unit" },
"minimum_value": { "type": "number" },
"maximum_value": { "type": "number" },
"range_meaning": { "type": "string", "enum": [ "exact", "wraparound"] },
"id": { "$ref": "#/definitions/id" },
"ids": { "$ref": "#/definitions/ids" }
},
@@ -111,12 +120,22 @@
"bound_crs": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
"properties": {
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["BoundCRS"] },
"name": { "type": "string" },
"source_crs": { "$ref": "#/definitions/crs" },
"target_crs": { "$ref": "#/definitions/crs" },
"transformation": { "$ref": "#/definitions/abridged_transformation" }
"transformation": { "$ref": "#/definitions/abridged_transformation" },
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
},
"required" : [ "source_crs", "target_crs", "transformation" ],
"additionalProperties": false
@@ -136,6 +155,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -156,10 +177,13 @@
"type": "array",
"items": { "$ref": "#/definitions/single_operation" }
},
"accuracy": { "type": "string" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -189,6 +213,18 @@
"additionalProperties": false
},
"coordinate_metadata": {
"type": "object",
"properties": {
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["CoordinateMetadata"] },
"crs": { "$ref": "#/definitions/crs" },
"coordinateEpoch": { "type": "number" }
},
"required" : [ "crs" ],
"additionalProperties": false
},
"coordinate_system": {
"type": "object",
"properties": {
@@ -202,6 +238,7 @@
"vertical",
"ordinal",
"parametric",
"affine",
"TemporalDateTime",
"TemporalCount",
"TemporalMeasure"] },
@@ -284,6 +321,17 @@
"additionalProperties": false
},
"deformation_model": {
"description": "Association to a PointMotionOperation",
"type": "object",
"properties": {
"name": { "type": "string" },
"id": { "$ref": "#/definitions/id" }
},
"required" : [ "name" ],
"additionalProperties": false
},
"derived_engineering_crs": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
@@ -298,6 +346,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -321,6 +371,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -343,6 +395,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -365,6 +419,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -387,6 +443,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -409,6 +467,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -419,19 +479,21 @@
"dynamic_geodetic_reference_frame": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/geodetic_reference_frame" }],
"allOf": [{ "$ref": "#/definitions/object_usage" }],
"properties": {
"type": { "type": "string", "enum": ["DynamicGeodeticReferenceFrame"] },
"name": {},
"anchor": {},
"anchor_epoch": {},
"ellipsoid": {},
"prime_meridian": {},
"frame_reference_epoch": { "type": "number" },
"deformation_model": { "type": "string" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -442,17 +504,19 @@
"dynamic_vertical_reference_frame": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/vertical_reference_frame" }],
"allOf": [{ "$ref": "#/definitions/object_usage" }],
"properties": {
"type": { "type": "string", "enum": ["DynamicVerticalReferenceFrame"] },
"name": {},
"anchor": {},
"anchor_epoch": {},
"frame_reference_epoch": { "type": "number" },
"deformation_model": { "type": "string" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -520,6 +584,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -539,6 +605,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -560,10 +628,16 @@
},
"datum_ensemble": { "$ref": "#/definitions/datum_ensemble" },
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
"deformation_models": {
"type": "array",
"items": { "$ref": "#/definitions/deformation_model" }
},
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -584,12 +658,15 @@
"type": { "type": "string", "enum": ["GeodeticReferenceFrame"] },
"name": { "type": "string" },
"anchor": { "type": "string" },
"anchor_epoch": { "type": "number" },
"ellipsoid": { "$ref": "#/definitions/ellipsoid" },
"prime_meridian": { "$ref": "#/definitions/prime_meridian" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -598,13 +675,29 @@
"additionalProperties": false
},
"geoid_model": {
"type": "object",
"properties": {
"name": { "type": "string" },
"interpolation_crs": { "$ref": "#/definitions/crs" },
"id": { "$ref": "#/definitions/id" }
},
"required" : [ "name" ],
"additionalProperties": false
},
"id": {
"type": "object",
"properties": {
"authority": { "type": "string" },
"code": {
"oneOf": [ { "type": "string" }, { "type": "integer" } ]
}
},
"version": {
"oneOf": [ { "type": "string" }, { "type": "number" } ]
},
"authority_citation": { "type": "string" },
"uri": { "type": "string" }
},
"required" : [ "authority", "code" ],
"additionalProperties": false
@@ -655,6 +748,22 @@
]
},
"meridian": {
"type": "object",
"properties": {
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["Meridian"] },
"longitude": { "$ref": "#/definitions/value_in_degree_or_value_and_unit" },
"id": { "$ref": "#/definitions/id" },
"ids": { "$ref": "#/definitions/ids" }
},
"required" : [ "longitude" ],
"allOf": [
{ "$ref": "#/definitions/id_ids_mutually_exclusive" }
],
"additionalProperties": false
},
"object_usage": {
"anyOf": [
{
@@ -664,6 +773,8 @@
"scope": { "type": "string" },
"area": { "type": "string" },
"bbox": { "$ref": "#/definitions/bbox" },
"vertical_extent": { "$ref": "#/definitions/vertical_extent" },
"temporal_extent": { "$ref": "#/definitions/temporal_extent" },
"remarks": { "type": "string" },
"id": { "$ref": "#/definitions/id" },
"ids": { "$ref": "#/definitions/ids" }
@@ -723,6 +834,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -742,6 +855,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -750,13 +865,41 @@
"additionalProperties": false
},
"point_motion_operation": {
"$comment": "Not implemented in PROJ (at least as of PROJ 9.1)",
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
"properties": {
"type": { "type": "string", "enum": ["PointMotionOperation"] },
"name": { "type": "string" },
"source_crs": { "$ref": "#/definitions/crs" },
"method": { "$ref": "#/definitions/method" },
"parameters": {
"type": "array",
"items": { "$ref": "#/definitions/parameter_value" }
},
"accuracy": { "type": "string" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
},
"required" : [ "name", "source_crs", "method", "parameters" ],
"additionalProperties": false
},
"prime_meridian": {
"type": "object",
"properties": {
"$schema" : { "type": "string" },
"type": { "type": "string", "enum": ["PrimeMeridian"] },
"name": { "type": "string" },
"longitude": { "$ref": "#/definitions/value_and_unit" },
"longitude": { "$ref": "#/definitions/value_in_degree_or_value_and_unit" },
"id": { "$ref": "#/definitions/id" },
"ids": { "$ref": "#/definitions/ids" }
},
@@ -770,7 +913,8 @@
"single_operation": {
"oneOf": [
{ "$ref": "#/definitions/conversion" },
{ "$ref": "#/definitions/transformation" }
{ "$ref": "#/definitions/transformation" },
{ "$ref": "#/definitions/point_motion_operation" }
]
},
@@ -788,6 +932,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -808,6 +954,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -828,6 +976,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -836,6 +986,16 @@
"additionalProperties": false
},
"temporal_extent": {
"type": "object",
"properties": {
"start": { "type": "string" },
"end": { "type": "string" }
},
"required" : [ "start", "end" ],
"additionalProperties": false
},
"transformation": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
@@ -855,6 +1015,8 @@
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -896,7 +1058,9 @@
"properties": {
"scope": { "type": "string" },
"area": { "type": "string" },
"bbox": { "$ref": "#/definitions/bbox" }
"bbox": { "$ref": "#/definitions/bbox" },
"vertical_extent": { "$ref": "#/definitions/vertical_extent" },
"temporal_extent": { "$ref": "#/definitions/temporal_extent" }
},
"additionalProperties": false
}
@@ -912,6 +1076,13 @@
"additionalProperties": false
},
"value_in_degree_or_value_and_unit": {
"oneOf": [
{ "type": "number" },
{ "$ref": "#/definitions/value_and_unit" }
]
},
"value_in_metre_or_value_and_unit": {
"oneOf": [
{ "type": "number" },
@@ -932,20 +1103,21 @@
},
"datum_ensemble": { "$ref": "#/definitions/datum_ensemble" },
"coordinate_system": { "$ref": "#/definitions/coordinate_system" },
"geoid_model": {
"type": "object",
"properties": {
"name": { "type": "string" },
"interpolation_crs": { "$ref": "#/definitions/crs" },
"id": { "$ref": "#/definitions/id" }
},
"required" : [ "name" ],
"additionalProperties": false
"geoid_model": { "$ref": "#/definitions/geoid_model" },
"geoid_models": {
"type": "array",
"items": { "$ref": "#/definitions/geoid_model" }
},
"deformation_models": {
"type": "array",
"items": { "$ref": "#/definitions/deformation_model" }
},
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
@@ -954,11 +1126,28 @@
"description": "One and only one of datum and datum_ensemble must be provided",
"allOf": [
{ "$ref": "#/definitions/object_usage" },
{ "$ref": "#/definitions/one_and_only_one_of_datum_or_datum_ensemble" }
{ "$ref": "#/definitions/one_and_only_one_of_datum_or_datum_ensemble" },
{
"not": {
"type": "object",
"required": [ "geoid_model", "geoid_models" ]
}
}
],
"additionalProperties": false
},
"vertical_extent": {
"type": "object",
"properties": {
"minimum": { "type": "number" },
"maximum": { "type": "number" },
"unit": { "$ref": "#/definitions/unit" }
},
"required" : [ "minimum", "maximum" ],
"additionalProperties": false
},
"vertical_reference_frame": {
"type": "object",
"allOf": [{ "$ref": "#/definitions/object_usage" }],
@@ -966,10 +1155,13 @@
"type": { "type": "string", "enum": ["VerticalReferenceFrame"] },
"name": { "type": "string" },
"anchor": { "type": "string" },
"anchor_epoch": { "type": "number" },
"$schema" : {},
"scope": {},
"area": {},
"bbox": {},
"vertical_extent": {},
"temporal_extent": {},
"usages": {},
"remarks": {},
"id": {}, "ids": {}
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

+57
View File
@@ -0,0 +1,57 @@
# Directory data/sql
## Simplified UML diagram of database classes
- [diagram.xmi](diagram.xmi): to be opened with Umbrello
- CRS related tables: ![CRS related tables](CRS.png)
- Transformation related tables: ![Transformation related tables](Transformations.png)
## Hand generated files
- [proj_db_table_defs.sql](proj_db_table_defs.sql): Database structure: CREATE TABLE / CREATE VIEW / CREATE TRIGGER.
- [metadata.sql](metadata.sql): key/value content of the metadata table.
- [begin.sql](begin.sql): Technical prologue for all concatenated files.
- [commit.sql](commit.sql): Epilogue for all concatenated files. Include consistency checks.
- [customizations_early.sql](customizations_early.sql): Customizations to be applied before EPSG generated tables.
- [customizations.sql](customizations.sql): Customizations to be applied after all geodetic registries.
- [grid_alternatives.sql](grid_alternatives.sql): Link official EPSG grid names to PROJ ones.
- [grid_transformation_custom.sql](grid_transformation_custom.sql): PROJ specific entries in grid_transformation table.
- [other_transformation_custom.sql](other_transformation_custom.sql): PROJ specific entries in other_transformation table.
## Files generated from EPSG dataset by [build_db.py](https://github.com/OSGeo/PROJ/blob/master/scripts/build_db.py)
- [alias_name.sql](alias_name.sql)
- [axis.sql](axis.sql)
- [compound_crs.sql](compound_crs.sql)
- [concatenated_operation.sql](concatenated_operation.sql)
- [concatenated_operation_step.sql](concatenated_operation_step.sql)
- [conversion.sql](conversion.sql)
- [conversion_triggers.sql](conversion_triggers.sql)
- [coordinate_system.sql](coordinate_system.sql)
- [deprecation.sql](deprecation.sql)
- [ellipsoid.sql](ellipsoid.sql)
- [extent.sql](extent.sql)
- [geodetic_crs.sql](geodetic_crs.sql)
- [geodetic_datum_ensemble_member.sql](geodetic_datum_ensemble_member.sql)
- [geodetic_datum.sql](geodetic_datum.sql)
- [grid_alternatives_generated_noaa.sql](grid_alternatives_generated_noaa.sql)
- [grid_transformation.sql](grid_transformation.sql)
- [helmert_transformation.sql](helmert_transformation.sql)
- [other_transformation.sql](other_transformation.sql)
- [prime_meridian.sql](prime_meridian.sql)
- [projected_crs.sql](projected_crs.sql)
- [scope.sql](scope.sql)
- [supersession.sql](supersession.sql)
- [unit_of_measure.sql](unit_of_measure.sql)
- [vertical_crs.sql](vertical_crs.sql)
- [vertical_datum_ensemble_member.sql](vertical_datum_ensemble_member.sql)
- [vertical_datum.sql](vertical_datum.sql)
## Other registries
- [esri.sql](esri.sql): ESRI registry. Generated by [build_db_from_esri.py](https://github.com/OSGeo/PROJ/blob/master/scripts/build_db_from_esri.py)
- [ignf.sql](ignf.sql): IGN France registry. Generated by [build_db_create_ignf_from_xml.py](https://github.com/OSGeo/PROJ/blob/master/scripts/build_db_create_ignf_from_xml.py)
- [iau.sql](iau.sql): IAU 2015 registry. Generated by [build_db_from_iau.py](https://github.com/OSGeo/PROJ/blob/master/scripts/build_db_from_iau.py)
- [versioned_auth_name_mapping.sql](versioned_auth_name_mapping.sql): used for the IAU:2015 / IAU alias
- [nkg.sql](nkg.sql): Nordic Geodetic Commission registry. Hand-written
- [nkg_post_customizations.sql](nkg_post_customizations.sql): Registration of NKG in authority_to_authority_preference table
Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

+7806 -18
View File
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
+3
View File
@@ -0,0 +1,3 @@
ANALYZE;
VACUUM;
-3541
View File
File diff suppressed because it is too large. Load diff
+62 -51
View File
@@ -1,7 +1,7 @@
--- This file has been generated by scripts/build_db.py. DO NOT EDIT !
INSERT INTO "axis" VALUES('EPSG','1039','Easting','M','east','EPSG','1024',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1040','Northing','P','north','EPSG','1024',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32773','Easting','M','east','EPSG','1024',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32774','Northing','P','north','EPSG','1024',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1062','Easting','X','North along 130°W','EPSG','1025',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1063','Northing','Y','North along 140°E','EPSG','1025',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1065','Easting','E','South along 90°E','EPSG','1026',1,'EPSG','9001');
@@ -12,15 +12,14 @@ INSERT INTO "axis" VALUES('EPSG','1073','Easting','E','east','EPSG','1028',1,'EP
INSERT INTO "axis" VALUES('EPSG','1074','Northing','N','north','EPSG','1028',2,'EPSG','9037');
INSERT INTO "axis" VALUES('EPSG','1078','Northing','N','north','EPSG','1029',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1079','Easting','E','east','EPSG','1029',2,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1082','Gravity-related height','H','up','EPSG','1030',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1101','Northing','Y','north','EPSG','1031',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1102','Westing','X','west','EPSG','1031',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1110','Plant East','x','east','EPSG','1032',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1111','Plant North','y','north','EPSG','1032',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1112','Gravity-related height','z','up','EPSG','1032',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1428','Bin grid I','I','J-axis plus 90°','EPSG','1033',1,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1428','Bin grid I','I','J-axis plus 90 degrees','EPSG','1033',1,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1429','Bin grid J','J','See associated operation','EPSG','1033',2,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1431','Bin grid I','I','J-axis minus 90°','EPSG','1034',1,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1431','Bin grid I','I','J-axis minus 90 degrees','EPSG','1034',1,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1432','Bin grid J','J','See associated operation','EPSG','1034',2,'EPSG','1024');
INSERT INTO "axis" VALUES('EPSG','1466','Easting','X','South along 180°E','EPSG','1035',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1467','Northing','Y','South along 90°W','EPSG','1035',2,'EPSG','9001');
@@ -32,27 +31,31 @@ INSERT INTO "axis" VALUES('EPSG','1481','Easting','X','South along 165°W','EPSG
INSERT INTO "axis" VALUES('EPSG','1482','Northing','Y','South along 75°W','EPSG','1038',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1486','Easting','E','east','EPSG','1039',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1487','Northing','N','north','EPSG','1039',2,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1024','Forward','x','Ahead','EPSG','1040',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1025','Starboard','y','Starboard','EPSG','1040',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1026','Platform Up','z','Upward','EPSG','1040',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1030','Forward','x','Ahead','EPSG','1041',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1031','Starboard','y','Starboard','EPSG','1041',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1032','Platform Down','z','Downward','EPSG','1041',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1036','Starboard','x','Starboard','EPSG','1042',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1037','Forward','y','Ahead','EPSG','1042',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1038','Platform Up','z','Upward','EPSG','1042',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1516','Depth','D','down','EPSG','1043',1,'EPSG','9003');
INSERT INTO "axis" VALUES('EPSG','32855','Forward','x','forward','EPSG','1040',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32856','Starboard','y','starboard','EPSG','1040',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32857','Platform Up','z','up','EPSG','1040',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32858','Forward','x','forward','EPSG','1041',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32859','Starboard','y','starboard','EPSG','1041',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32860','Platform Down','z','down','EPSG','1041',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32861','Starboard','x','starboard','EPSG','1042',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32862','Forward','y','forward','EPSG','1042',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32863','Platform Up','z','up','EPSG','1042',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1525','Northing','N','North along 180°E','EPSG','1044',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1526','Easting','E','North along 90°W','EPSG','1044',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1044','Starboard','x','Starboard','EPSG','1045',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1045','Forward','y','Ahead','EPSG','1045',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1046','Platform Down','z','Downward','EPSG','1045',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32864','Starboard','x','starboard','EPSG','1045',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32865','Forward','y','forward','EPSG','1045',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32866','Platform Down','z','down','EPSG','1045',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32928','Northing','X','north','EPSG','1046',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32929','Easting','Y','east','EPSG','1046',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32930','Ellipsoidal height','h','up','EPSG','1046',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1042','Local northing','n','north','EPSG','1047',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1043','Local easting','e','east','EPSG','1047',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1049','Local northing','n','north','EPSG','1048',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1050','Local easting','e','east','EPSG','1048',2,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1051','Local depth','d','down','EPSG','1049',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1053','Local depth','d','down','EPSG','1050',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','32933','Northing','N','north','EPSG','1053',1,'EPSG','9003');
INSERT INTO "axis" VALUES('EPSG','32934','Easting','E','east','EPSG','1053',2,'EPSG','9003');
INSERT INTO "axis" VALUES('EPSG','32935','Easting','x','east','EPSG','1054',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32936','Northing','y','north','EPSG','1054',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1','Easting','E','east','EPSG','4400',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','2','Northing','N','north','EPSG','4400',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','3','Easting','E','east','EPSG','4401',1,'EPSG','9062');
@@ -75,8 +78,8 @@ INSERT INTO "axis" VALUES('EPSG','19','Easting','E','east','EPSG','4409',1,'EPSG
INSERT INTO "axis" VALUES('EPSG','20','Northing','N','north','EPSG','4409',2,'EPSG','9040');
INSERT INTO "axis" VALUES('EPSG','181','Easting','E','east','EPSG','4410',1,'EPSG','9301');
INSERT INTO "axis" VALUES('EPSG','182','Northing','N','north','EPSG','4410',2,'EPSG','9301');
INSERT INTO "axis" VALUES('EPSG','236','Easting','E','South along 90°E.','EPSG','4460',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','237','Northing','N','South along 180°E','EPSG','4460',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32875','Easting','E','South along 90°E','EPSG','4460',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32876','Northing','N','South along 180°E','EPSG','4460',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','205','Topocentric East','U','east','EPSG','4461',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','206','Topocentric North','V','north','EPSG','4461',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','207','Topocentric height','W','up','EPSG','4461',3,'EPSG','9001');
@@ -172,6 +175,40 @@ INSERT INTO "axis" VALUES('EPSG','180','Northing','X','north','EPSG','4533',1,'E
INSERT INTO "axis" VALUES('EPSG','179','Easting','Y','east','EPSG','4533',2,'EPSG','9098');
INSERT INTO "axis" VALUES('EPSG','183','Northing','none','north','EPSG','4534',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','184','Easting','none','east','EPSG','4534',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','115','Geocentric X','X','geocentricX','EPSG','6500',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','116','Geocentric Y','Y','geocentricY','EPSG','6500',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','117','Geocentric Z','Z','geocentricZ','EPSG','6500',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','119','Southing','X','south','EPSG','6501',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','118','Westing','Y','west','EPSG','6501',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','120','Westing','Y','west','EPSG','6502',1,'EPSG','9031');
INSERT INTO "axis" VALUES('EPSG','121','Southing','X','south','EPSG','6502',2,'EPSG','9031');
INSERT INTO "axis" VALUES('EPSG','122','Westing','Y','west','EPSG','6503',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','123','Southing','X','south','EPSG','6503',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32877','Plant North','n','northWest','EPSG','6504',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32878','Plant East','e','northEast','EPSG','6504',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32873','First local axis','n','northWest','EPSG','6505',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32874','Second local axis','e','northEast','EPSG','6505',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','128','First local axis','I','east-south-east','EPSG','6506',1,'EPSG','9205');
INSERT INTO "axis" VALUES('EPSG','129','Second local axis','J','north-north-east','EPSG','6506',2,'EPSG','9204');
INSERT INTO "axis" VALUES('EPSG','130','First local axis','X','north','EPSG','6507',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','131','Second local axis','Y','west','EPSG','6507',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','133','Bin grid J','J','north north east','EPSG','6508',1,'EPSG','9209');
INSERT INTO "axis" VALUES('EPSG','132','Bin grid I','I','east south east','EPSG','6508',2,'EPSG','9208');
INSERT INTO "axis" VALUES('EPSG','135','Southing','P','south','EPSG','6509',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','134','Westing','M','west','EPSG','6509',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32871','Plant East','x','northEast','EPSG','6510',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32872','Plant North','y','northWest','EPSG','6510',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','211','Plant East','x','east','EPSG','6512',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','212','Plant North','y','north','EPSG','6512',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','213','Local height','z','up','EPSG','6512',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32890','Bin grid I','I','columnPositive','EPSG','32760',1,NULL,NULL);
INSERT INTO "axis" VALUES('EPSG','32891','Bin grid J','J','rowPositive','EPSG','32760',2,NULL,NULL);
INSERT INTO "axis" VALUES('EPSG','32894','Bin grid I','I','columnNegative','EPSG','32761',1,NULL,NULL);
INSERT INTO "axis" VALUES('EPSG','32895','Bin grid J','J','rowPositive','EPSG','32761',2,NULL,NULL);
INSERT INTO "axis" VALUES('EPSG','1082','Gravity-related height','H','up','EPSG','1030',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','1516','Depth','D','down','EPSG','1043',1,'EPSG','9003');
INSERT INTO "axis" VALUES('EPSG','1051','Local depth','d','down','EPSG','1049',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','1053','Local depth','d','down','EPSG','1050',1,'EPSG','9002');
INSERT INTO "axis" VALUES('EPSG','53','Geodetic latitude','Lat','north','EPSG','6401',1,'EPSG','9108');
INSERT INTO "axis" VALUES('EPSG','54','Geodetic longitude','Long','east','EPSG','6401',2,'EPSG','9108');
INSERT INTO "axis" VALUES('EPSG','55','Ellipsoidal height','h','up','EPSG','6401',3,'EPSG','9001');
@@ -179,9 +216,9 @@ INSERT INTO "axis" VALUES('EPSG','56','Geodetic latitude','Lat','north','EPSG','
INSERT INTO "axis" VALUES('EPSG','57','Geodetic longitude','Long','east','EPSG','6402',2,'EPSG','9108');
INSERT INTO "axis" VALUES('EPSG','58','Geodetic latitude','Lat','north','EPSG','6403',1,'EPSG','9105');
INSERT INTO "axis" VALUES('EPSG','59','Geodetic longitude','Lon','east','EPSG','6403',2,'EPSG','9105');
INSERT INTO "axis" VALUES('EPSG','60','Spherical latitude','Lat','north','EPSG','6404',1,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','61','Spherical longitude','Long','east','EPSG','6404',2,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','62','Geocentric radius','R','up','EPSG','6404',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','32879','Spherical latitude','lat','north','EPSG','6404',1,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','32880','Spherical longitude','lon','east','EPSG','6404',2,'EPSG','9122');
INSERT INTO "axis" VALUES('EPSG','32881','Geocentric radius','R','up','EPSG','6404',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','63','Geodetic latitude','Lat','north','EPSG','6405',1,'EPSG','9102');
INSERT INTO "axis" VALUES('EPSG','64','Geodetic longitude','Long','east','EPSG','6405',2,'EPSG','9102');
INSERT INTO "axis" VALUES('EPSG','65','Geodetic latitude','Lat','north','EPSG','6406',1,'EPSG','9116');
@@ -255,31 +292,5 @@ INSERT INTO "axis" VALUES('EPSG','111','Gravity-related height','H','up','EPSG',
INSERT INTO "axis" VALUES('EPSG','112','Gravity-related height','H','up','EPSG','6497',1,'EPSG','9003');
INSERT INTO "axis" VALUES('EPSG','113','Depth','D','down','EPSG','6498',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','114','Gravity-related height','H','up','EPSG','6499',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','115','Geocentric X','X','geocentricX','EPSG','6500',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','116','Geocentric Y','Y','geocentricY','EPSG','6500',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','117','Geocentric Z','Z','geocentricZ','EPSG','6500',3,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','119','Southing','X','south','EPSG','6501',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','118','Westing','Y','west','EPSG','6501',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','120','Westing','Y','west','EPSG','6502',1,'EPSG','9031');
INSERT INTO "axis" VALUES('EPSG','121','Southing','X','south','EPSG','6502',2,'EPSG','9031');
INSERT INTO "axis" VALUES('EPSG','122','Westing','Y','west','EPSG','6503',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','123','Southing','X','south','EPSG','6503',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','125','Plant North','n','northwest','EPSG','6504',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','124','Plant East','e','northeast','EPSG','6504',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','126','First local axis','n','northwest','EPSG','6505',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','127','Second local axis','e','northeast','EPSG','6505',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','128','First local axis','I','east-south-east','EPSG','6506',1,'EPSG','9205');
INSERT INTO "axis" VALUES('EPSG','129','Second local axis','J','north-north-east','EPSG','6506',2,'EPSG','9204');
INSERT INTO "axis" VALUES('EPSG','130','First local axis','X','north','EPSG','6507',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','131','Second local axis','Y','west','EPSG','6507',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','133','Bin grid J','J','north north east','EPSG','6508',1,'EPSG','9209');
INSERT INTO "axis" VALUES('EPSG','132','Bin grid I','I','east south east','EPSG','6508',2,'EPSG','9208');
INSERT INTO "axis" VALUES('EPSG','135','Southing','P','south','EPSG','6509',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','134','Westing','M','west','EPSG','6509',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','173','Plant East','x','northeast','EPSG','6510',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','174','Plant North','y','northwest','EPSG','6510',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','177','Inline','I','Along receiver lines','EPSG','6511',1,'EPSG','9208');
INSERT INTO "axis" VALUES('EPSG','178','Crossline','J','Across receiver lines','EPSG','6511',2,'EPSG','9209');
INSERT INTO "axis" VALUES('EPSG','211','Plant East','x','east','EPSG','6512',1,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','212','Plant North','y','north','EPSG','6512',2,'EPSG','9001');
INSERT INTO "axis" VALUES('EPSG','213','Local height','z','up','EPSG','6512',3,'EPSG','9001');
+3
View File
@@ -1 +1,4 @@
PRAGMA page_size = 4096;
PRAGMA foreign_keys = 1;
BEGIN;
+59 -129
View File
@@ -1,3 +1,60 @@
-- Remove duplicated entries between source=EPSG and source=EPSG_OLD, as some
-- aliases get sometimes removed in a version and are re-added in a later one.
DELETE FROM alias_name WHERE (table_name, auth_name, code, alt_name) IN
(SELECT table_name, auth_name, code, alt_name FROM
(SELECT count(*) AS count, table_name, auth_name, code, alt_name FROM alias_name
WHERE source in ('EPSG', 'EPSG_OLD')
GROUP BY table_name, auth_name, code, alt_name) x WHERE count > 1) AND source = 'EPSG_OLD';
-- Remove "conflicting" entries in alias_name, that is entries of EPSG_OLD whose
-- name match an entry of EPSG but with a different code
DELETE FROM alias_name WHERE (table_name, auth_name, code, alt_name, source) IN
(SELECT a2.table_name, a2.auth_name, a2.code, a2.alt_name, a2.source
FROM alias_name a1 JOIN alias_name a2
WHERE a1.table_name = a2.table_name AND a1.code != a2.code AND
a1.alt_name = a2.alt_name AND
a1.source = 'EPSG' AND a2.source = 'EPSG_OLD');
-- Remove useless entries, i.e. where the official name matches the alias...
DELETE FROM alias_name WHERE (table_name, auth_name, code, alt_name, source) IN
(SELECT a.table_name, a.auth_name, a.code, a.alt_name, a.source
FROM geodetic_datum d JOIN alias_name a WHERE
a.table_name = 'geodetic_datum' AND a.auth_name = d.auth_name AND
a.code = d.code AND d.name = a.alt_name);
DELETE FROM alias_name WHERE (table_name, auth_name, code, alt_name, source) IN
(SELECT a.table_name, a.auth_name, a.code, a.alt_name, a.source
FROM vertical_datum d JOIN alias_name a WHERE
a.table_name = 'vertical_datum' AND a.auth_name = d.auth_name AND
a.code = d.code AND d.name = a.alt_name);
DELETE FROM alias_name WHERE (table_name, auth_name, code, alt_name, source) IN
(SELECT a.table_name, a.auth_name, a.code, a.alt_name, a.source
FROM geodetic_crs c JOIN alias_name a WHERE
a.table_name = 'geodetic_crs' AND a.auth_name = c.auth_name AND
a.code = c.code AND c.name = a.alt_name);
DELETE FROM alias_name WHERE (table_name, auth_name, code, alt_name, source) IN
(SELECT a.table_name, a.auth_name, a.code, a.alt_name, a.source
FROM vertical_crs c JOIN alias_name a WHERE
a.table_name = 'vertical_crs' AND a.auth_name = c.auth_name AND
a.code = c.code AND c.name = a.alt_name);
DELETE FROM alias_name WHERE (table_name, auth_name, code, alt_name, source) IN
(SELECT a.table_name, a.auth_name, a.code, a.alt_name, a.source
FROM projected_crs c JOIN alias_name a WHERE
a.table_name = 'projected_crs' AND a.auth_name = c.auth_name AND
a.code = c.code AND c.name = a.alt_name);
DELETE FROM alias_name WHERE (table_name, auth_name, code, alt_name, source) IN
(SELECT a.table_name, a.auth_name, a.code, a.alt_name, a.source
FROM compound_crs c JOIN alias_name a WHERE
a.table_name = 'compound_crs' AND a.auth_name = c.auth_name AND
a.code = c.code AND c.name = a.alt_name);
COMMIT;
CREATE INDEX geodetic_crs_datum_idx ON geodetic_crs(datum_auth_name, datum_code);
@@ -9,132 +66,5 @@ CREATE INDEX grid_transformation_idx ON grid_transformation(source_crs_auth_name
CREATE INDEX other_transformation_idx ON other_transformation(source_crs_auth_name, source_crs_code, target_crs_auth_name, target_crs_code);
CREATE INDEX concatenated_operation_idx ON concatenated_operation(source_crs_auth_name, source_crs_code, target_crs_auth_name, target_crs_code);
-- Do an explicit foreign_key_check as foreign key checking is a no-op within
-- a transaction. Unfortunately we can't ask for this to be an error, so this
-- is just for verbose output. In Makefile, we check this separately
PRAGMA foreign_key_check;
-- Final consistency checks
CREATE TABLE dummy(foo);
CREATE TRIGGER final_checks
BEFORE INSERT ON dummy
FOR EACH ROW BEGIN
-- check that view definitions have no error
SELECT RAISE(ABORT, 'corrupt definition of coordinate_operation_view')
WHERE (SELECT 1 FROM coordinate_operation_view LIMIT 1) = 0;
SELECT RAISE(ABORT, 'corrupt definition of crs_view')
WHERE (SELECT 1 FROM crs_view LIMIT 1) = 0;
SELECT RAISE(ABORT, 'corrupt definition of object_view')
WHERE (SELECT 1 FROM object_view LIMIT 1) = 0;
SELECT RAISE(ABORT, 'corrupt definition of authority_list')
WHERE (SELECT 1 FROM authority_list LIMIT 1) = 0;
-- test to check that our custom grid transformation overrides are really needed
SELECT RAISE(ABORT, 'PROJ grid_transformation defined whereas EPSG has one')
WHERE EXISTS (SELECT 1 FROM grid_transformation g1, grid_transformation g2 WHERE
lower(g1.grid_name) = lower(g2.grid_name) AND
g1.auth_name = 'PROJ' AND g2.auth_name = 'EPSG');
SELECT RAISE(ABORT, 'Arg! there is now a EPSG:102100 object. Hack in createFromUserInput() will no longer work')
WHERE EXISTS(SELECT 1 FROM crs_view WHERE auth_name = 'EPSG' AND code = '102100');
-- check coordinate_operation_view "foreign keys"
SELECT RAISE(ABORT, 'One coordinate_operation has a broken source_crs link')
WHERE EXISTS (SELECT * FROM coordinate_operation_view cov WHERE
cov.source_crs_auth_name || cov.source_crs_code NOT IN
(SELECT auth_name || code FROM crs_view));
SELECT RAISE(ABORT, 'One coordinate_operation has a broken target_crs link')
WHERE EXISTS (SELECT * FROM coordinate_operation_view cov WHERE
cov.target_crs_auth_name || cov.target_crs_code NOT IN
(SELECT auth_name || code FROM crs_view));
-- check that grids with NTv2 method are properly registered
SELECT RAISE(ABORT, 'One grid_transformation with NTv2 has not its source_crs in geodetic_crs table with type = ''geographic 2D''')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.method_name = 'NTv2' AND
g.source_crs_auth_name || g.source_crs_code NOT IN
(SELECT auth_name || code FROM geodetic_crs
WHERE type = 'geographic 2D'));
SELECT RAISE(ABORT, 'One grid_transformation with NTv2 has not its target_crs in geodetic_crs table with type = ''geographic 2D''')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.method_name = 'NTv2' AND
g.target_crs_auth_name || g.target_crs_code NOT IN
(SELECT auth_name || code FROM geodetic_crs
WHERE type = 'geographic 2D'));
-- check that grids with HEIGHT_TO_GEOGRAPHIC3D method are properly registered
SELECT RAISE(ABORT, 'One grid_transformation with HEIGHT_TO_GEOGRAPHIC3D has not its source_crs in vertical_crs table')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.method_code = 'HEIGHT_TO_GEOGRAPHIC3D' AND
g.source_crs_auth_name || g.source_crs_code NOT IN
(SELECT auth_name || code FROM vertical_crs));
SELECT RAISE(ABORT, 'One grid_transformation with HEIGHT_TO_GEOGRAPHIC3D has not its target_crs in geodetic_crs table with type = ''geographic 3D''')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.method_code = 'HEIGHT_TO_GEOGRAPHIC3D' AND
g.target_crs_auth_name || g.target_crs_code NOT IN
(SELECT auth_name || code FROM geodetic_crs
WHERE type = 'geographic 3D'));
-- check that grids with Geographic3D to GravityRelatedHeight method are properly registered
SELECT RAISE(ABORT, 'One grid_transformation with Geographic3D to GravityRelatedHeight has not its target_crs in vertical_crs table')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.deprecated = 0 AND
g.method_name LIKE 'Geographic3D to GravityRelatedHeight%' AND
g.target_crs_auth_name || g.target_crs_code NOT IN
(SELECT auth_name || code FROM vertical_crs));
SELECT RAISE(ABORT, 'One grid_transformation with Geographic3D to GravityRelatedHeight has not its source_crs in geodetic_crs table with type = ''geographic 3D''')
WHERE EXISTS (SELECT * FROM grid_transformation g WHERE
g.deprecated = 0 AND
g.method_name LIKE 'Geographic3D to GravityRelatedHeight%' AND
NOT (g.auth_name = 'EPSG' AND g.code IN (7648, 7649, 7650)) AND -- those are wrongly registered as they use a geocentric CRS. Reported to EPSG
g.source_crs_auth_name || g.source_crs_code NOT IN
(SELECT auth_name || code FROM geodetic_crs
WHERE type = 'geographic 3D'));
-- check that transformations intersect the area of use of their source/target CRS
-- EPSG, ESRI and IGNF have cases where this does not hold.
SELECT RAISE(ABORT, 'The area of use of at least one coordinate_operation does not intersect the one of its source CRS')
WHERE EXISTS (SELECT * FROM coordinate_operation_view v, crs_view c, area va, area ca WHERE
v.deprecated = 0 AND
v.auth_name NOT IN ('EPSG', 'ESRI', 'IGNF') AND
v.source_crs_auth_name = c.auth_name AND
v.source_crs_code = c.code AND
v.area_of_use_auth_name = va.auth_name AND
v.area_of_use_code = va.code AND
c.area_of_use_auth_name = ca.auth_name AND
c.area_of_use_code = ca.code AND
NOT (ca.south_lat < va.north_lat AND va.south_lat < ca.north_lat));
SELECT RAISE(ABORT, 'The area of use of at least one coordinate_operation does not intersect the one of its target CRS')
WHERE EXISTS (SELECT * FROM coordinate_operation_view v, crs_view c, area va, area ca WHERE
v.deprecated = 0 AND
v.auth_name NOT IN ('EPSG', 'ESRI', 'IGNF') AND
v.target_crs_auth_name = c.auth_name AND
v.target_crs_code = c.code AND
v.area_of_use_auth_name = va.auth_name AND
v.area_of_use_code = va.code AND
c.area_of_use_auth_name = ca.auth_name AND
c.area_of_use_code = ca.code AND
NOT (ca.south_lat < va.north_lat AND va.south_lat < ca.north_lat));
-- check geoid_model table
SELECT RAISE(ABORT, 'missing GEOID99 in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID99');
SELECT RAISE(ABORT, 'missing GEOID03 in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID03');
SELECT RAISE(ABORT, 'missing GEOID06 in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID06');
SELECT RAISE(ABORT, 'missing GEOID09 in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID09');
SELECT RAISE(ABORT, 'missing GEOID12A in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID12A');
SELECT RAISE(ABORT, 'missing GEOID12B in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID12B');
SELECT RAISE(ABORT, 'missing GEOID18 in geoid_model')
WHERE NOT EXISTS(SELECT 1 FROM geoid_model WHERE name = 'GEOID18');
END;
INSERT INTO dummy DEFAULT VALUES;
DROP TRIGGER final_checks;
DROP TABLE dummy;
VACUUM;
-- We don't need to select by auth_name, code so nullify them to save space
UPDATE usage SET auth_name = NULL, code = NULL;
Loaded 100 of 1186 files, more files were not shown because too many files have changed in this diff. Show more