| 1 | |
| 2 | |
| 3 | = FDO RFC 5 - Modify Fdo API !FdoFunctionDefinition = |
| 4 | |
| 5 | This page contains a request for comments document (RFC) for the FDO Open Source project. |
| 6 | More FDO RFCs can be found on the [wiki:FDORfcs RFCs] page. |
| 7 | |
| 8 | == Status == |
| 9 | |
| 10 | ||RFC Template Version||(1.0)|| |
| 11 | ||Submission Date|||| |
| 12 | ||Last Modified||Klain Qin [[Timestamp]]|| |
| 13 | ||Author||Klain Qin|| |
| 14 | ||RFC Status||Draft|| |
| 15 | ||Implementation Status ||Under Development|| |
| 16 | ||Proposed Milestone||3.3.0.0|| |
| 17 | ||Assigned PSC guide(s)||Greg Boone|| |
| 18 | ||'''Voting History'''|| || |
| 19 | ||+1|||| |
| 20 | ||+0|||| |
| 21 | ||-0|||| |
| 22 | ||-1|||| |
| 23 | |
| 24 | == Overview == |
| 25 | |
| 26 | The purpose is to add support to additional parameters and bit-depth variations to image formats. |
| 27 | |
| 28 | Currently, WMS Provider supports four image formats: image/png, image/jpg, image/tif, image/gif. They are defined as: |
| 29 | enum FdoWmsOvFormatType{ |
| 30 | |
| 31 | FdoWmsOvFormatType_Png = 0, |
| 32 | FdoWmsOvFormatType_Tif, |
| 33 | FdoWmsOvFormatType_Jpg, |
| 34 | FdoWmsOvFormatType_Gif |
| 35 | }; |
| 36 | |
| 37 | This enhancement will support additional parameters and bit-depth variations such as: |
| 38 | |
| 39 | image/png; PhotometricInterpretation=PaletteColor |
| 40 | image/png; PhotometricInterpretation=RGB |
| 41 | image/png; mode=24bit |
| 42 | |
| 43 | |
| 44 | == Proposed Solution == |
| 45 | |
| 46 | WMS Override API will accept a string instead of the enumeration for image format. It will only accept server defined format strings that contain ‘png’, ‘tiff’, ‘jpeg’ or ‘gif’ in their definitions. |
| 47 | |
| 48 | This section outlines the necessary code changes in the unmanaged and managed code. |
| 49 | |
| 50 | === Unmanaged Code === |
| 51 | |
| 52 | {{{ |
| 53 | /// \brief |
| 54 | /// |
| 55 | /// The FdoWmsOvRasterDefinition class defines the physical overrides for a raster property in a WMS FDO schema. |
| 56 | class FdoWmsOvRasterDefinition : public FdoPhysicalElementMapping |
| 57 | { |
| 58 | ... |
| 59 | /// \brief |
| 60 | /// Gets the format type in which the WMS image will be generated. |
| 61 | /// |
| 62 | /// \remarks |
| 63 | /// Allowed map formats are "picture" formats . Picture formats constitute |
| 64 | /// a rectangular pixel array of fixed size. Picture formats include file types such |
| 65 | /// as Portable Network Graphics (PNG), Joint Photographics Expert Group (JPEG) |
| 66 | /// and file types such as Tagged Image File Format (TIFF). |
| 67 | /// |
| 68 | /// \return |
| 69 | /// Returns the WMS format type. |
| 70 | /// |
| 71 | FDOWMS_API FdoString* GetFormatType(void) const; |
| 72 | |
| 73 | /// \brief |
| 74 | /// Sets the format type in which the WMS image will be generated. |
| 75 | /// |
| 76 | /// \remarks |
| 77 | /// Allowed map formats are "picture" formats . Picture formats constitute |
| 78 | /// a rectangular pixel array of fixed size. Picture formats include file types such |
| 79 | /// as Portable Network Graphics (PNG), Joint Photographics Expert Group (JPEG) |
| 80 | /// and file types such as Tagged Image File Format (TIFF). |
| 81 | /// |
| 82 | /// \return |
| 83 | /// Returns nothing. |
| 84 | /// |
| 85 | FDOWMS_API void SetFormatType(FdoString* value); |
| 86 | ... |
| 87 | } |
| 88 | }}} |
| 89 | |
| 90 | === Managed Code === |
| 91 | |
| 92 | {{{ |
| 93 | /// <summary> |
| 94 | /// The FdoWmsOvRasterDefinition class defines the physical overrides for a raster property in a WMS FDO schema. |
| 95 | /// </summary> |
| 96 | public __gc class OvRasterDefinition : public NAMESPACE_OSGEO_FDO_COMMANDS_SCHEMA::PhysicalElementMapping |
| 97 | { |
| 98 | ... |
| 99 | /// <summary>Gets the format type in which the WMS image will be generated.</summary> |
| 100 | /// <returns>Returns the WMS format type.</returns> |
| 101 | /// <remarks>Allowed map formats are "picture" formats . Picture formats constitute |
| 102 | /// a rectangular pixel array of fixed size. Picture formats include file types such |
| 103 | /// as Portable Network Graphics (PNG), Joint Photographics Expert Group (JPEG) |
| 104 | /// and file types such as Tagged Image File Format (TIFF).</remarks> |
| 105 | __property System::String* get_FormatType(); |
| 106 | |
| 107 | /// <summary>Sets the format type in which the WMS image will be generated.</summary> |
| 108 | /// <returns>Returns nothing.</returns> |
| 109 | /// <remarks>Allowed map formats are "picture" formats . Picture formats constitute |
| 110 | /// a rectangular pixel array of fixed size. Picture formats include file types such |
| 111 | /// as Portable Network Graphics (PNG), Joint Photographics Expert Group (JPEG) |
| 112 | /// and file types such as Tagged Image File Format (TIFF).</remarks> |
| 113 | __property System::Void set_FormatType(System::String* value); |
| 114 | ... |
| 115 | } |
| 116 | }}} |
| 117 | |
| 118 | |
| 119 | == Implications == |
| 120 | |
| 121 | This change will not cause any side-effects, nor any compatibility problems. |
| 122 | |
| 123 | == Test Plan == |
| 124 | |
| 125 | Existing unit tests will be expanded to test those changes. |
| 126 | |
| 127 | == Funding/Resources == |
| 128 | |
| 129 | Autodesk to provide resources / funding to update WMS Override API. |