Hi list, I am using OpenLayers 2.13.1. I am experiencing a problem when zoom in/out while OpenLayers is in process of loading images from several WMS requests that resulted from a previous zoom operation.
Uncaught TypeError: Cannot read property '_eventCacheID' of null OpenLayers.debug.js:5178 OpenLayers.Event.observe OpenLayers.debug.js:5178 tile.onLoadEnd OpenLayers.debug.js:31046 OpenLayers.Events.OpenLayers.Class.triggerEvent OpenLayers.debug.js:5812 OpenLayers.Tile.OpenLayers.Class.unload OpenLayers.debug.js:29266 OpenLayers.Tile.Image.OpenLayers.Class.draw OpenLayers.debug.js:29584 OpenLayers.Layer.Grid.OpenLayers.Class.initGriddedTiles OpenLayers.debug.js:30957 OpenLayers.Layer.Grid.OpenLayers.Class.moveTo OpenLayers.debug.js:30428 OpenLayers.Map.OpenLayers.Class.moveTo OpenLayers.debug.js:9299 map.zoomTween.start.callbacks.done OpenLayers.debug.js:9682 OpenLayers.Tween.OpenLayers.Class.stop OpenLayers.debug.js:6697 OpenLayers.Tween.OpenLayers.Class.play OpenLayers.debug.js:6730 (anonymous function) OpenLayers.debug.js:615 loops.(anonymous function) OpenLayers.debug.js:6528 I am having an extremely difficult time trying to determine what my app is doing to make OpenLayers react this way. The effect of the error is that zoom in/out capability breaks on the map until I reload the page. Can someone enlighten me as to what may be going on here? More background on the problem: ============================ One way I have been able to avoid the problem, although it is not an acceptable solution, is to add the following code near the top of the "OpenLayers.Event.observe" method: if (element == null){ //console.log("element: " + element + ", name: " + name + ", observer: " + observer + ", " + "useCapture: " + useCapture); return; } Like this: /** * Method: observe * * Parameters: * elementParam - {DOMElement || String} * name - {String} * observer - {function} * useCapture - {Boolean} */ observe: function(elementParam, name, observer, useCapture) { var element = OpenLayers.Util.getElement(elementParam); useCapture = useCapture || false; //Begin added lines if (element == null){ //console.log("element: " + element + ", name: " + name + ", observer: " + observer + ", " + "useCapture: " + useCapture); return; } //End added lines if (name == 'keypress' && (navigator.appVersion.match(/Konqueror|Safari|KHTML/) || element.attachEvent)) { name = 'keydown'; } //if observers cache has not yet been created, create it if (!this.observers) { this.observers = {}; } //if not already assigned, make a new unique cache ID if (!element._eventCacheID) { <=============== This is the line the error occurs because "element" is null var idPrefix = "eventCacheID_"; if (element.id) { idPrefix = element.id + "_" + idPrefix; } element._eventCacheID = OpenLayers.Util.createUniqueID(idPrefix); }
_______________________________________________ Users mailing list us...@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/openlayers-users