MapGuide RFC 33 - Convenience Methods for Selection
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 | September 5, 2007 |
Last Modified | trevorwekel Timestamp |
Author | Trevor Wekel |
RFC Status | adopted |
Implementation Status | completed |
Proposed Milestone | 2.0 |
Assigned PSC guide(s) | |
Voting History | September 5, 2007 |
+1 | Paul, Jason, Andy, Haris, Bruce, Tom, Bob |
+0 | |
-0 | |
-1 |
Overview
This RFC adds convenience methods to MgSelection so that selected features can be obtained in a more straightforward fashion.
Motivation
The existing MgSelection API does not provide easy access to the selected features and is a bit of a hassle to use.
Proposed Solution
Implement three new methods for MgSelection through MgSelectionBase
/// Returns the number of selected features for the specified feature class. /// /// Input parameters /// layer: Input layer, className: Feature class name /// /// Returns a count of all selected features /// INT32 GetSelectedFeaturesCount(MgLayerBase* layer, CREFSTRING className);
/// Returns the selected feature data for the specified feature class. /// /// Input parameters /// layer: Input layer, className: Feature class name /// mappedOnly: return mapped (true) or all (false) properties for selected features /// /// Returns a feature reader containing all the features for the given /// feature class in this selection. /// MgFeatureReader* GetSelectedFeatures(MgLayerBase* layer, CREFSTRING className, bool mappedOnly);
/// Returns the selected feature data for the specified feature class. /// /// Input parameters /// layer: Input layer, className: Feature class name /// propertyNames: properties to return for selected features /// /// Returns a feature reader containing all the features for the given /// feature class in this selection. /// MgFeatureReader* GetSelectedFeatures(MgLayerBase* layer, CREFSTRING className, MgStringCollection* propertyNames);
These methods will be implemented using existing MgSelection and MgLayer functionality.
Implications
None. These are new API additions so backward compatibility is maintained. Documentation will be autogenerated from the header file.
Test Plan
Validate that new APIs function correctly by returning the correct features and count. Perform visual testing with the existing sample applications to ensure that the existing MgSelection APIs are still functioning correctly.
Funding/Resources
Autodesk will providing funding and resources.