Package org.apache.sis.referencing.gazetteer

## Class GeohashReferenceSystem

- Object
- - FormattableObject
  - - AbstractIdentifiedObject
    - - AbstractReferenceSystem
      - - ReferencingByIdentifiers
        - - GeohashReferenceSystem

- All Implemented Interfaces:
    `Serializable`, `Deprecable`, `LenientComparable`, `IdentifiedObject`, `ReferenceSystem`

      public class GeohashReferenceSystem
      extends ReferencingByIdentifiers

  Geographic coordinates represented as geohashes strings. Geohash is a simple encoding of geographic coordinates into a short string of letters and digits. Longer strings are more accurate, however the accuracy is not uniformly distributed between latitude and longitude, and removing digits decreases accuracy faster when the point is located close to the equator than close to a pole. For a system having more uniform accuracy, see the Military Grid Reference System (MGRS).
  Since:
    0.8
  See Also:
    Geohash on Wikipedia, Serialized Form

  Defined in the `sis-referencing-by-identifiers` module

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `GeohashReferenceSystem.Coder` | Conversions between direct positions and geohashes.
    `static class` | `GeohashReferenceSystem.Format` | The encoding format used by `GeohashReferenceSystem​.Coder`.

  - ### Field Summary

    - ### Fields inherited from class ReferencingByIdentifiers

      `OVERALL_OWNER_KEY, THEME_KEY`

    - ### Fields inherited from class AbstractIdentifiedObject

      `DEPRECATED_KEY, LOCALE_KEY`

    - ### Fields inherited from interface IdentifiedObject

      `ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY`

    - ### Fields inherited from interface ReferenceSystem

      `DOMAIN_OF_VALIDITY_KEY, SCOPE_KEY`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `GeohashReferenceSystem​(GeohashReferenceSystem.Format format, GeographicCRS crs)` | Creates a new geohash reference system for the given format and coordinate reference system.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `GeohashReferenceSystem.Coder` | `createCoder()` | Returns a new object performing conversions between `DirectPosition` and geohashes.
    `GeohashReferenceSystem.Format` | `getFormat()` | Returns the encoding/decoding format.

    - ### Methods inherited from class ReferencingByIdentifiers

      `computeHashCode, equals, formatTo, getLocationTypes, getOverallOwner, getTheme`

    - ### Methods inherited from class AbstractReferenceSystem

      `getDomainOfValidity, getInterface, getScope`

    - ### Methods inherited from class AbstractIdentifiedObject

      `castOrCopy, equals, getAlias, getDescription, getIdentifiers, getName, getRemarks, hashCode, isDeprecated, isHeuristicMatchForName`

    - ### Methods inherited from class FormattableObject

      `print, toString, toString, toWKT`

    - ### Methods inherited from class Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface IdentifiedObject

      `getAlias, getIdentifiers, getName, getRemarks, toWKT`

- - ### Constructor Detail

    - #### GeohashReferenceSystem

          public GeohashReferenceSystem​(GeohashReferenceSystem.Format format,
                                        GeographicCRS crs)
                                 throws GazetteerException

      Creates a new geohash reference system for the given format and coordinate reference system.
      Parameters:
        `format` - the format used by the `GeohashReferenceSystem​.Coder`.
        `crs` - the coordinate reference system. This is usually `CommonCRS​.defaultGeographic()`.
      Throws:
        `GazetteerException` - if the reference system can not be created.

  - ### Method Detail

    - #### getFormat

          public GeohashReferenceSystem.Format getFormat()

      Returns the encoding/decoding format.
      Returns:
        the encoding/decoding format.

    - #### createCoder

          public GeohashReferenceSystem.Coder createCoder()

      Returns a new object performing conversions between `DirectPosition` and geohashes. The returned object is not thread-safe; a new instance must be created for each thread, or synchronization must be applied by the caller.
      Returns:
        a new object performing conversions between `DirectPosition` and geohashes.