<div dir="ltr">I don't have any thoughts on how to do this, but I do think it would be a great feature. It would also make it easier to "go offline" and still use this widget and just commit back when you go back online. I am not intimately familiar yet with the widget, but since you would be using OpenLayers, couldn't you just pass the style that you want to that Layer.Vector and still have a "custom" style?</div>
<div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Jul 9, 2013 at 9:34 PM, Jackie Ng <span dir="ltr"><<a href="mailto:jumpinjackie@gmail.com" target="_blank">jumpinjackie@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi All,<br>
<br>
I've been thinking about the efficiency of drawing redlines in Fusion. While<br>
we've eliminated most of the workflow slowness in the data store and layer<br>
setup before you even get to start drawing your lines and squiggles, the<br>
actual drawing process still seems woefully inefficient where each geometry<br>
drawn triggers a map refresh. For really heavy maps, redlining against them<br>
seems to be very inefficient<br>
<br>
I'm starting to float the idea of a client-side "staging area" for newly<br>
drawn redlines.<br>
<br>
The idea is that when you draw your redlines they don't immediately get<br>
saved to your redline SDF/SHP/SQLite feature source server-side, instead<br>
they are stored client-side in a OpenLayers.Layer.Vector. This would then<br>
allow the user to draw multiple objects rapidly in succession without<br>
interruptions from map refreshes. When they're done, the user can then<br>
commit and save the whole lot of client-side redlines into the redline<br>
SDF/SHP/SQLite feature source in one go and then the widget can trigger a<br>
map refresh.<br>
<br>
So the process for drawing 5 redlines is currently:<br>
<br>
 * Invoke Redline widget<br>
 * Choose redline data store type (in Fusion trunk, this option can be<br>
shortcutted thus skipping this step)<br>
 * Draw redline #1 -> Triggers map refresh<br>
 * Draw redline #2 -> Triggers map refresh<br>
 * Draw redline #3 -> Triggers map refresh<br>
 * Draw redline #4 -> Triggers map refresh<br>
 * Draw redline #5 -> Triggers map refresh<br>
<br>
The process of drawing 5 redlines under this theoretical revised widget<br>
would look like this.<br>
<br>
 * Invoke Redline widget<br>
 * Choose redline data store type (in Fusion trunk, this option can be<br>
shortcutted thus skipping this step)<br>
 * Draw redline #1<br>
 * Draw redline #2<br>
 * Draw redline #3<br>
 * Draw redline #4<br>
 * Draw redline #5<br>
 * Review what you've drawn.<br>
   * If everything's ok, commit and save the lot and trigger map refresh.<br>
   * If something's wrong, discard/edit the client-side vector objects and<br>
commit.<br>
<br>
The revised widget would cut down the amount of map refreshes, with the<br>
small caveat that redlines in the "staging area" won't have your configured<br>
redline styles (they'll be using whatever OpenLayers provides) and they<br>
won't show up in any plots of the map until they've been committed by the<br>
user.<br>
<br>
Thoughts?<br>
<br>
- Jackie<br>
<br>
<br>
<br>
--<br>
View this message in context: <a href="http://osgeo-org.1560.x6.nabble.com/Re-thinking-Fusion-redlining-efficiency-tp5065272.html" target="_blank">http://osgeo-org.1560.x6.nabble.com/Re-thinking-Fusion-redlining-efficiency-tp5065272.html</a><br>

Sent from the MapGuide Users mailing list archive at Nabble.com.<br>
_______________________________________________<br>
mapguide-users mailing list<br>
<a href="mailto:mapguide-users@lists.osgeo.org">mapguide-users@lists.osgeo.org</a><br>
<a href="http://lists.osgeo.org/mailman/listinfo/mapguide-users" target="_blank">http://lists.osgeo.org/mailman/listinfo/mapguide-users</a><br>
</blockquote></div><br></div>