Improved noteLayer and dataLayer availability, closes #65
authorAaron Lidman <aaronlidman@gmail.com>
Fri, 15 Nov 2013 23:06:36 +0000 (15:06 -0800)
committerAaron Lidman <aaronlidman@gmail.com>
Fri, 15 Nov 2013 23:06:44 +0000 (15:06 -0800)
app/assets/javascripts/index/browse.js
app/assets/javascripts/leaflet.layers.js
config/locales/en.yml

index a47dd348e94b0dce70a17cf957b98d750be85cce..752c84fecee841505b14bc402ce324c9f5cde7d6 100644 (file)
@@ -41,13 +41,9 @@ function initializeBrowse(map) {
   });
 
   function updateData() {
-    if (map.getZoom() >= 15) {
-      var bounds = map.getBounds();
-      if (!browseBounds || !browseBounds.contains(bounds)) {
-        browseBounds = bounds;
-        getData();
-      }
-    }
+    var bounds = map.getBounds();
+    getData(!browseBounds || !browseBounds.contains(bounds));
+    browseBounds = bounds;
   }
 
   function displayFeatureWarning(count, limit, callback) {
@@ -62,17 +58,19 @@ function initializeBrowse(map) {
 
   var dataLoader;
 
-  function getData() {
+  function getData(inPrevious) {
     var bounds = map.getBounds();
     var size = bounds.getSize();
 
     if (size > OSM.MAX_REQUEST_AREA) {
       $('#browse_status').html(
         $("<p class='warning'></p>")
-          .text(I18n.t("browse.start_rjs.unable_to_load_size", { max_bbox_size: OSM.MAX_REQUEST_AREA, bbox_size: size })));
+          .text(I18n.t("browse.start_rjs.unable_to_load_size", { max_bbox_size: OSM.MAX_REQUEST_AREA, bbox_size: size.toFixed(2) })));
       return;
     }
 
+    if (inPrevious) return;
+
     var url = "/api/" + OSM.API_VERSION + "/map?bbox=" + bounds.toBBoxString();
 
     /*
index b04216d2696f126a928e5b220d3e9a74e3063a77..7703529b8799e35d94b06ddefc1fb9d4e60705d1 100644 (file)
@@ -120,7 +120,7 @@ L.OSM.layers = function(options) {
       var list = $('<ul>')
         .appendTo(overlaySection);
 
-      function addOverlay(layer, name, minZoom) {
+      function addOverlay(layer, name, maxArea) {
         var refName = name.split(' ').join('_').toLowerCase();
         var item = $('<li>')
           .attr('class', refName)
@@ -153,7 +153,7 @@ L.OSM.layers = function(options) {
         });
 
         map.on('zoomend', function() {
-          var disabled = map.getZoom() < minZoom + 1;
+          var disabled = map.getBounds().getSize() >= maxArea;
           $(input).prop('disabled', disabled);
           $(item).attr('class', disabled ? 'disabled' : '');
           item.attr('data-original-title', disabled ?
@@ -161,8 +161,8 @@ L.OSM.layers = function(options) {
         });
       }
 
-      addOverlay(map.noteLayer, I18n.t('javascripts.map.layers.notes'), 10);
-      addOverlay(map.dataLayer, I18n.t('javascripts.map.layers.data'), 15);
+      addOverlay(map.noteLayer, I18n.t('javascripts.map.layers.notes'), OSM.MAX_NOTE_REQUEST_AREA);
+      addOverlay(map.dataLayer, I18n.t('javascripts.map.layers.data'), OSM.MAX_REQUEST_AREA);
     }
 
     options.sidebar.addPane($ui);
index 3d41392de2e26a1f07fb252130bf74be8560a2f0..f33726357a5a642916dfbf1522dda854ad6994bd 100644 (file)
@@ -173,7 +173,7 @@ en:
     start_rjs:
       loaded_an_area_with_num_features: "Loading %{num_features} features, which may make your browser slow or unresponsive. Are sure you want to display this data?"
       load_data: "Load Data"
-      unable_to_load_size: "Unable to load: Bounding box size of %{bbox_size} is too large (must be smaller than %{max_bbox_size})"
+      unable_to_load_size: "Unable to load map data, too large of an area (%{bbox_size}). Area must be smaller than %{max_bbox_size} square degrees."
       loading: "Loading..."
     tag_details:
       tags: "Tags"