Hello all

The factory for creating Coordinate Reference Systems and other geodetic
objects (datums, etc.) identified by a code in the EPSG namespace (for
example "EPSG:4326") has been merged to trunk last week.

The factory for creating Coordinate Reference Systems from a code in the
CRS, AUTO and AUTO2 namespaces (for example "CRS:84") has been merged to
trunk. As a side effect of this work, a convenience UTM(latitude,
longitude) method has been added in the CommonCRS class for creating
Universal Transverse Mercator projections [1].

Factories for other namespaces (for example "IGNF") may be added in
future versions.

The factory that rules them all and dispatches the object creations to
the right factory determined from the authority (e.g. if the requested
code is "EPSG:4326", then the object creation will be delegated to the
EPSGFactory) is in progress as the MultiAuthoritiesFactory class. This
class is also in charge of parsing URN and HTTP syntax like
"urn:ogc:def:crs:epsg:8.2:4326". Note that the URN syntax contains an
optional version number ("8.2" in the previous example). Apache SIS can
have many instances of EPSGFactory for different versions of the EPSG
dataset. It is also MultiAuthoritiesFactory's role to dispatch to the
right EPSGFactory instance according the version number, if specified.

When MultiAuthoritiesFactory will be completed, the static
CRS.forCode(String) convenience method [2] will be connected to that
factory. Behind this apparently simple method is a large amount of the
162,000 lines of code that Apache SIS currently contains.

    Martin


[1] 
https://builds.apache.org/job/sis-dev/javadoc/org/apache/sis/referencing/CommonCRS.html#UTM-double-double-
[2] 
https://builds.apache.org/job/sis-dev/javadoc/org/apache/sis/referencing/CRS.html#forCode-java.lang.String-

Reply via email to