package com.revolsys.record.io.format.gpx;
import javax.xml.namespace.QName;
import com.revolsys.datatype.DataType;
import com.revolsys.datatype.DataTypes;
import com.revolsys.geometry.model.GeometryFactory;
import com.revolsys.io.PathName;
import com.revolsys.record.schema.RecordDefinitionImpl;
public final class GpxConstants {
public static final String GPX_NS = "gpx";
public static final String GPX_NS_URI = "http://www.topografix.com/GPX/1/1";
public static final QName COMMENT_ELEMENT = new QName(GPX_NS_URI, "cmt");
public static final QName CREATOR_ATTRIBUTE = new QName(null, "creator");
public static final QName DESCRIPTION_ELEMENT = new QName(GPX_NS_URI, "desc");
public static final QName ELEVATION_ELEMENT = new QName(GPX_NS_URI, "ele");
public static final QName EXTENSION_ELEMENT = new QName(GPX_NS_URI, "extensions");
public static final GeometryFactory GEOMETRY_FACTORY = GeometryFactory.floating3(4326);
public static final QName GPX_ELEMENT = new QName(GPX_NS_URI, "gpx");
public static final RecordDefinitionImpl GPX_ROUTE = new RecordDefinitionImpl(
PathName.newPathName("/gpx/route"));
public static final RecordDefinitionImpl GPX_TRACK = new RecordDefinitionImpl(
PathName.newPathName("/gpx/track"));
public static final RecordDefinitionImpl GPX_TYPE = new RecordDefinitionImpl(
PathName.newPathName("/gpx"));
public static final RecordDefinitionImpl GPX_WAYPOINT = new RecordDefinitionImpl(
PathName.newPathName("/gpx/waypoint"));
public static final QName LAT_ATTRIBUTE = new QName(null, "lat");
public static final QName LON_ATTRIBUTE = new QName(null, "lon");
public static final QName METADATA_ELEMENT = new QName(GPX_NS_URI, "metadata");
public static final QName NAME_ELEMENT = new QName(GPX_NS_URI, "name");
public static final QName ROUTE_ELEMENT = new QName(GPX_NS_URI, "rte");
public static final QName ROUTE_POINT_ELEMENT = new QName(GPX_NS_URI, "rtept");
public static final QName SYM_ELEMENT = new QName(GPX_NS_URI, "sym");
public static final QName TIME_ELEMENT = new QName(GPX_NS_URI, "time");
public static final QName TRACK_ELEMENT = new QName(GPX_NS_URI, "trk");
public static final QName TRACK_POINT_ELEMENT = new QName(GPX_NS_URI, "trkpt");
public static final QName TRACK_SEGMENT_ELEMENT = new QName(GPX_NS_URI, "trkseg");
public static final QName TYPE_ELEMENT = new QName(GPX_NS_URI, "type");
public static final QName VERSION_ATTRIBUTE = new QName(null, "version");
public static final QName WAYPOINT_ELEMENT = new QName(GPX_NS_URI, "wpt");
static {
addField("dataset_name", DataTypes.STRING, false);
addField("index", DataTypes.DOUBLE, false);
addField("feature_type", DataTypes.STRING, false);
addField("time", DataTypes.DATE_TIME, false);
addField("magvar", DataTypes.DOUBLE, false);
addField("geoidheight", DataTypes.DOUBLE, false);
addField("name", DataTypes.STRING, false);
addField("cmt", DataTypes.STRING, false);
addField("desc", DataTypes.STRING, false);
addField("src", DataTypes.STRING, false);
addField("number", DataTypes.INT, false);
addField("link", DataTypes.STRING, false);
addField("sym", DataTypes.STRING, false);
addField("type", DataTypes.STRING, false);
addField("fix", DataTypes.STRING, false);
addField("sat", DataTypes.INT, false);
addField("hdop", DataTypes.DOUBLE, false);
addField("vdop", DataTypes.DOUBLE, false);
addField("pdop", DataTypes.DOUBLE, false);
addField("ageofdgpsdata", DataTypes.DOUBLE, false);
addField("dgpsid", DataTypes.STRING, false);
GPX_TYPE.addField("location", DataTypes.GEOMETRY, true);
GPX_TYPE.setGeometryFactory(GEOMETRY_FACTORY);
GPX_WAYPOINT.addField("geometry", DataTypes.POINT, true);
GPX_WAYPOINT.setGeometryFactory(GEOMETRY_FACTORY);
GPX_TRACK.addField("geometry", DataTypes.GEOMETRY, true);
GPX_TRACK.setGeometryFactory(GEOMETRY_FACTORY);
GPX_ROUTE.addField("geometry", DataTypes.LINE_STRING, true);
GPX_ROUTE.setGeometryFactory(GEOMETRY_FACTORY);
}
private static void addField(final String name, final DataType type, final boolean required) {
GPX_TYPE.addField(name, type, required);
GPX_WAYPOINT.addField(name, type, required);
GPX_TRACK.addField(name, type, required);
GPX_ROUTE.addField(name, type, required);
}
private GpxConstants() {
}
}