public class CustomProjection extends AbstractProjection
Modifier and Type | Class and Description |
---|---|
static class |
CustomProjection.Param
Proj4-like projection parameters.
|
private static class |
CustomProjection.Polarity |
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
axis |
protected Bounds |
bounds |
protected java.lang.String |
cacheDir |
protected java.lang.String |
code |
private static double |
METER_PER_UNIT_DEGREE |
private double |
metersPerUnitWMTS |
protected java.lang.String |
name |
private java.util.EnumMap<CustomProjection.Polarity,EastNorth> |
polesEN |
private java.util.EnumMap<CustomProjection.Polarity,LatLon> |
polesLL |
protected java.lang.String |
pref
pref String that defines the projection
null means fall back mode (Mercator)
|
private static java.util.Map<java.lang.String,java.lang.Double> |
PRIME_MERIDANS |
private static java.util.Map<java.lang.String,java.lang.Double> |
UNITS_TO_METERS |
Constructor and Description |
---|
CustomProjection()
Constructs a new empty
CustomProjection . |
CustomProjection(java.lang.String pref)
Constructs a new
CustomProjection with given parameters. |
CustomProjection(java.lang.String name,
java.lang.String code,
java.lang.String pref,
java.lang.String cacheDir)
Constructs a new
CustomProjection with given name, code and parameters. |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
getCacheDirectoryName()
Get a filename compatible string (for the cache directory).
|
java.lang.Integer |
getEpsgCode() |
Bounds |
getLatLonBoundsBox(ProjectionBounds r)
Find lat/lon-box containing all the area of a given rectangle in
east/north space.
|
double |
getMetersPerUnit()
Factor to convert units of east/north coordinates to meters.
|
private EastNorth |
getPointAlong(int i,
int N,
ProjectionBounds r) |
private EastNorth |
getPole(CustomProjection.Polarity whichPole) |
private static java.util.Map<java.lang.String,java.lang.Double> |
getPrimeMeridians() |
private static java.util.Map<java.lang.String,java.lang.Double> |
getUnitsToMeters() |
Bounds |
getWorldBoundsLatLon()
Get the bounds of the world.
|
static double |
parseAngle(java.lang.String angleStr,
java.lang.String parameterName) |
static Bounds |
parseBounds(java.lang.String boundsStr) |
Datum |
parseDatum(java.util.Map<java.lang.String,java.lang.String> parameters,
Ellipsoid ellps) |
static double |
parseDouble(java.util.Map<java.lang.String,java.lang.String> parameters,
java.lang.String parameterName) |
static double |
parseDouble(java.lang.String doubleStr,
java.lang.String parameterName) |
Ellipsoid |
parseEllipsoid(java.util.Map<java.lang.String,java.lang.String> parameters) |
static java.util.Map<java.lang.String,java.lang.String> |
parseParameterList(java.lang.String pref,
boolean ignoreUnknownParameter)
Parse a parameter list to key=value pairs.
|
Proj |
parseProjection(java.util.Map<java.lang.String,java.lang.String> parameters,
Ellipsoid ellps) |
Datum |
parseToWGS84(java.lang.String paramList,
Ellipsoid ellps) |
static java.util.Map<java.lang.String,java.lang.String> |
resolveInits(java.util.Map<java.lang.String,java.lang.String> parameters,
boolean ignoreUnknownParameter)
Recursive resolution of +init includes.
|
boolean |
switchXY()
Does this projection natural order of coordinates is North East,
instead of East North
|
java.lang.String |
toCode()
Default implementation of toCode().
|
java.lang.String |
toString()
Describe the projection in one or two words.
|
void |
update(java.lang.String pref)
Updates this
CustomProjection with given parameters. |
convertDegreeMinuteSecond, convertMinuteSecond, eastNorth2latlon, getCentralMeridian, getDatum, getDefaultZoomInPPD, getEllipsoid, getFalseEasting, getFalseNorthing, getProj, getScaleFactor, getToMeter, getWorldBoundsBoxEastNorth, latlon2eastNorth
private static final double METER_PER_UNIT_DEGREE
private static final java.util.Map<java.lang.String,java.lang.Double> UNITS_TO_METERS
private static final java.util.Map<java.lang.String,java.lang.Double> PRIME_MERIDANS
protected java.lang.String pref
protected java.lang.String name
protected java.lang.String code
protected java.lang.String cacheDir
private double metersPerUnitWMTS
private java.lang.String axis
private java.util.EnumMap<CustomProjection.Polarity,EastNorth> polesEN
private java.util.EnumMap<CustomProjection.Polarity,LatLon> polesLL
public CustomProjection()
CustomProjection
.public CustomProjection(java.lang.String pref)
CustomProjection
with given parameters.pref
- String containing projection parameters
(ex: "+proj=tmerc +lon_0=-3 +k_0=0.9996 +x_0=500000 +ellps=WGS84 +datum=WGS84 +bounds=-8,-5,2,85")public CustomProjection(java.lang.String name, java.lang.String code, java.lang.String pref, java.lang.String cacheDir)
CustomProjection
with given name, code and parameters.name
- describe projection in one or two wordscode
- unique code for this projection - may be nullpref
- the string that defines the custom projectioncacheDir
- cache directory namepublic final void update(java.lang.String pref) throws ProjectionConfigurationException
CustomProjection
with given parameters.pref
- String containing projection parameters (ex: "+proj=lonlat +ellps=WGS84 +datum=WGS84 +bounds=-180,-90,180,90")ProjectionConfigurationException
- if pref
cannot be parsed properlypublic static java.util.Map<java.lang.String,java.lang.String> parseParameterList(java.lang.String pref, boolean ignoreUnknownParameter) throws ProjectionConfigurationException
pref
- the parameter listignoreUnknownParameter
- true, if unknown parameter should not raise exceptionProjectionConfigurationException
- in case of invalid parameterpublic static java.util.Map<java.lang.String,java.lang.String> resolveInits(java.util.Map<java.lang.String,java.lang.String> parameters, boolean ignoreUnknownParameter) throws ProjectionConfigurationException
parameters
- parameters mapignoreUnknownParameter
- true, if unknown parameter should not raise exceptionProjectionConfigurationException
- in case of invalid parameterpublic Ellipsoid parseEllipsoid(java.util.Map<java.lang.String,java.lang.String> parameters) throws ProjectionConfigurationException
ProjectionConfigurationException
public Datum parseDatum(java.util.Map<java.lang.String,java.lang.String> parameters, Ellipsoid ellps) throws ProjectionConfigurationException
ProjectionConfigurationException
public Datum parseToWGS84(java.lang.String paramList, Ellipsoid ellps) throws ProjectionConfigurationException
ProjectionConfigurationException
public Proj parseProjection(java.util.Map<java.lang.String,java.lang.String> parameters, Ellipsoid ellps) throws ProjectionConfigurationException
ProjectionConfigurationException
public static Bounds parseBounds(java.lang.String boundsStr) throws ProjectionConfigurationException
ProjectionConfigurationException
public static double parseDouble(java.util.Map<java.lang.String,java.lang.String> parameters, java.lang.String parameterName) throws ProjectionConfigurationException
ProjectionConfigurationException
public static double parseDouble(java.lang.String doubleStr, java.lang.String parameterName) throws ProjectionConfigurationException
ProjectionConfigurationException
public static double parseAngle(java.lang.String angleStr, java.lang.String parameterName) throws ProjectionConfigurationException
ProjectionConfigurationException
public java.lang.Integer getEpsgCode()
getEpsgCode
in class AbstractProjection
public java.lang.String toCode()
AbstractProjection
toCode
in interface Projection
toCode
in class AbstractProjection
public java.lang.String getCacheDirectoryName()
Projection
public Bounds getWorldBoundsLatLon()
Projection
public java.lang.String toString()
Projection
toString
in interface Projection
toString
in class java.lang.Object
public double getMetersPerUnit()
public boolean switchXY()
Projection
private static java.util.Map<java.lang.String,java.lang.Double> getUnitsToMeters()
private static java.util.Map<java.lang.String,java.lang.Double> getPrimeMeridians()
private EastNorth getPointAlong(int i, int N, ProjectionBounds r)
private EastNorth getPole(CustomProjection.Polarity whichPole)
public Bounds getLatLonBoundsBox(ProjectionBounds r)
Projection
r
- the rectangle in projected spacepb