Changes between Version 8 and Version 9 of MapGuideRfc15


Ignore:
Timestamp:
Mar 12, 2007, 2:16:27 PM (17 years ago)
Author:
chrisclaydon
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MapGuideRfc15

    v8 v9  
    2323== Overview ==
    2424
    25 The current Rendering Service APIs !QueryFeatures() and !QueryFeatureProperties() are restricted to only querying data for map layers that are visible at the current map scale. However, there are certain situations where you may wish to query data on the map layers regardless of whether they are currently visible at the current map scale.
     25The current Rendering Service APIs !QueryFeatures() and !QueryFeatureProperties() are restricted to only querying data for map layers that are visible at the current map scale. However, there are certain situations where you may wish to query data on the map layers regardless of whether they are currently visible at the current map scale. There are also situations where it is desirable to filter the results using a list of feature IDs.
    2626
    2727== Motivation ==
     
    3333You have a map of Canada that contains a "parcels" layer that is currently not visible at the current map scale because you are just wanting to have a country overview display. You now wish to view all parcels with a certain size across Canada. If you tried to use the !QueryFeatures() and !QueryFeatureProperties() APIs on your "parcels" layer the results would not be displayed because the "parcels" layer is not currently visible at the current map scale. You could zoom in until the "parcels" layer is visible, but you would not be able to see all the parcels you are interested in across Canada very easily.
    3434
     35Also, when a feature is selected in the !MapGuide Viewer using the Search command, a susequent !QueryFeatures() request is made to the !MapGuide Server in order to retrieve the properties for the selected feature. Any properties that are available are displayed in the viewer's property pane. The !QueryFeatures() request is made using a spatial filter based on the geometry of the selected feature, with a !MaxFeatures value of 1. Thus, the properties that are displayed are those for the first feature that intersects the geometry of the selected feature. Unfortunately, this means that the properties that are retrieved are sometimes those of an adjacent feature instead of the selected feature. For this reason, it is desirable to be able to specify one or more feature IDs to be used to filter the results of the !QueryFeatures() and !QueryFeatureProperties() methods.
     36
     37
    3538== Proposed Solution ==
    3639
    37 The solution to this is to add 2 NEW APIs that essentially are identical to the already existing !QueryFeatures() and !QueryFeatureProperties() APIs except that they add an additional parameter. The reason for the NEW APIs is so as not to break backward compatibility with the already existing APIs.
     40The solution to this is to add 2 NEW APIs that essentially are identical to the already existing !QueryFeatures() and !QueryFeatureProperties() APIs except that they add additional parameters. The reason for the NEW APIs is so as not to break backward compatibility with the already existing APIs.
    3841
    3942Proposed New APIs:
     
    4245 MgFeatureInformation* QueryFeatures(MgMap* map,
    4346                                     MgStringCollection* layerNames,
    44                                      MgGeometry* geometry,
    45                                      INT32 selectionVariant,
     47                                     MgGeometry* filterGeometry,
     48                                     INT32 selectionVariant,
     49                                     CREFSTRING featureFilter,
    4650                                     INT32 maxFeatures,
    4751                                     bool bIgnoreScaleRange);
     
    4953 MgBatchPropertyCollection* QueryFeatureProperties(MgMap* map,
    5054                                                   MgStringCollection* layerNames,
    51                                                    MgGeometry* geometry,
    52                                                    INT32 selectionVariant,
     55                                                   MgGeometry* filterGeometry,
     56                                                   INT32 selectionVariant,
     57                                                   CREFSTRING featureFilter,
    5358                                                   INT32 maxFeatures,
    5459                                                   bool bIgnoreScaleRange);
     
    5863
    5964{{{
    60 The existing HTTP operation QUERYMAPFEATURES will be updated to support the following additional parameter if it is specified.
     65The existing HTTP operation QUERYMAPFEATURES will be updated to support the following additional parameters, if specified:
    6166
    6267 IGNORESCALE=0
     
    6570 IGNORESCALE=1
    6671 * With the value of 1 this operation will allow querying of data regardless of visibility at the current map scale.
     72
     73 FEATUREFILTER=<XML Selection String>
     74 * The XML Selection String format is used by the existing MgSelection class, and contains the required feature IDs, and information about the layer that contains them.
    6775}}}
    6876
     
    96104 * !RenderMap
    97105
     106== Addendum 2 ==
     107
     1081) Added the additional featureFilter parameter to Server APIs.
     109
     1102) Added the FEATUREFILTER parameter to the HTTP QUERYMAPFEATURES request.
    98111
    99112