org.h2gis.functions.io.kml.AltitudeMode Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of h2gis Show documentation
Show all versions of h2gis Show documentation
Main module of the H2GIS distribution. It extends H2 by adding spatial storage and analysis
capabilities.
The newest version!
/**
* H2GIS is a library that brings spatial support to the H2 Database Engine
* http://www.h2database.com. H2GIS is developed by CNRS
* http://www.cnrs.fr/.
*
* This code is part of the H2GIS project. H2GIS is free software;
* you can redistribute it and/or modify it under the terms of the GNU
* Lesser General Public License as published by the Free Software Foundation;
* version 3.0 of the License.
*
* H2GIS is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
* for more details .
*
*
* For more information, please consult: http://www.h2gis.org/
* or contact directly: info_at_h2gis.org
*/
package org.h2gis.functions.io.kml;
/**
* Specifies how altitude components in the {@code } element are
* interpreted. Possible values are
*
* - clampToGround - (default) Indicates to ignore an altitude specification
* (for example, in the {@code } tag).
*
* - relativeToGround - Sets the altitude of the element relative to the actual
* ground elevation of a particular location. For example, if the ground
* elevation of a location is exactly at sea level and the altitude for a point
* is set to 9 meters, then the elevation for the icon of a point placemark
* elevation is 9 meters with this mode. However, if the same coordinate is set
* over a location where the ground elevation is 10 meters above sea level, then
* the elevation of the coordinate is 19 meters. A typical use of this mode is
* for placing telephone poles or a ski lift.
*
* - absolute - Sets the altitude of the coordinate relative to sea level,
* regardless of the actual elevation of the terrain beneath the element. For
* example, if you set the altitude of a coordinate to 10 meters with an
* absolute altitude mode, the icon of a point placemark will appear to be at
* ground level if the terrain beneath is also 10 meters above sea level. If the
* terrain is 3 meters above sea level, the placemark will appear elevated above
* the terrain by 7 meters. A typical use of this mode is for aircraft
* placement.
*
*
* @author Erwan Bocher
*/
public final class AltitudeMode {
public static final int KML_CLAMPTOGROUND = 1;
public static final int KML_RELATIVETOGROUND = 2;
public static final int KML_ABSOLUTE = 4;
public static final int GX_CLAMPTOSEAFLOOR = 8;
public static final int GX_RELATIVETOSEAFLOOR = 16;
public static final int NONE = 0;
/**
* Default constructor
*/
private AltitudeMode() {
}
/**
* Generate a string value corresponding to the altitude mode.
*
*
* @param altitudeMode
* @param sb
*/
public static void append(int altitudeMode, StringBuilder sb) {
switch (altitudeMode) {
case KML_CLAMPTOGROUND:
sb.append("clampToGround ");
return;
case KML_RELATIVETOGROUND:
sb.append("relativeToGround ");
return;
case KML_ABSOLUTE:
sb.append("absolute ");
return;
case GX_CLAMPTOSEAFLOOR:
sb.append("clampToSeaFloor ");
return;
case GX_RELATIVETOSEAFLOOR:
sb.append("relativeToSeaFloor ");
return;
case NONE:
return;
default:
throw new IllegalArgumentException("Supported altitude modes are: \n"
+ " For KML profils: CLAMPTOGROUND = 1; RELATIVETOGROUND = 2; ABSOLUTE = 4;\n"
+ "For GX profils: CLAMPTOSEAFLOOR = 8; RELATIVETOSEAFLOOR = 16; \n"
+ " No altitude: NONE = 0");
}
}
}