FDO .NET API Reference | Feature Data Objects |
00001 /* 00002 * Copyright (C) 2004-2006 Autodesk, Inc. 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of version 2.1 of the GNU Lesser 00006 * General Public License as published by the Free Software Foundation. 00007 * 00008 * This library is distributed in the hope that it will be useful, 00009 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00010 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00011 * Lesser General Public License for more details. 00012 * 00013 * You should have received a copy of the GNU Lesser General Public 00014 * License along with this library; if not, write to the Free Software 00015 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 00016 * 00017 */ 00018 00019 #pragma once 00020 00021 #include "FDO\Commands\mgICommandImp.h" 00022 #include "FDO\Commands\SpatialContext\mgICreateSpatialContext.h" 00023 #include "FDO\Commands\SpatialContext\mgSpatialContextExtentType.h" 00024 00025 class FdoICreateSpatialContext; 00026 00027 BEGIN_NAMESPACE_OSGEO_FDO_COMMANDS_SPATIALCONTEXT 00028 00029 /// \ingroup (OSGeoFDOCommandsSpatialContext) 00030 /// \brief 00031 /// The ICreateSpatialContextImp class is a concrete implementation of ICreateSpatialContext. 00032 /// The ICreateSpatialContext interface defines the CreateSpatialContext 00033 /// command, which creates a new spatial context. Input to the command includes 00034 /// the name, description, coordinate system, extent type, and extent for the 00035 /// new context. Command execution will fail if the context already exists, or 00036 /// if the coordinate system or extent type is not supported by the provider. 00037 /// <p><b>Note:</b> The geographic extent of a coordinate system should generally be 00038 /// defined as an envelope (or bounding box). However, any geometry type that 00039 /// falls into the surface geometric types can be used (e.g., polygons). If a 00040 /// non-rectangular area is passed in and the provider supports only a 00041 /// rectangular extent, the provider will compute the minimum box that 00042 /// encloses the given geometry and use that for the extent value. 00043 private __gc class ICreateSpatialContextImp : public NAMESPACE_OSGEO_FDO_COMMANDS::ICommandImp, 00044 public NAMESPACE_OSGEO_FDO_COMMANDS_SPATIALCONTEXT::ICreateSpatialContext 00045 { 00046 public: 00047 /// \brief 00048 /// Gets the name of the context to create as a string. 00049 /// 00050 /// \return 00051 /// Returns the name of the spatial context 00052 /// 00053 __property System::String* get_Name(); 00054 00055 /// \brief 00056 /// Sets the name of the context to create as a string. 00057 /// 00058 /// \param value 00059 /// Input the name of the spatial context 00060 /// 00061 /// \return 00062 /// Returns nothing 00063 /// 00064 __property System::Void set_Name(System::String* value); 00065 00066 /// \brief 00067 /// Gets the description of the context to create as a string. 00068 /// 00069 /// \return 00070 /// Returns the description of the spatial context 00071 /// 00072 __property System::String* get_Description(); 00073 00074 /// \brief 00075 /// Sets the description of the context to create as a string. 00076 /// 00077 /// \param value 00078 /// Input the description of the spatial context 00079 /// 00080 /// \return 00081 /// Returns nothing 00082 /// 00083 __property System::Void set_Description(System::String* value); 00084 00085 /// \brief 00086 /// Gets the coordinate system of the context to create as a string 00087 /// in OpenGIS SRS WKT format. 00088 /// 00089 /// \return 00090 /// Returns the coordinate system 00091 /// 00092 __property System::String* get_CoordinateSystem(); 00093 00094 /// \brief 00095 /// Sets the coordinate system of the context to create as a string in 00096 /// OpenGIS SRS WKT format. 00097 /// 00098 /// \param value 00099 /// Input the coordinate system 00100 /// 00101 /// \return 00102 /// Returns nothing 00103 /// 00104 __property System::Void set_CoordinateSystem(System::String* value); 00105 00106 /// \brief 00107 /// Gets the coordinate system definition in OGC SRS WKT format for the 00108 /// spatial context currently being created. If the result is an empty string, 00109 /// the coordinate system WKT description has not been set. 00110 /// 00111 /// \return 00112 /// Returns the coordinate system description in WKT of of the spatial context. 00113 /// 00114 __property System::String* get_CoordinateSystemWkt(); 00115 00116 /// \brief 00117 /// Sets the coordinate system definition in OGC SRS WKT 00118 /// format for the spatial context currently being created. 00119 /// 00120 /// \param value 00121 /// Input the coordinate system WKT 00122 /// 00123 /// \return 00124 /// Returns nothing 00125 /// 00126 __property System::Void set_CoordinateSystemWkt(System::String* value); 00127 00128 /// \brief 00129 /// Gets the desired extent type of the context to create, either static or dynamic. 00130 /// 00131 /// \return 00132 /// Returns the extent type 00133 /// 00134 __property NAMESPACE_OSGEO_FDO_COMMANDS_SPATIALCONTEXT::SpatialContextExtentType get_ExtentType(); 00135 00136 /// \brief 00137 /// Sets the desired extent type of the context to create, either static or dynamic. 00138 /// 00139 /// \param value 00140 /// Input the extent type 00141 /// 00142 /// \return 00143 /// Returns nothing 00144 /// 00145 __property System::Void set_ExtentType(NAMESPACE_OSGEO_FDO_COMMANDS_SPATIALCONTEXT::SpatialContextExtentType value); 00146 00147 /// \brief 00148 /// Gets the extent of the context to create as a byte array in FGF format. 00149 /// If the extent type is dynamic, any value specified via this function is ignored. 00150 /// 00151 /// \return 00152 /// Returns the extent of the spatial context 00153 /// 00154 __property System::Byte get_Extent() []; 00155 00156 /// \brief 00157 /// Sets the extent of the context to create as a byte array in FGF format. 00158 /// If the extent type is dynamic this is optional and any value specified is ignored. 00159 /// 00160 /// \param buffer 00161 /// Input the extent of the spatial context 00162 /// 00163 /// \return 00164 /// Returns nothing 00165 /// 00166 __property System::Void set_Extent(System::Byte buffer[]); 00167 00168 /// \brief 00169 /// Gets the tolerance value to use for X/Y ordinates. Tolerances are used 00170 /// in some geometric tests, mostly for equality between coordinates. This 00171 /// occurs frequently in spatial queries, especially with "on boundary" or "just 00172 /// touching" conditions. It is also an objective amount that can be used 00173 /// when formulating step distances for parametric curve interpolation. 00174 /// 00175 /// \return 00176 /// Returns the tolerance 00177 /// 00178 __property System::Double get_XYTolerance(); 00179 00180 /// \brief 00181 /// Sets the tolerance value to use for X/Y ordinates. Tolerances are used 00182 /// in some geometric tests, mostly for equality between coordinates. This 00183 /// occurs frequently in spatial queries, especially with "on boundary" or "just 00184 /// touching" conditions. It is also an objective amount that can be used 00185 /// when formulating step distances for parametric curve interpolation. 00186 /// 00187 /// \param value 00188 /// Input the tolerance 00189 /// 00190 /// \return 00191 /// Returns nothing 00192 /// 00193 __property System::Void set_XYTolerance(System::Double value); 00194 00195 /// \brief 00196 /// Gets the tolerance value to use for Z ordinates. Tolerances are used in 00197 /// some geometric tests, mostly for equality between coordinates. This 00198 /// occurs frequently in spatial queries, especially with "on boundary" or "just 00199 /// touching" conditions. It is also an objective amount that can be used 00200 /// when formulating step distances for parametric curve interpolation. 00201 /// 00202 /// \return 00203 /// Returns the tolerance 00204 /// 00205 __property System::Double get_ZTolerance(); 00206 /// \brief 00207 /// Sets the tolerance value to use for Z ordinates. Tolerances are used in 00208 /// some geometric tests, mostly for equality between coordinates. This 00209 /// occurs frequently in spatial queries, especially with "on boundary" or "just 00210 /// touching" conditions. It is also an objective amount that can be used 00211 /// when formulating step distances for parametric curve interpolation. 00212 /// 00213 /// \param value 00214 /// Input the tolerance 00215 /// 00216 /// \return 00217 /// Returns nothing 00218 /// 00219 __property System::Void set_ZTolerance(System::Double value); 00220 00221 /// \brief 00222 /// Gets a Boolean flag that indicates how the CreateSpatialContext command 00223 /// should behave if the spatial context already exists. If update existing 00224 /// is true and a spatial context with the specified name already exists 00225 /// then it will be updated. If update existing is false and a spatial 00226 /// context with the specified name already exists, command execution 00227 /// will fail. 00228 /// 00229 /// \return 00230 /// Returns true if command should update existing contexts 00231 /// 00232 __property System::Boolean get_UpdateExisting(); 00233 00234 /// \brief 00235 /// Sets a Boolean flag that indicates how the CreateSpatialContext command 00236 /// should behave if the spatial context already exists. If update existing 00237 /// is true and a spatial context with the specified name already exists 00238 /// then it will be updated. If update existing is false and a spatial 00239 /// context with the specified name already exists, command execution 00240 /// will fail. 00241 /// 00242 /// \param value 00243 /// Input true if existing contexts should be updated 00244 /// 00245 /// \return 00246 /// Returns nothing 00247 /// 00248 __property System::Void set_UpdateExisting(System::Boolean value); 00249 00250 /// \brief 00251 /// Executes the CreateSpatialContext command. An exception is thrown if 00252 /// the spatial context already exists, or if the coordinate system or 00253 /// extent type is not supported by the provider. 00254 /// 00255 /// \return 00256 /// Returns nothing 00257 /// 00258 System::Void Execute(); 00259 00260 public private: 00261 ICreateSpatialContextImp(System::IntPtr unmanaged, System::Boolean autoDelete) : NAMESPACE_OSGEO_FDO_COMMANDS::ICommandImp(unmanaged, autoDelete) 00262 { 00263 00264 } 00265 00266 inline FdoICreateSpatialContext* GetImpObj(); 00267 }; 00268 00269 END_NAMESPACE_OSGEO_FDO_COMMANDS_SPATIALCONTEXT 00270 00271
Comments or suggestions? Send us feedback. |