FDO .NET API Reference Feature Data Objects

mgICreateSpatialContextImp.h

Go to the documentation of this file.
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.