]> git.openstreetmap.org Git - rails.git/blobdiff - app/views/site/index.html.erb
Add an extra null pointer check that can trigger in tests
[rails.git] / app / views / site / index.html.erb
index 40a7a3fbca52e085932194a983ba3ee4ef383e03..636e6929c3b8491b3421117e79b741759067b4ac 100644 (file)
@@ -170,7 +170,8 @@ end
         url += "/full";
       <% end %>
 
         url += "/full";
       <% end %>
 
-      addObjectToMap(url, <%= object_zoom %>);
+      // IE requires Vector layers be initialised on page load, and not under deferred script conditions
+      Event.observe(window, 'load', function() { addObjectToMap(url, <%= object_zoom %>) });
     <% end %>
 
     map.events.register("moveend", map, updateLocation);
     <% end %>
 
     map.events.register("moveend", map, updateLocation);
@@ -182,7 +183,7 @@ end
   function toggleData() {
     if (map.dataLayer.visibility) {
       <%= remote_function :url => { :controller => 'browse', :action => 'start' } %>
   function toggleData() {
     if (map.dataLayer.visibility) {
       <%= remote_function :url => { :controller => 'browse', :action => 'start' } %>
-    } else {
+    } else if (map.dataLayer.active) {
       closeSidebar();
     }
   }
       closeSidebar();
     }
   }
@@ -191,10 +192,20 @@ end
     return getMapCenter();
   }
 
     return getMapCenter();
   }
 
-  function setPosition(lat, lon, zoom) {
+  function getZoom() {
+    return getMapZoom();
+  }
+
+  function setPosition(lat, lon, zoom, min_lon, min_lat, max_lon, max_lat) {
     var centre = new OpenLayers.LonLat(lon, lat);
 
     var centre = new OpenLayers.LonLat(lon, lat);
 
-    setMapCenter(centre, zoom);
+    if (min_lon && min_lat && max_lon && max_lat) {
+      var bbox = new OpenLayers.Bounds(min_lon, min_lat, max_lon, max_lat);
+
+      setMapExtent(bbox);
+    } else {
+      setMapCenter(centre, zoom);
+    }
 
     if (marker)
       removeMarkerFromMap(marker);
 
     if (marker)
       removeMarkerFromMap(marker);