Line data Source code
1 : /****************************************************************************** 2 : * $Id$ 3 : * 4 : * Project: KML Driver 5 : * Purpose: KML driver utilities 6 : * Author: Jens Oberender, j.obi@troja.net 7 : * 8 : ****************************************************************************** 9 : * Copyright (c) 2007, Jens Oberender 10 : * Copyright (c) 2009, Even Rouault <even dot rouault at spatialys.com> 11 : * 12 : * SPDX-License-Identifier: MIT 13 : ****************************************************************************/ 14 : #ifndef OGR_KMLUTILITY_H_INCLUDED 15 : #define OGR_KMLUTILITY_H_INCLUDED 16 : 17 : #include <string> 18 : #include <vector> 19 : #include "ogr_geometry.h" 20 : 21 : namespace OGRKML 22 : { 23 : 24 : enum Nodetype 25 : { 26 : Unknown, 27 : Empty, 28 : Mixed, 29 : Point, 30 : LineString, 31 : Polygon, 32 : Rest, 33 : MultiGeometry, 34 : MultiPoint, 35 : MultiLineString, 36 : MultiPolygon 37 : }; 38 : 39 : struct Attribute 40 : { 41 : std::string sName; 42 : std::string sValue; 43 : }; 44 : 45 : struct Coordinate 46 : { 47 : double dfLongitude; 48 : double dfLatitude; 49 : double dfAltitude; 50 : bool bHasZ; 51 : 52 6469 : Coordinate() : dfLongitude(0), dfLatitude(0), dfAltitude(0), bHasZ(false) 53 : { 54 6469 : } 55 : }; 56 : 57 : struct Feature 58 : { 59 : Nodetype eType; 60 : std::string sName; 61 : std::string sDescription; 62 : OGRGeometry *poGeom; 63 : 64 727 : Feature() : eType(Unknown), poGeom(nullptr) 65 : { 66 727 : } 67 : 68 727 : ~Feature() 69 727 : { 70 727 : delete poGeom; 71 727 : } 72 : }; 73 : 74 : } // namespace OGRKML 75 : 76 : using namespace OGRKML; 77 : 78 : #endif /* OGR_KMLUTILITY_H_INCLUDED */