Improved noteLayer and dataLayer availability, closes #65

This commit is contained in:
Aaron Lidman 2013-11-15 15:06:36 -08:00
parent dc82421f56
commit e62bac06ed
3 changed files with 12 additions and 14 deletions

View 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();
/*

View 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);