OpenLayers OpenLayers

Ticket #1656 (closed bug: fixed)

Opened 2 years ago

Last modified 2 years ago

Features that were outside the viewport won't be rendered after panning in IE

Reported by: ahocevar Assigned to:
Priority: minor Milestone: 2.7 Release
Component: Renderer.Elements Version: SVN
Keywords: Cc:
State: Complete

Description

This is a regression, introduced by #1602. The attached patch adds a boolean redrawOnMoveend property to the Elements renderer, which is false by default, but overridden to true by the VML renderer. Layer.Vector is modified so it checks for this property and redraws all features at the end of a pan action, if the property is set to true.

Added tests, all tests pass in FF2 and IE7.

Attachments

1656-r7682-A0.patch (3.4 kB) - added by ahocevar on 08/02/08 21:24:38.

Change History

08/02/08 21:24:38 changed by ahocevar

  • attachment 1656-r7682-A0.patch added.

08/04/08 03:59:54 changed by elemoine

Andreas,

Question: to what extent does your patch impact performance?

Comment: with SVG we have this pixel limit (MAX_PIXEL); I'm not expert with the code of the renderers, but it seems to me that if we'd redraw on each pan we could get rid of this pixel limit in SVG. But I'm concerned with the performance impact, hence the question above...

08/05/08 23:22:40 changed by ahocevar

  • state changed from Review to Needs More Work.

Eric, I have spent two days now trying to find ways to get rid of pixel limits, rendering errors and everything. With every approach that seemed promising, I found something new that made it just not work.

The performance of this current patch, of course, is lousy. I'm currently working on a way to only redraw features that have not been drawn yet. But this will not help us overcome the MAX_PIXEL issue in SVG. Anyway, I have found a way to extend the MAX_PIXEL limit: Instead of setting the viewbox of the svg root node after every pan, it is better to set a translate transformation on the group node that contains all other svg nodes. I have to do more investigation though to find out what the actual limit of pixel values is when we do it like that.

Once I have put something together that works or seems promising at least, I'll provide a patch or a sandbox for further discussion.

08/06/08 02:30:57 changed by elemoine

Andreas, it wasn't my goal to keep you so busy with the render code :-) Thanks for the effort.

Since you're into the SVG renderer, I wanted to bring #1631 to your attention. I think the localResolution property in the SVG class is something we need to get rid of. See my patch attached to the ticket.

08/08/08 17:05:09 changed by ahocevar

Eric, I have a solution that addresses both VML and SVG rendering issues almost ready. Right now I'm writing tests. It will also fix #1631. More information to follow soon...

08/12/08 05:42:40 changed by ahocevar

See #1675 for a fix.

09/02/08 12:20:46 changed by crschmidt

  • status changed from new to closed.
  • state changed from Needs More Work to Complete.
  • resolution set to fixed.

r7930 /trunk/openlayers/ (12 files in 7 dirs): New vector rendering for better performance and less renderer specific limitations. r=elemoine (closes #1675, closes #1656, closes #1631, closes #1431, closes #1709)