From 0c2fb4d7fbcec19cb4f7d1754a5da22518f1c007 Mon Sep 17 00:00:00 2001 From: jrobson Date: Thu, 2 Aug 2012 14:09:04 -0700 Subject: [PATCH] impose a cap on zoom level for current location (bug 38983) In certain areas where there are no monuments e.g. Australia we are searching an extremely large number of zoom levels. This caps the zoom levels we try to just 5 zoom levels (we might tweak this later) which in most cases gives a city view. --- assets/www/js/app.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/assets/www/js/app.js b/assets/www/js/app.js index 05d0aca..db24581 100644 --- a/assets/www/js/app.js +++ b/assets/www/js/app.js @@ -534,17 +534,19 @@ require( [ 'jquery', 'l10n', 'geo', 'api', 'templates', 'monuments', 'monument', function showMonumentsForPosition( latitude, longitude, zoomLevel ) { var d, map, bounds, nw, se, + maxZoom, pos = { lat: latitude, lon: longitude }; map = geo.getMap(); - zoomLevel = zoomLevel || map.getMaxZoom(); + maxZoom = map.getMaxZoom(); + zoomLevel = zoomLevel || maxZoom; geo.setCenterAndZoom( pos, zoomLevel, true ); bounds = map.getBounds(); nw = bounds.getNorthWest(); se = bounds.getSouthEast(); d = monuments.getInBoundingBox( nw.lng, se.lat, se.lng, nw.lat ). done( function( monuments ) { - if( monuments.length === 0 ) { + if( monuments.length === 0 && zoomLevel > maxZoom - 5 ) { showMonumentsForPosition( latitude, longitude, zoomLevel - 1 ); } else { showMonumentsMap( monuments ); @@ -738,6 +740,7 @@ require( [ 'jquery', 'l10n', 'geo', 'api', 'templates', 'monuments', 'monument', app: { clearHistory: clearHistory, goBack: goBack, + showMonumentsForPosition: showMonumentsForPosition, showMonumentsList: showMonumentsList, resolveImageThumbnail: resolveImageThumbnail, showPage: showPage