]> git.openstreetmap.org Git - rails.git/blobdiff - public/javascripts/map.js
bit more debug
[rails.git] / public / javascripts / map.js
index a52cd0a7047dcd43006ae2bd68466b5d8e64affe..6e012b3d30f4cd0128d58654e63d20b1a02813be 100644 (file)
@@ -74,6 +74,7 @@ function createMap(divName, options) {
    map.addLayer(maplint);
 
    var numZoomLevels = Math.max(mapnik.numZoomLevels, osmarender.numZoomLevels);
    map.addLayer(maplint);
 
    var numZoomLevels = Math.max(mapnik.numZoomLevels, osmarender.numZoomLevels);
+
    markers = new OpenLayers.Layer.Markers("Markers", {
       displayInLayerSwitcher: false,
       numZoomLevels: numZoomLevels,
    markers = new OpenLayers.Layer.Markers("Markers", {
       displayInLayerSwitcher: false,
       numZoomLevels: numZoomLevels,
@@ -84,17 +85,6 @@ function createMap(divName, options) {
    });
    map.addLayer(markers);
    
    });
    map.addLayer(markers);
    
-   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);
-   
-
    return map;
 }
 
    return map;
 }
 
@@ -118,16 +108,23 @@ function addMarkerToMap(position, icon, description) {
    return marker;
 }
 
    return marker;
 }
 
-function addBoxToMap(boxbounds) {      
-   box = new OpenLayers.Feature.Vector(
-            boxbounds.toGeometry().transform(new OpenLayers.Projection("EPSG:4326"), map.getProjectionObject()) );
+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,
+      strokeColor: '#ee9900',
+      fillOpacity: 0
+   });
    
    
-   box.style = {
-         'strokeWidth': 3,
-         'strokeColor': '#0000ff',
-         'fillOpacity': 0,
-       };
    vectors.addFeatures(box);
    vectors.addFeatures(box);
+
    return box;
 }
 
    return box;
 }