[mapguide-users] Re-thinking Fusion redlining efficiency

Jackie Ng jumpinjackie at gmail.com
Tue Jul 9 19:34:10 PDT 2013


Hi All,

I've been thinking about the efficiency of drawing redlines in Fusion. While
we've eliminated most of the workflow slowness in the data store and layer
setup before you even get to start drawing your lines and squiggles, the
actual drawing process still seems woefully inefficient where each geometry
drawn triggers a map refresh. For really heavy maps, redlining against them
seems to be very inefficient 

I'm starting to float the idea of a client-side "staging area" for newly
drawn redlines. 

The idea is that when you draw your redlines they don't immediately get
saved to your redline SDF/SHP/SQLite feature source server-side, instead
they are stored client-side in a OpenLayers.Layer.Vector. This would then
allow the user to draw multiple objects rapidly in succession without
interruptions from map refreshes. When they're done, the user can then
commit and save the whole lot of client-side redlines into the redline
SDF/SHP/SQLite feature source in one go and then the widget can trigger a
map refresh.

So the process for drawing 5 redlines is currently:

 * Invoke Redline widget
 * Choose redline data store type (in Fusion trunk, this option can be
shortcutted thus skipping this step)
 * Draw redline #1 -> Triggers map refresh
 * Draw redline #2 -> Triggers map refresh
 * Draw redline #3 -> Triggers map refresh
 * Draw redline #4 -> Triggers map refresh
 * Draw redline #5 -> Triggers map refresh

The process of drawing 5 redlines under this theoretical revised widget
would look like this.

 * Invoke Redline widget
 * Choose redline data store type (in Fusion trunk, this option can be
shortcutted thus skipping this step)
 * Draw redline #1
 * Draw redline #2
 * Draw redline #3
 * Draw redline #4
 * Draw redline #5
 * Review what you've drawn.
   * If everything's ok, commit and save the lot and trigger map refresh.
   * If something's wrong, discard/edit the client-side vector objects and
commit.

The revised widget would cut down the amount of map refreshes, with the
small caveat that redlines in the "staging area" won't have your configured
redline styles (they'll be using whatever OpenLayers provides) and they
won't show up in any plots of the map until they've been committed by the
user.

Thoughts?

- Jackie



--
View this message in context: http://osgeo-org.1560.x6.nabble.com/Re-thinking-Fusion-redlining-efficiency-tp5065272.html
Sent from the MapGuide Users mailing list archive at Nabble.com.


More information about the mapguide-users mailing list