You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
381 lines
8.3 KiB
C++
381 lines
8.3 KiB
C++
// Copyright 2008, Google Inc. All rights reserved.
|
|
//
|
|
// Redistribution and use in source and binary forms, with or without
|
|
// modification, are permitted provided that the following conditions are met:
|
|
//
|
|
// 1. Redistributions of source code must retain the above copyright notice,
|
|
// this list of conditions and the following disclaimer.
|
|
// 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
// this list of conditions and the following disclaimer in the documentation
|
|
// and/or other materials provided with the distribution.
|
|
// 3. Neither the name of Google Inc. nor the names of its contributors may be
|
|
// used to endorse or promote products derived from this software without
|
|
// specific prior written permission.
|
|
//
|
|
// THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
|
// WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
// MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
|
// EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
// This file defines the id of each element.
|
|
|
|
// The element names exactly match the OGC KML 2.2 Standard:
|
|
// http://www.opengeospatial.org/standards/kml
|
|
// See also Google's reference especially for the "gx" elements:
|
|
// http://code.google.com/apis/kml/documentation/kmlreference.html
|
|
// Type_${element_name}
|
|
|
|
#ifndef KML_DOM_KML22_H
|
|
#define KML_DOM_KML22_H
|
|
|
|
namespace kmldom {
|
|
|
|
// This list matches kml22_elements_[] exactly:
|
|
typedef enum {
|
|
Type_Unknown,
|
|
|
|
Type_ColorStyle,
|
|
Type_Container,
|
|
Type_Feature,
|
|
Type_Geometry,
|
|
Type_AbstractLatLonBox,
|
|
Type_Object,
|
|
Type_Overlay,
|
|
Type_StyleSelector,
|
|
Type_SubStyle,
|
|
Type_TimePrimitive,
|
|
Type_AbstractView,
|
|
Type_BasicLink,
|
|
Type_Vec2,
|
|
|
|
Type_Alias,
|
|
Type_BalloonStyle,
|
|
Type_Camera,
|
|
Type_Change,
|
|
Type_Create,
|
|
Type_Data,
|
|
Type_Delete,
|
|
Type_Document,
|
|
Type_ExtendedData,
|
|
Type_Folder,
|
|
Type_GroundOverlay,
|
|
Type_Icon,
|
|
Type_IconStyle,
|
|
Type_IconStyleIcon,
|
|
Type_ImagePyramid,
|
|
Type_ItemIcon,
|
|
Type_LabelStyle,
|
|
Type_LatLonAltBox,
|
|
Type_LatLonBox,
|
|
Type_LineString,
|
|
Type_LineStyle,
|
|
Type_LinearRing,
|
|
Type_Link,
|
|
Type_ListStyle,
|
|
Type_Location,
|
|
Type_Lod,
|
|
Type_LookAt,
|
|
Type_Metadata,
|
|
Type_Model,
|
|
Type_MultiGeometry,
|
|
Type_NetworkLink,
|
|
Type_NetworkLinkControl,
|
|
Type_Orientation,
|
|
Type_Pair,
|
|
Type_PhotoOverlay,
|
|
Type_Placemark,
|
|
Type_Point,
|
|
Type_PolyStyle,
|
|
Type_Polygon,
|
|
Type_Region,
|
|
Type_ResourceMap,
|
|
Type_Scale,
|
|
Type_Schema,
|
|
Type_SchemaData,
|
|
Type_ScreenOverlay,
|
|
Type_SimpleData,
|
|
Type_SimpleField,
|
|
Type_Snippet,
|
|
Type_Style,
|
|
Type_StyleMap,
|
|
Type_TimeSpan,
|
|
Type_TimeStamp,
|
|
Type_Update,
|
|
Type_Url,
|
|
Type_ViewVolume,
|
|
|
|
Type_address,
|
|
Type_altitude,
|
|
Type_altitudeMode,
|
|
Type_altitudeModeGroup,
|
|
Type_begin,
|
|
Type_bgColor,
|
|
Type_bottomFov,
|
|
Type_color,
|
|
Type_colorMode,
|
|
Type_cookie,
|
|
Type_coordinates,
|
|
Type_description,
|
|
Type_displayMode,
|
|
Type_displayName,
|
|
Type_drawOrder,
|
|
Type_east,
|
|
Type_end,
|
|
Type_expires,
|
|
Type_extrude,
|
|
Type_fill,
|
|
Type_flyToView,
|
|
Type_gridOrigin,
|
|
Type_heading,
|
|
Type_hotSpot,
|
|
Type_href,
|
|
Type_httpQuery,
|
|
Type_innerBoundaryIs,
|
|
Type_key,
|
|
Type_kml,
|
|
Type_latitude,
|
|
Type_leftFov,
|
|
Type_linkDescription,
|
|
Type_linkName,
|
|
Type_linkSnippet,
|
|
Type_listItemType,
|
|
Type_longitude,
|
|
Type_maxAltitude,
|
|
Type_maxFadeExtent,
|
|
Type_maxHeight,
|
|
Type_maxLength,
|
|
Type_maxLodPixels,
|
|
Type_maxSessionLength,
|
|
Type_maxSnippetLines,
|
|
Type_maxWidth,
|
|
Type_message,
|
|
Type_minAltitude,
|
|
Type_minFadeExtent,
|
|
Type_minLodPixels,
|
|
Type_minRefreshPeriod,
|
|
Type_name,
|
|
Type_near,
|
|
Type_north,
|
|
Type_open,
|
|
Type_outerBoundaryIs,
|
|
Type_outline,
|
|
Type_overlayXY,
|
|
Type_phoneNumber,
|
|
Type_range,
|
|
Type_refreshInterval,
|
|
Type_refreshMode,
|
|
Type_refreshVisibility,
|
|
Type_rightFov,
|
|
Type_roll,
|
|
Type_rotation,
|
|
Type_rotationXY,
|
|
Type_scale,
|
|
Type_screenXY,
|
|
Type_shape,
|
|
Type_size,
|
|
Type_snippet,
|
|
Type_sourceHref,
|
|
Type_south,
|
|
Type_state,
|
|
Type_styleUrl,
|
|
Type_targetHref,
|
|
Type_tessellate,
|
|
Type_text,
|
|
Type_textColor,
|
|
Type_tileSize,
|
|
Type_tilt,
|
|
Type_topFov,
|
|
Type_units,
|
|
Type_value,
|
|
Type_viewBoundScale,
|
|
Type_viewFormat,
|
|
Type_viewRefreshMode,
|
|
Type_viewRefreshTime,
|
|
Type_visibility,
|
|
Type_west,
|
|
Type_when,
|
|
Type_width,
|
|
Type_x,
|
|
Type_y,
|
|
Type_z,
|
|
|
|
Type_AtomAuthor,
|
|
Type_AtomCategory,
|
|
Type_AtomContent,
|
|
Type_AtomEntry,
|
|
Type_AtomFeed,
|
|
Type_AtomLink,
|
|
|
|
Type_atomEmail,
|
|
Type_atomId,
|
|
Type_atomLabel,
|
|
Type_atomName,
|
|
Type_atomScheme,
|
|
Type_atomSummary,
|
|
Type_atomTerm,
|
|
Type_atomTitle,
|
|
Type_atomUpdated,
|
|
Type_atomUri,
|
|
|
|
Type_XalAddressDetails,
|
|
Type_XalAdministrativeArea,
|
|
Type_XalCountry,
|
|
Type_XalLocality,
|
|
Type_XalPostalCode,
|
|
Type_XalSubAdministrativeArea,
|
|
Type_XalThoroughfare,
|
|
|
|
Type_xalAdministrativeAreaName,
|
|
Type_xalCountryNameCode,
|
|
Type_xalLocalityName,
|
|
Type_xalPostalCodeNumber,
|
|
Type_xalSubAdministrativeAreaName,
|
|
Type_xalThoroughfareName,
|
|
Type_xalThoroughfareNumber,
|
|
|
|
Type_GxTourPrimitive,
|
|
|
|
Type_GxAnimatedUpdate,
|
|
Type_GxFlyTo,
|
|
Type_GxLatLonQuad,
|
|
Type_GxMultiTrack,
|
|
Type_GxPlaylist,
|
|
Type_GxSimpleArrayData,
|
|
Type_GxSimpleArrayField,
|
|
Type_GxSoundCue,
|
|
Type_GxTimeSpan,
|
|
Type_GxTimeStamp,
|
|
Type_GxTour,
|
|
Type_GxTourControl,
|
|
Type_GxTrack,
|
|
Type_GxWait,
|
|
|
|
Type_GxAltitudeMode,
|
|
Type_GxAngles,
|
|
Type_GxBalloonVisibility,
|
|
Type_GxCoord,
|
|
Type_GxDuration,
|
|
Type_GxFlyToMode,
|
|
Type_GxH,
|
|
Type_GxInterpolate,
|
|
Type_GxPlayMode,
|
|
Type_GxValue,
|
|
Type_GxW,
|
|
Type_GxX,
|
|
Type_GxY,
|
|
|
|
Type_Invalid
|
|
} KmlDomType;
|
|
|
|
// The value of each enum is the offset to the corresponding string in the
|
|
// kKml22Enums table. The enum type name here is the element name with first
|
|
// char folded up to be consistent with the convention of type names starting
|
|
// with an upper case letter, hence <altitudeMode>'s enum values are of type
|
|
// AltitudeModeEnum. Each enum value repeats the name of the element with all
|
|
// chars folded up followed by an underscore followed by the name of the
|
|
// enumeration value folded to upper case. Thus DOM API code examining a
|
|
// <LookAt>'s <altitudeMode> might be as follows:
|
|
//
|
|
// AltitudeModeEnum altitudemode = lookat->altitudemode();
|
|
// switch (altitudemode) {
|
|
// case ALTITUDEMODE_CLAMPTOGROUND:
|
|
// ...
|
|
// case ALTITUDEMODE_RELATIVETOGROUND:
|
|
// ...
|
|
// case ALTITUDEMODE_ABSOLUTE
|
|
// ...
|
|
// default:
|
|
// // unknown altitudeMode
|
|
// };
|
|
|
|
typedef enum {
|
|
ALTITUDEMODE_CLAMPTOGROUND = 0,
|
|
ALTITUDEMODE_RELATIVETOGROUND,
|
|
ALTITUDEMODE_ABSOLUTE
|
|
} AltitudeModeEnum;
|
|
|
|
typedef enum {
|
|
COLORMODE_NORMAL = 0,
|
|
COLORMODE_RANDOM
|
|
} ColorModeEnum;
|
|
|
|
typedef enum {
|
|
DISPLAYMODE_DEFAULT = 0,
|
|
DISPLAYMODE_HIDE
|
|
} DisplayModeEnum;
|
|
|
|
typedef enum {
|
|
GRIDORIGIN_LOWERLEFT = 0,
|
|
GRIDORIGIN_UPPERLEFT
|
|
} GridOriginEnum;
|
|
|
|
typedef enum {
|
|
ITEMICONSTATE_OPEN = 0,
|
|
ITEMICONSTATE_CLOSED,
|
|
ITEMICONSTATE_ERROR,
|
|
ITEMICONSTATE_FETCHING0,
|
|
ITEMICONSTATE_FETCHING1,
|
|
ITEMICONSTATE_FETCHING2
|
|
} ItemIconStateEnum;
|
|
|
|
typedef enum {
|
|
LISTITEMTYPE_CHECK = 0,
|
|
LISTITEMTYPE_RADIOFOLDER,
|
|
LISTITEMTYPE_CHECKOFFONLY,
|
|
LISTITEMTYPE_CHECKHIDECHILDREN
|
|
} ListItemTypeEnum;
|
|
|
|
typedef enum {
|
|
REFRESHMODE_ONCHANGE = 0,
|
|
REFRESHMODE_ONINTERVAL,
|
|
REFRESHMODE_ONEXPIRE
|
|
} RefreshModeEnum;
|
|
|
|
typedef enum {
|
|
SHAPE_RECTANGLE = 0,
|
|
SHAPE_CYLINDER,
|
|
SHAPE_SPHERE
|
|
} ShapeEnum;
|
|
|
|
typedef enum {
|
|
STYLESTATE_NORMAL = 0,
|
|
STYLESTATE_HIGHLIGHT
|
|
} StyleStateEnum;
|
|
|
|
typedef enum {
|
|
UNITS_FRACTION = 0,
|
|
UNITS_PIXELS,
|
|
UNITS_INSETPIXELS
|
|
} UnitsEnum;
|
|
|
|
typedef enum {
|
|
VIEWREFRESHMODE_NEVER = 0,
|
|
VIEWREFRESHMODE_ONREQUEST,
|
|
VIEWREFRESHMODE_ONSTOP,
|
|
VIEWREFRESHMODE_ONREGION
|
|
} ViewRefreshModeEnum;
|
|
|
|
typedef enum {
|
|
GX_ALTITUDEMODE_CLAMPTOSEAFLOOR = 0,
|
|
GX_ALTITUDEMODE_RELATIVETOSEAFLOOR
|
|
} GxAltitudeModeEnum;
|
|
|
|
typedef enum {
|
|
GX_FLYTOMODE_BOUNCE = 0,
|
|
GX_FLYTOMODE_SMOOTH
|
|
} GxFlyToModeEnum;
|
|
|
|
typedef enum {
|
|
GX_PLAYMODE_PAUSE = 0
|
|
} GxPlayModeEnum;
|
|
|
|
} // end namespace kmldom
|
|
|
|
#endif // KML_DOM_KML22_H__
|