wiki:MapGuideRfc50

Version 14 (modified by brucedechant, 16 years ago) ( diff )

--

MapGuide RFC 50 - Hide Legend Styles

This page contains an change request (RFC) for the MapGuide Open Source project. More MapGuide RFCs can be found on the RFCs page.

Status

RFC Template Version(1.0)
Submission Date(June 27, 2008)
Last Modified(Bruce Dechant) Timestamp
Author(Aleck Sun)
RFC StatusDraft
Implementation Statuspending
Proposed Milestone(e.g. 1.1, 1.3)
Assigned PSC guide(s)Bruce Dechant
Voting History(vote date)
+1
+0
-0
-1

Overview

This section brefly describes the problem set, and the proposed solution in general terms. It should be deliberately short, a couple of sentences or so.

Motivation

Some feature class can contain multiple feature types. For example, in SDF, a feature class can contain point, line, and polygon feature types. The current MapGuide displays legend for all geometry types regardless whether there are features of that geometry types or not. Currently there is a workaround that the user can delete the styles that he doesn¡¯t want to show in the legend. However, in this way, when the user wants to show them in the legend again, he may forget which one he deleted. We¡¯d like to make it more flexible for the legend items to be shown. All the styles should be persisted and the user should be able to decide whether a style is going to be shown.

Proposed Solution

An additional tag is going to be added to the schema of LayerDefinition. We will add a <ShowInLegend> tag for LineTypeStyleType, AreaTypeStyleType and PointTypeStyleType as following. And the version of the LayerDefinition from 1.2 to 1.3, i.e. LayerDefinition-1.3.0.xsd LineTypeStyle: <xs:complexType name="LineTypeStyleType">

<xs:annotation>

<xs:documentation>Style specification of a line geometry type.</xs:documentation>

</xs:annotation> <xs:sequence>

<xs:element name="LineRule" type="LineRuleType" maxOccurs="unbounded">

<xs:annotation>

<xs:documentation>Rules to define a theme.</xs:documentation>

</xs:annotation>

</xs:element> <xs:element name="ShowInLegend" type="xs:boolean" minOccurs="0"/> <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />

</xs:sequence>

</xs:complexType>

PointTypeStyle: <xs:complexType name="PointTypeStyleType">

<xs:annotation>

<xs:documentation>Style specification of a point geometry type.</xs:documentation>

</xs:annotation> <xs:sequence>

<xs:element name="DisplayAsText" type="xs:boolean">

<xs:annotation>

<xs:documentation>Create a text layer.</xs:documentation>

</xs:annotation>

</xs:element> <xs:element name="AllowOverpost" type="xs:boolean">

<xs:annotation>

<xs:documentation>Allows labels from any map layer (including the current layer) to obscure features on the current layer.</xs:documentation>

</xs:annotation>

</xs:element> <xs:element name="PointRule" type="PointRuleType" maxOccurs="unbounded">

<xs:annotation>

<xs:documentation>One or more PointRules defining the PointTypeStyle.</xs:documentation>

</xs:annotation>

</xs:element> <xs:element name="ShowInLegend" type="xs:boolean" minOccurs="0"/> <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />

</xs:sequence>

</xs:complexType>

AreaTypeStyle: <xs:complexType name="AreaTypeStyleType">

<xs:annotation>

<xs:documentation>Style specification of a polygon geometry type.</xs:documentation>

</xs:annotation> <xs:sequence>

<xs:element name="AreaRule" type="AreaRuleType" maxOccurs="unbounded">

<xs:annotation>

<xs:documentation>Rules to define a theme.</xs:documentation>

</xs:annotation>

</xs:element> <xs:element name="ShowInLegend" type="xs:boolean" minOccurs="0"/> <xs:element name="ExtendedData1" type="ExtendedDataType" minOccurs="0" />

</xs:sequence>

</xs:complexType>

And the corresponding module will also be modified to reflect in UI the schema change.

Implications

Existing schema documentation will be updated.

Test Plan

No new unit tests will be created for this. However, the existing unit tests will be run to ensure that they still pass.

Funding/Resources

Autodesk

Note: See TracWiki for help on using the wiki.