Class GeoJsonWriter


  • public class GeoJsonWriter
    extends java.lang.Object
    Writes Geometrys as JSON fragments in GeoJSON format.

    The current GeoJSON specification is https://tools.ietf.org/html/rfc7946.

    The GeoJSON specification states that polygons should be emitted using the counter-clockwise shell orientation. This is not enforced by this writer.

    The GeoJSON specification does not state how to represent empty geometries of specific type. The writer emits empty typed geometries using an empty array for the coordinates property.

    Author:
    Martin Davis, Paul Howells, Vivid Solutions
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String EPSG_PREFIX
      The prefix for EPSG codes in the crs property.
    • Constructor Summary

      Constructors 
      Constructor Description
      GeoJsonWriter()
      Constructs a GeoJsonWriter instance.
      GeoJsonWriter​(int decimals)
      Constructs a GeoJsonWriter instance specifying the number of decimals to use when encoding floating point numbers.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void setEncodeCRS​(boolean isEncodeCRS)
      Sets whether the GeoJSON crs property should be output.
      void setForceCCW​(boolean isForceCCW)
      Sets whether the GeoJSON should be output following counter-clockwise orientation aka Right Hand Rule defined in RFC7946 See RFC 7946 Specification for more context.
      java.lang.String write​(Geometry geometry)
      Writes a Geometry in GeoJson format to a String.
      void write​(Geometry geometry, java.io.Writer writer)
      Writes a Geometry in GeoJson format into a Writer.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • EPSG_PREFIX

        public static final java.lang.String EPSG_PREFIX
        The prefix for EPSG codes in the crs property.
        See Also:
        Constant Field Values
    • Constructor Detail

      • GeoJsonWriter

        public GeoJsonWriter()
        Constructs a GeoJsonWriter instance.
      • GeoJsonWriter

        public GeoJsonWriter​(int decimals)
        Constructs a GeoJsonWriter instance specifying the number of decimals to use when encoding floating point numbers.
        Parameters:
        decimals - the number of decimal places to output
    • Method Detail

      • setEncodeCRS

        public void setEncodeCRS​(boolean isEncodeCRS)
        Sets whether the GeoJSON crs property should be output. The value of the property is taken from geometry SRID.
        Parameters:
        isEncodeCRS - true if the crs property should be output
      • setForceCCW

        public void setForceCCW​(boolean isForceCCW)
        Sets whether the GeoJSON should be output following counter-clockwise orientation aka Right Hand Rule defined in RFC7946 See RFC 7946 Specification for more context.
        Parameters:
        isForceCCW - true if the GeoJSON should be output following the RFC7946 counter-clockwise orientation aka Right Hand Rule
      • write

        public java.lang.String write​(Geometry geometry)
        Writes a Geometry in GeoJson format to a String.
        Parameters:
        geometry - the geometry to write
        Returns:
        String GeoJson Encoded Geometry
      • write

        public void write​(Geometry geometry,
                          java.io.Writer writer)
                   throws java.io.IOException
        Writes a Geometry in GeoJson format into a Writer.
        Parameters:
        geometry - Geometry to encode
        writer - Stream to encode to.
        Throws:
        java.io.IOException - throws an IOException when unable to write the JSON string