Class SpatialContextFactory

java.lang.Object
org.locationtech.spatial4j.context.SpatialContextFactory
Direct Known Subclasses:
JtsSpatialContextFactory

public class SpatialContextFactory extends Object
Factory for a SpatialContext based on configuration data. Call makeSpatialContext(java.util.Map, ClassLoader) to construct one via String name-value pairs. To construct one via code then create a factory instance, set the fields, then call newSpatialContext().

The following keys are looked up in the args map:

spatialContextFactory
org.locationtech.spatial4j.context.SpatialContext or org.locationtech.spatial4j.context.jts.JtsSpatialContext
geo
true (default)| false -- see SpatialContext.isGeo()
shapeFactoryClass
Java class of the ShapeFactory.
distCalculator
haversine | lawOfCosines | vincentySphere | cartesian | cartesian^2 -- see DistanceCalculator
worldBounds
ENVELOPE(xMin, xMax, yMax, yMin) -- see SpatialContext.getWorldBounds()
normWrapLongitude
true | false (default) -- see SpatialContext.isNormWrapLongitude()
readers
Comma separated list of ShapeReader class names
writers
Comma separated list of ShapeWriter class names
binaryCodecClass
Java class of the BinaryCodec
  • Field Details

  • Constructor Details

    • SpatialContextFactory

      public SpatialContextFactory()
  • Method Details

    • makeSpatialContext

      public static SpatialContext makeSpatialContext(Map<String,String> args, ClassLoader classLoader)
      Creates a new SpatialContext based on configuration in args. See the class definition for what keys are looked up in it. The factory class is looked up via "spatialContextFactory" in args then falling back to a Java system property (with initial caps). If neither are specified then SpatialContextFactory is chosen.
      Parameters:
      args - Non-null map of name-value pairs.
      classLoader - Optional, except when a class name is provided to an argument.
    • init

      protected void init(Map<String,String> args, ClassLoader classLoader)
    • initField

      protected void initField(String name)
      Gets name from args and populates a field by the same name with the value.
    • initCalculator

      protected void initCalculator()
    • initFormats

      protected void initFormats()
      Check args for 'readers' and 'writers'. The value should be a comma separated list of class names. The legacy parameter 'wktShapeParserClass' is also supported to add a specific WKT prarser
    • makeFormats

      public SupportedFormats makeFormats(SpatialContext ctx)
    • checkDefaultFormats

      protected void checkDefaultFormats()
      If no formats were defined in the config, this will make sure GeoJSON and WKT are registered
    • addReaderIfNoggitExists

      public void addReaderIfNoggitExists(Class<? extends ShapeReader> reader)
    • initWorldBounds

      protected void initWorldBounds()
    • newSpatialContext

      public SpatialContext newSpatialContext()
      Subclasses should simply construct the instance from the initialized configuration.
    • makeShapeFactory

      public ShapeFactory makeShapeFactory(SpatialContext ctx)
    • makeBinaryCodec

      public BinaryCodec makeBinaryCodec(SpatialContext ctx)
    • makeClassInstance

      private <T> T makeClassInstance(Class<? extends T> clazz, Object... ctorArgs)