Changes between Version 2 and Version 3 of MapGuideRfc59


Ignore:
Timestamp:
02/02/09 04:53:39 (16 years ago)
Author:
evan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc59

    v2 v3  
    2424== Overview ==
    2525
    26 The purpose of this RFC is to add a new layer defination for TIN(Triangulated Irregular Networks).
     26The purpose of this RFC is to add a new schema in Layer Definition XML schema for TIN (Triangulated Irregular Networks). TIN layer has many characteristics that are different from Vector and Grid layers, it’s necessary to create a new layer type for TIN.
    2727
    2828== Motivation ==
    2929
     30The existing Layer Definition XML schema does not contains a definition for TIN layer. So, currently we create a raster image in order to show a TIN surface.
     31Adding TIN layer schema will make it easier to support TIN layer and there will be a real TIN surface. We can see points, edges and faces if we zoom into the surface.
    3032
    3133
    3234== Proposed Solution ==
    3335
     36The proposed solution contains modifications to: the Layer Definition XML schema, the FDO provider, and the Stylization project.
     37
     38==Layer Definition Schema Modifications==
     39The schema modifications could be made forward/backward compatible. However, it seems likely that [wiki:MapGuideRfc14 MapGuide RFC 14] will require a schema version update, in which case the modifications from this RFC (and [wiki:MapGuideRfc16 MapGuide RFC 16]) can be rolled into the same update.
     40{{{
     41        <xs:annotation>
     42                <xs:documentation>******************** Tin layer ********************</xs:documentation>
     43        </xs:annotation>
     44        <xs:complexType name="TinLayerDefinitionType">
     45                <xs:annotation>
     46                        <xs:documentation>A layer for tin data.</xs:documentation>
     47                </xs:annotation>
     48                <xs:complexContent>
     49                        <xs:extension base="BaseLayerDefinitionType">
     50                                <xs:sequence>
     51                                        <xs:element name="FeatureName" type="xs:string"/>
     52                                        <xs:element name="Geometry" type="xs:string">
     53                                                <xs:annotation>
     54                                                        <xs:documentation>Specifies the geometry property that should be used to get the geometries.</xs:documentation>
     55                                                </xs:annotation>
     56                                        </xs:element>
     57                                        <xs:element name="Filter" type="xs:string" minOccurs="0">
     58                                                <xs:annotation>
     59                                                        <xs:documentation>A boolean FDO expression that specifies which features to return.  No filter means pass all features through.</xs:documentation>
     60                                                </xs:annotation>
     61                                        </xs:element>
     62                                        <xs:element name="TinScaleRange" type="TinScaleRangeType" maxOccurs="unbounded"/>
     63                                        <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     64                                </xs:sequence>
     65                        </xs:extension>
     66                </xs:complexContent>
     67        </xs:complexType>
     68        <xs:complexType name="TinScaleRangeType">
     69                <xs:annotation>
     70                        <xs:documentation>The stylization for a specified scale range.</xs:documentation>
     71                </xs:annotation>
     72                <xs:sequence>
     73                        <xs:element name="MinScale" type="xs:double" minOccurs="0">
     74                                <xs:annotation>
     75                                        <xs:documentation>The zoomed in part of the scale range.  Defaults to 0 if not specified.  Inclusive.</xs:documentation>
     76                                </xs:annotation>
     77                        </xs:element>
     78                        <xs:element name="MaxScale" type="xs:double" minOccurs="0">
     79                                <xs:annotation>
     80                                        <xs:documentation>The zoomed out part of the scale range.  Defaults to the application's maximum value if not specified.  Exclusive.</xs:documentation>
     81                                </xs:annotation>
     82                        </xs:element>
     83                        <xs:element name="Elevation" minOccurs="0">
     84                                <xs:annotation>
     85                                        <xs:documentation>The elevation information of tin surface.</xs:documentation>
     86                                </xs:annotation>
     87                                <xs:complexType>
     88                                        <xs:sequence>
     89                                                <xs:element name="ZeroValue" type="xs:double" minOccurs="0">
     90                                                        <xs:annotation>
     91                                                                <xs:documentation>The user defined zero value. Defaults to 0 if not specified. </xs:documentation>
     92                                                        </xs:annotation>
     93                                                </xs:element>
     94                                                <xs:element name="ScaleFactor" type="xs:double" minOccurs="0">
     95                                                        <xs:annotation>
     96                                                                <xs:documentation>Determines how to scale the  elevation.  Defaults to 1 if not specified.</xs:documentation>
     97                                                        </xs:annotation>
     98                                                </xs:element>
     99                                        </xs:sequence>
     100                                </xs:complexType>
     101                        </xs:element>
     102                        <xs:element name="Point" type="CompositeTypeStyle" minOccurs="0">
     103                                <xs:annotation>
     104                                        <xs:documentation>All points in tin surface.</xs:documentation>
     105                                </xs:annotation>
     106                        </xs:element>
     107                        <xs:element name="Edge" type="CompositeTypeStyle" minOccurs="0">
     108                                <xs:annotation>
     109                                        <xs:documentation>All edges in tin surface.</xs:documentation>
     110                                </xs:annotation>
     111                        </xs:element>
     112                        <xs:element name="Face" type="TinFaceType" minOccurs="0">
     113                                <xs:annotation>
     114                                        <xs:documentation>All triangles faces in tin surface.</xs:documentation>
     115                                </xs:annotation>
     116                        </xs:element>
     117                        <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     118                </xs:sequence>
     119        </xs:complexType>
     120        <xs:complexType name="TinColorRuleType">
     121                <xs:annotation>
     122                        <xs:documentation>Encapsulate a style for a tin source.</xs:documentation>
     123                </xs:annotation>
     124                <xs:sequence>
     125                        <xs:element name="LegendLabel" type="xs:string">
     126                                <xs:annotation>
     127                                        <xs:documentation>The label for the Rule to be displayed in the legend.</xs:documentation>
     128                                </xs:annotation>
     129                        </xs:element>
     130                        <xs:element name="Filter" type="xs:string" minOccurs="0">
     131                                <xs:annotation>
     132                                        <xs:documentation>A filter for the Rule.  This is a boolean FDO expression.  Any features that pass this filter are styled using this rule's stylization.</xs:documentation>
     133                                </xs:annotation>
     134                        </xs:element>
     135                        <xs:element name="Label" type="TextSymbolType" minOccurs="0">
     136                                <xs:annotation>
     137                                        <xs:documentation>A label for the Rule.  Does not apply to tin ColorRule.</xs:documentation>
     138                                </xs:annotation>
     139                        </xs:element>
     140                        <xs:element name="Color" type="xs:string">
     141                                <xs:annotation>
     142                                        <xs:documentation>The color to use.</xs:documentation>
     143                                </xs:annotation>
     144                        </xs:element>
     145                        <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     146                </xs:sequence>
     147        </xs:complexType>
     148        <xs:complexType name="TinFaceType">
     149                <xs:annotation>
     150                        <xs:documentation>Style rule for a face type.</xs:documentation>
     151                </xs:annotation>
     152                <xs:sequence minOccurs="0">
     153                        <xs:element name="HillShade" type="TinHillShadeType" minOccurs="0"/>
     154                        <xs:element name="ColorRule" type="TinColorRuleType" minOccurs="0" maxOccurs="unbounded"/>
     155                        <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     156                </xs:sequence>
     157        </xs:complexType>
     158        <xs:complexType name="TinHillShadeType">
     159                <xs:annotation>
     160                        <xs:documentation>Specifies how to shade given a band and a light source.</xs:documentation>
     161                </xs:annotation>
     162                <xs:sequence>
     163                        <xs:element name="Azimuth" type="xs:double">
     164                                <xs:annotation>
     165                                        <xs:documentation>Azimuth of the sun in degrees.</xs:documentation>
     166                                </xs:annotation>
     167                        </xs:element>
     168                        <xs:element name="Altitude" type="xs:double">
     169                                <xs:annotation>
     170                                        <xs:documentation>Altitude of the sun in degrees.</xs:documentation>
     171                                </xs:annotation>
     172                        </xs:element>
     173                        <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0"/>
     174                </xs:sequence>
     175        </xs:complexType>
     176}}}
     177==== Example ===
     178== FDO Provider Modifications ==
    34179
    35180
    36181== Implications ==
    37182
     183The new TIN layer definition will have an impact on the LayerDefinition XML schema. Backwards compatibility should be maintained and will not break any existing applications. That is to say, applications with later version can completely open files created by applications with former version, while applications with former version should ignore TIN layer when opening file created by applications with later version.  Documentation will need to be updated for the new functionality.
     184FDO Provider will be changed to support TIN connection.
    38185
    39186
    40187== Test Plan ==
    41188
     189Unit tests should include creating TIN layers, stylizing TIN layers and TIN FDO Provider.
     190Backward compatibility should be tested. Files created by new application should not break existing applications.
     191
    42192
    43193== Funding/Resources ==
    44194
     195Autodesk to provide resources/funding.