Opened 14 years ago

Closed 13 years ago

Last modified 13 years ago

#199 closed defect (fixed)

Fusion MapGuide selection is slow

Reported by: chrisclaydon Owned by: madair
Priority: P2 Milestone: 2.0
Component: MapGuide Version: SVN
Severity: Major Keywords:
Cc: Browser: All
External ID: 1161170 Operating System: All
state: Approved

Description

Fusion currently determines selected features by making multiple requests to the MapGuide feature service. This works, but is slow and inefficient. MapGuide provides the QueryMapFeatures API on the Rendering Service to allow all the processing to be handled on the server side instead. The only shortcoming of this API is that it will only return properties for a single feature. This may be addressed in MapGuide in the future at some point, which would make things simpler in Fusion.

In the meantime, QueryMapFeatures can still be used to determine the selected features, and the Feature Service can then be used to retrieve their properties. The flow through the code can also be modified to render the selection in the map as soon as we know the selected features, rather than waiting for all the properties to be retrieved too, which can take some time.

The result would be a much faster perceived and actual response to a selection request.

Change History (8)

comment:1 by chrisclaydon, 14 years ago

External ID: 1161170

comment:2 by chrisclaydon, 14 years ago

In [1727] submitted to fusion2-mg21 branch. The current implementation breaks the setSelection function. This will be fixed in a subsequent submission.

comment:3 by chrisclaydon, 14 years ago

(In [1729]) re #199 - Fix setSelection API to work with new selection handling.

MapGuide.js - cleaned up the code a little, and re-structured so that setSelection updates the map image, and optionally zooms to the extents of the selected features.

Renamed HighlightSelection.php to SaveSelection.php, since all it does is update the selection stored in the map resource in the MG session, and retrieve some basic info about the selection. Renamed SetSelection.php to GetSelectionProperties.php, since it no longer sets the selection. It just retrieves properties and basic info for the selected features.

Also updated SaveSelection.php optionally to retrieve the selection extents. This is required is setSelection is called with zoomTo set to true.

comment:4 by chrisclaydon, 13 years ago

Resolution: fixed
Status: newclosed

(In [1743]) Fix #199 - Add selection enhancements previously added to mg21 branch to trunk code stream.

comment:5 by chrisclaydon, 13 years ago

(In [1749]) re #199 - Add back API method required by SelectWithin widget

comment:6 by chrisclaydon, 13 years ago

(In [1750]) re #199 - Add back API method required by SelectWithin widget

comment:7 by chrisclaydon, 13 years ago

(In [1767]) Re #199 - Handle layers with no property mappings set.

comment:8 by chrisclaydon, 13 years ago

(In [1768]) Re #199 - Handle layers with no property mappings set.

Note: See TracTickets for help on using tickets.