Ticket #199 (closed defect: fixed)

Opened 3 years ago

Last modified 3 years ago

Fusion MapGuide selection is slow

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

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

Changed 3 years ago by chrisclaydon

  • external_id set to 1161170

Changed 3 years ago by chrisclaydon

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

Changed 3 years ago by chrisclaydon

(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.

Changed 3 years ago by chrisclaydon

  • status changed from new to closed
  • resolution set to fixed

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

Changed 3 years ago by chrisclaydon

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

Changed 3 years ago by chrisclaydon

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

Changed 3 years ago by chrisclaydon

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

Changed 3 years ago by chrisclaydon

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

Note: See TracTickets for help on using tickets.