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