Skip to content

Commit

Permalink
Split projects into proj4j and proj4j-epsg (#92)
Browse files Browse the repository at this point in the history
* Split projects into two, update HOWTORELEASE instructions as well as the related set of mvn plugins

* Bump the default proj4j snapshot version up
  • Loading branch information
pomadchin committed Dec 4, 2022
1 parent 520b94b commit 36bf27c
Show file tree
Hide file tree
Showing 201 changed files with 589 additions and 193 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,4 @@ _SUCCESS

.ensime*
tags
.vscode
.vscode
2 changes: 1 addition & 1 deletion .mvn/extensions.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
<extension>
<groupId>fr.brouillard.oss</groupId>
<artifactId>jgitver-maven-plugin</artifactId>
<version>1.8.0</version>
<version>1.9.0</version>
</extension>
</extensions>
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fix RobinsonProjection [#87](https://github.com/locationtech/proj4j/issues/87)
- Backport: Stop after successfully applying grid [#91](https://github.com/locationtech/proj4j/pull/91)

### Added
- Added support for EPSG:9054 [#93](https://github.com/locationtech/proj4j/pull/93)
- Split projects into proj4j and proj4j-epsg [#92](https://github.com/locationtech/proj4j/pull/92)

## [1.1.5] - 2022-03-25

### Fixed
Expand Down
86 changes: 86 additions & 0 deletions HOWTORELEASE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
Steps for Making a Proj4J Release
==============================================================================

:Author: Grigory Pomadchin
:Contact: https://github.com/pomadchin
:Date: 11/28/2022

This document describes the process to releasing a new version of Proj4J.

General Notes
------------------------------------------------------------------------------

1) Proj4J project release
What you need:
- an account on sonatype (https://issues.sonatype.org/secure/Signup!default.jspa)
- configured ~/.m2/settings.xml file (a simple example below):
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
http://maven.apache.org/xsd/settings-1.0.0.xsd">
<localRepository/>
<interactiveMode/>
<usePluginRegistry/>
<offline/>
<pluginGroups/>
<servers>
<server>
<id>sonatype_snapshots</id>
<username>...</username>
<password>...</password>
</server>
<server>
<id>sonatype_releases</id>
<username>...</username>
<password>...</password>
</server>
<server>
<id>ossrh</id>
<username>...</username>
<password>...</password>
</server>
</servers>
<mirrors/>
<proxies/>
<profiles/>
<activeProfiles/>
</settings>

Cheat sheet:
- All commands are can be described via the following template:
mvn -P{eclipse | central} {-Dmaven.test.skip=true | } {-pl <module> | } {install, deploy, ...}

The description of the Sonatype publish process:
- Snaphots:
Versioning:
- Release versions are derived from the latest (not lightweight) tag version and the branch name if applicable. Each tag should start with v,
i.e. v2.3.0. The snapshot tag happens on commits that follow the tag, and contain git commit hash.
Snapshot can be published without PGP sign, it is published to a snapshot repo and allows immediate snaphot updates.
Publish to a local repo:
- mvn -Pcentral -Dmaven.test.skip=true install
Publish to sonatype:
- mvn -Pcentral -Dmaven.test.skip=true deploy
Publish to eclipse:
- mvn -Peclipse -Dmaven.test.skip=true deploy

- Releases:
Versioning:
- Release versions are derived from the latest (not lightweight) tag version. Each tag should start with v,
i.e. v2.3.0.
Snapshot can not be published without PGP signature, verify that you have up to date GPG keys set.
Publish to a local repo:
- mvn -Pcentral -Dmaven.test.skip=true install
Publish to sonatype:
- mvn -Pcentral -Dmaven.test.skip=true deploy
Publish to eclipse:
- mvn -Peclipse -Dmaven.test.skip=true deploy
Staging means a special repository in a pre released condition.
- Go into staging repos panel: https://oss.sonatype.org/#stagingRepositories (log in using sonatype user / pwd)
- Filter by the package name (proj4j) and select matching staging repo
- Press Close button on the top of the table with repos. It runs packages
validation and closes staging repo in a successful case
- After successful close press the Release button
Summary:
- Run mvn -Pcentral -Dmaven.test.skip=true deploy to publish everything to sonatype
- Go to sonatype panel https://oss.sonatype.org/#stagingRepositories and release jars
- Await ~10 minutes to have jars published to maven central
8 changes: 7 additions & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ License for the specific language governing permissions and limitations under
the License.

-----

This software uses code from proj.4 [https://github.com/osgeo/proj.4],
which is distributed under the MIT license:

Expand All @@ -36,4 +37,9 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
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.
DEALINGS IN THE SOFTWARE.

-----

Proj4J EPSG module contains resource files released under the EPSG database distribution license.
For more details see LICENSE.EPSG file in the root of this repository.
61 changes: 61 additions & 0 deletions LICENSE.EPSG
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# EPSG Geodetic Parameter Dataset Terms of Use

1. In this document the following definitions of terms apply:

“Registry” means the EPSG Geodetic Parameter Registry;“EPSG Dataset” means EPSG Geodetic Parameter Dataset;“IOGP” means the International Association of Oil and Gas Producers, incorporated in England as a company limited by guarantee (number 1832064);“EPSG Facilities” means the Registry, the EPSG Dataset (published through the Registry or through a downloadable MS-Access file or through a set of SQL scripts that enable a user to create an Oracle, MySQL, PostgreSQL or other database and populate that database with the EPSG Dataset) and associated documentation consisting of the Release Notes and Guidance Notes 7.1 and 7.2

“the data” means the geodetic parameter data and associated metadata, contained in the EPSG Dataset; it also refers to any subset of data from the EPSG Dataset.

2. The EPSG Facilities are published by IOGP at no charge. Distribution for profit is forbidden.

3. The EPSG Facilities are owned by IOGP. They are compiled by the Geodetic Subcommittee of the IOGP from publicly available and member-supplied information.

4. In order to use the EPSG Facilities, you must agree to these Terms of Use. You may not use the EPSG Facilities or any of them in whole or in part unless you agree to these Terms of Use.

5. You can accept these Terms of Use by clicking the command button ‘Accept Terms’ upon registering as a new user. You will also be required to accept any revised Terms of Use prior to using or downloading any EPSG Facilities. You understand and agree that any use of the EPSG Facilities or any of them, even if obtained without clicking acceptance, will be acceptance of these Terms of Use.

6. The data may be used, copied and distributed subject to the following conditions:

1. Whilst every effort has been made to ensure the accuracy of the information contained in the EPSG Facilities, neither the IOGP nor any of its members past present or future warrants their accuracy or will, regardless of its or their negligence, assume liability for any foreseeable or unforeseeable use made thereof, which liability is hereby excluded. Consequently, such use is at your own risk. You are obliged to inform anyone to whom you provide the EPSG Facilities of these Terms of Use.

2. DATA AND INFORMATION PROVIDED IN THE EPSG FACILITIES ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.

3. The data may be included in any commercial package provided that any commerciality is based on value added by the provider and not on a value ascribed to the EPSG Dataset which is made available at no charge.

4. Ownership of the EPSG Dataset by IOGP must be acknowledged in any publication or transmission (by whatever means) thereof (including permitted modifications).

5. Subsets of information may be extracted from the dataset. Users are advised that coordinate reference system and coordinate transformation descriptions are incomplete unless all elements detailed as essential in IOGP Surveying and Positioning Guidance Note 7-1 Annex A are included.

6. Essential elements should preferably be reproduced as described in the dataset. Modification of parameter values is permitted as described in the table below to allow change to the content of the information provided that numeric equivalence is achieved. Numeric equivalence refers to the results of geodetic calculations in which the parameters are used, for example (i) conversion of ellipsoid defining parameters, or (ii) conversion of parameters between one and two standard parallel projection methods, or (iii) conversion of parameters between 7-parameter geocentric transformation methods.

7. No data that has been modified other than as permitted in these Terms of Use shall be attributed to the EPSG Dataset.

## Table 1: permitted modifications of data

| AS GIVEN IN EPSG DATASET || PERMITTED CHANGE FOR VENDORS/USERS TO ADOPT |
|-||-|
| *Change of ellipsoid defining parameters.* |||
| 1a | Ellipsoid parameters a and b. | a and 1/f ; a and f; a and e; a and e2. |
| 1b | Ellipsoid parameters a and 1/f. | a and b; a and f; a and e; a and e2. |
| *Change of projection method* |||
| 2a | Lambert Conic Conformal (1 SP) method with projection parameters φO and kO. | Lambert Conic Conformal (2 SP) method with projection parameters φ1 and φ2. |
| 2b | Lambert Conic Conformal (2 SP) method with projection parametersφ1 and φ2. | Lambert Conic Conformal (1 SP) method with projection parameters φO and kO. |
| 3a | Mercator (variant A) method with projection parameters φO and kO. | Mercator (variant B) method with projection parameter φ1. |
| 3b | Mercator (variant B) method with projection parameter φ1. | Mercator (variant A) method with projection parameters φO and kO. |
| 4a | Hotine Oblique Mercator (variant A) method with projection parameters FE and FN. | Hotine Oblique Mercator (variant B) method with projection parameters EC and NC. |
| 4b | Hotine Oblique Mercator (variant B) method with projection parameters EC and NC. | Hotine Oblique Mercator (variant A) method with projection parameters FE and FN. |
| 5a | Polar Stereographic (Variant A) method with projection parameters φO and kO. | Polar Stereographic (Variant B) method with projection parameter φF. |
| 5b | Polar Stereographic (Variant B) method with projection parameter φF. | Polar Stereographic (Variant A) method with projection parameters φO and kO. |
| 5c | Polar Stereographic (Variant A) method with projection parameters φO, kO, FE and FN. | Polar Stereographic (Variant C) method with projection parameters φF, EF and NF. |
| 5d | Polar Stereographic (Variant C) method with projection parameters φF, EF and NF. | Polar Stereographic (Variant A) method with projection parameters φO, kO, FE and FN. |
| 5e | Polar Stereographic (Variant B) method with projection parameter FE and FN. | Polar Stereographic (Variant C) method with projection parameters EF and NF. |
| 5f | Polar Stereographic (Variant C) method with projection parameters EF and NF. | Polar Stereographic (Variant B) method with projection parameter FE and FN. |
| Change of transformation method | | |
| 6a | Position Vector 7-parameter transformation method parameters RX RY and RZ. | Coordinate Frame transformation method with signs of position vector parameters RX RY and RZ reversed. |
| 6b | Coordinate Frame transformation method parameters RX RY and RZ. | Position Vector 7-parameter transformation method with signs of coordinate frame parameters RX RY and RZ reversed. |
| 7 | Concatenated transformation using geocentric methods (Geocentric translations, Position Vector 7-parameter transformation, Coordinate Frame rotation). | Equivalent single geocentric transformation in which for each parameter the parameter values of the component steps have been summed. |
| *Change of units* |||
| 8 | NTv2 method grid file filename. | NTv2 method grid file relative storage path with file name including removal (if necessary) of “special characters” [spaces, parentheses, etc] which are replaced by underscore characters. |
| 9 | Parameter value. | Convert unit to another, for example from microradian to arc-second, using conversion factors obtained from the EPSG dataset Unit table. |

<cite>source: [https://epsg.org/terms-of-use.html](https://epsg.org/terms-of-use.html)</cite>
17 changes: 17 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,21 @@ dependencies {
```
where `<latest version>` refers to the version indicated by the badge above.

### Proj4j EPSG

Proj4J-EPSG module distributes a portion of the EPSG dataset. This artifact is released the [EPSG database distribution license](https://raw.githubusercontent.com/locationtech/proj4j/master/LICENSE.EPSG).
```xml
<properties>
<proj4j.version><latest version></proj4j.version>
</properties>
<dependency>
<groupId>org.locationtech.proj4j</groupId>
<artifactId>proj4j-epsg</artifactId>
<version>${proj4j.version}</version>
</dependency>
```
where `<latest version>` refers to the version indicated by the badge above.

### Basic Usage

The following examples give a quick intro on how to use Proj4J in common
Expand Down Expand Up @@ -81,6 +96,8 @@ wgsToUtm.transform(new ProjCoordinate(lon, lat), result);

`mvn -Dmaven.test.skip=true -Pcentral clean package deploy`

For more details see [HOWTORELEASE.txt](./HOWTORELEASE.txt).

## Contributing

If you are interested in contributing to Proj4J please read the [**Contributing Guide**](CONTRIBUTING.md).
Loading

0 comments on commit 36bf27c

Please sign in to comment.