This commit moves the following requirement from ProjMethodGeoKey to ProjectionGeoKey:
keys for each map projection parameter (coordinate operation parameter) appropriate to that method SHALL be populated.
The previous location was incorrect because projection methods do not contain parameter values. So providing an EPSG code for ProjMethodGeoKey is not a replacement to providing parameter values when ProjectionGeoKey is user-defined. With this pull request, the new requirement in ProjectionGeoKey become (new part in italic):
If the ProjectionGeoKey value is 32767 (User-Defined) then the ProjectedCitationGeoKey, ProjMethodGeoKey, ProjLinearUnitsGeoKey and keys for each map projection parameter (coordinate operation parameter) appropriate to that method SHALL be populated.
And the old requirement in ProjMethodGeoKey become:
The ProjMethodGeoKey value SHOULD not be 32767 (User-Defined)
The reason for the above is that projection methods are usually mapped to hard-coded formulas in map projection software. If the projection method is not known to the software, there is almost nothing the software can do.
This commit also renames ProjectionMethodGeoKey as ProjMethodGeoKey. The old name seems a mistake.
This commit moves the following requirement from
ProjMethodGeoKey
toProjectionGeoKey
:The previous location was incorrect because projection methods do not contain parameter values. So providing an EPSG code for
ProjMethodGeoKey
is not a replacement to providing parameter values whenProjectionGeoKey
is user-defined. With this pull request, the new requirement inProjectionGeoKey
become (new part in italic):And the old requirement in
ProjMethodGeoKey
become:The reason for the above is that projection methods are usually mapped to hard-coded formulas in map projection software. If the projection method is not known to the software, there is almost nothing the software can do.
This commit also renames
ProjectionMethodGeoKey
asProjMethodGeoKey
. The old name seems a mistake.