diff --git a/app/views/site/index.rhtml b/app/views/site/index.rhtml index 66f69960b..54f281727 100644 --- a/app/views/site/index.rhtml +++ b/app/views/site/index.rhtml @@ -111,7 +111,8 @@ end setMapExtent(bbox); <% if box %> - box = addBoxToMap(bbox); + // IE requires Vector layers be initialised on page load, and not under deferred script conditions + Event.observe(window, 'load', function() {addBoxToMap(bbox)}); <% end %> <% else %> var centre = new OpenLayers.LonLat(<%= lon %>, <%= lat %>); diff --git a/public/javascripts/map.js b/public/javascripts/map.js index 746dd5baf..6e012b3d3 100644 --- a/public/javascripts/map.js +++ b/public/javascripts/map.js @@ -75,16 +75,6 @@ function createMap(divName, options) { var numZoomLevels = Math.max(mapnik.numZoomLevels, osmarender.numZoomLevels); - vectors = new OpenLayers.Layer.Vector("Vectors", { - displayInLayerSwitcher: false, - numZoomLevels: numZoomLevels, - maxExtent: new OpenLayers.Bounds(-20037508,-20037508,20037508,20037508), - maxResolution: 156543, - units: "m", - projection: "EPSG:900913" - }); - map.addLayer(vectors); - markers = new OpenLayers.Layer.Markers("Markers", { displayInLayerSwitcher: false, numZoomLevels: numZoomLevels, @@ -119,6 +109,13 @@ function addMarkerToMap(position, icon, description) { } function addBoxToMap(boxbounds) { + if(!vectors) { + // Be aware that IE requires Vector layers be initialised on page load, and not under deferred script conditions + vectors = new OpenLayers.Layer.Vector("Box Layer", { + displayInLayerSwitcher: false + }); + map.addLayer(vectors); + } var geometry = boxbounds.toGeometry().transform(epsg4326, map.getProjectionObject()); var box = new OpenLayers.Feature.Vector(geometry, {}, { strokeWidth: 2,