[OpenLayers-Users] Canvas issue when using externalGraphic

Alexandre Dubé adube at mapgears.com
Mon Aug 12 06:35:47 PDT 2013


Workaround example page updated :
http://dev5.mapgears.com/openlayers/2.12-canvas-issue/examples/canvas-issue-workaround.html?renderer=Canvas

It has become a little bit trickier to select / unselect features now 
that the tolerance is set to 0, naturally.

Alexandre


On 13-08-12 09:17 AM, Alexandre Dubé wrote:
> Xavier,
>
>   You're right.  Thanks for sharing your solutions.  I think using 
> your workaround (locking the renderer on unselectAll) combined with a 
> tolerance of 0 could do the trick for me, but it would still be nice 
> to nail the cause of the issue.
>
>   I'll update my example.
>
> Thanks again,
>
> Alexandre
>
>
> On 13-08-09 04:46 PM, Xavier Mamano (jorix) wrote:
>> Hi
>>
>> But the problem remains when the clickout has a little drag before (less
>> than 4 pixels --see clickTolerance on OpenLayers.Handler.Feature--)
>>
>> Try select the features, and unselect by: mousedown + mousemove (less 
>> than 4
>> pixels) + mouseup. Oops!
>>
>> Seems that "this.canvas.clearRect (0, 0, width, height);" on 
>> Canvas.redraw
>> does not act a second time while the js code is still running.
>>
>> Xavier
>>
>>
>> Xavier Mamano (jorix) wrote
>>> Hi,
>>>
>>>
>>> I tried your workaround...
>>>
>>> It works on Chrome but not on FF.
>>>
>>> And tried this:
>>>              select.unselectAll = function(options) {
>>>                  vectors.renderer.locked = true;
>>> OpenLayers.Control.SelectFeature.prototype.unselectAll.apply(
>>>                                            this, arguments);
>>>                  vectors.renderer.locked = false;
>>>                  vectors.moveTo(null, true, false); // to force a
>>> vectors.redraw();
>>>              };
>>>
>>> It works on FF & Chrome.
>>>
>>> Xavier
>>> Alexandre Dubé wrote
>>>> Hi,
>>>>
>>>>     Here's a pretty dirty workaround:
>>>> http://dev5.mapgears.com/openlayers/2.12-canvas-issue/examples/canvas-issue-workaround.html?renderer=Canvas 
>>>>
>>>>
>>>>     In summary, I redraw the layer after features were unselected.
>>>>
>>>>     I'm still not sure what's the cause of the issue, but I noticed 
>>>> that
>>>> when calling the unselectAll method of the select control, each 
>>>> feature
>>>> are drawn (using layer.drawFeature method) separately, resulting in
>>>> redrawing the layer X times for each feature that were unselected.
>>>> Maybe if the renderer was locked while unselecting all these it 
>>>> could do
>>>> the trick.
>>>>
>>>>     Please, let me know if this should deserve an Issue opened.
>>>>
>>>> Alexandre
>>>>
>>>>
>>>> On 13-08-07 01:14 PM, Alexandre Dubé wrote:
>>>>> Thanks to everyone who tried the example.  I'll try to can come up
>>>>> with a fix or a workaround asap.
>>>>>
>>>>> Alexandre
>>>>>
>>>>>
>>>>> On 13-08-07 11:02 AM, Xavier Mamano (jorix) wrote:
>>>>>> Hi,
>>>>>>
>>>>>> I can confirm seeing this using Windows Vista on Chrome, FF, IE9 and
>>>>>> Opera
>>>>>> and olso usign Ubuntu on Chome and FF.
>>>>>>
>>>>>> (using your canvas-issue.html)
>>>>>>
>>>>>> Xavier Mamano
>>>>>>
>>>>>>
>>>>>> Alexandre Dubé wrote
>>>>>>> Hi,
>>>>>>>
>>>>>>>      I have an issue when I use Canvas as vector renderer in 
>>>>>>> addition
>>>>>>> to
>>>>>>> having externalGraphic properties.  I noticed the issue using
>>>>>>> OpenLayers
>>>>>>> 2.12, 2.13 and 2.13.1, with the 3 browsers I tested: Chrome, 
>>>>>>> Firefox
>>>>>>> and
>>>>>>> IE9.
>>>>>>>
>>>>>>>      I made a small demo to show the issue 'live':
>>>>>>> http://dev5.mapgears.com/openlayers/2.12-canvas-issue/examples/canvas-issue.html?renderer=Canvas 
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>      Before trying to look deeper at the code to see what's 
>>>>>>> going on
>>>>>>> wrong, I wonder if anyone already hit this same issue and came up
>>>>>>> with a
>>>>>>> fix / solution / workaround.
>>>>>>>
>>>>>>> Many thanks,
>>>>>>>
>>>>>>> Alexandre
>>>>>>>
>>>>>>> P.S. The example's html file can be downloaded and added to any 
>>>>>>> local
>>>>>>> examples folder in order to test it locally with different 
>>>>>>> versions of
>>>>>>> OpenLayers, i.e. the images and externalGraphic links are absolute,
>>>>>>> not
>>>>>>> relative.
>>>>>>>
>>>>>>> -- 
>>>>>>> Alexandre Dubé
>>>>>>> Mapgears
>>>>>>> www.mapgears.com
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Users mailing list
>>>>>>> Users at .osgeo
>>>>>>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>>>>>>
>>>>>>
>>>>>>
>>>>>> -- 
>>>>>> View this message in context:
>>>>>> http://osgeo-org.1560.x6.nabble.com/Canvas-issue-when-using-externalGraphic-tp5071099p5071319.html 
>>>>>>
>>>>>> Sent from the OpenLayers Users mailing list archive at Nabble.com.
>>>>>> _______________________________________________
>>>>>> Users mailing list
>>>>>>
>>>> Users at .osgeo
>>>>>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>>>>>
>>>>
>>>> -- 
>>>> Alexandre Dubé
>>>> Mapgears
>>>> www.mapgears.com
>>>>
>>>> _______________________________________________
>>>> Users mailing list
>>>> Users at .osgeo
>>>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>>
>>
>>
>>
>> -- 
>> View this message in context: 
>> http://osgeo-org.1560.x6.nabble.com/Canvas-issue-when-using-externalGraphic-tp5071099p5071801.html
>> Sent from the OpenLayers Users mailing list archive at Nabble.com.
>> _______________________________________________
>> Users mailing list
>> Users at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/openlayers-users
>
>


-- 
Alexandre Dubé
Mapgears
www.mapgears.com



More information about the Users mailing list