Ticket #967: patch-967-r5944-B0.diff
| File patch-967-r5944-B0.diff, 2.9 kB (added by elemoine, 10 months ago) |
|---|
-
tests/test_Map.html
old new 726 726 t.eq( ct, 3, "raiseLayer triggered changelayer the right # of times" ); 727 727 } 728 728 729 function test_15_Map_ setCenter(t) {729 function test_15_Map_moveTo(t) { 730 730 t.plan(1); 731 731 732 732 map = new OpenLayers.Map('map'); … … 736 736 {maxResolution: 'auto', maxExtent: new OpenLayers.Bounds(-10,-10,10,10)}); 737 737 map.addLayer(baseLayer); 738 738 var ll = new OpenLayers.LonLat(-100,-150); 739 map. setCenter(ll, 0);739 map.moveTo(ll, 0); 740 740 t.ok(map.getCenter().equals(new OpenLayers.LonLat(0,0)), "safely sets out-of-bounds lonlat"); 741 741 } 742 742 -
lib/OpenLayers/Map.js
old new 1251 1251 * 1252 1252 * TBD: reconsider forceZoomChange in 3.0 1253 1253 */ 1254 setCenter: function (lonlat, zoom, dragging, forceZoomChange) { 1255 this.dragging = !!dragging; 1256 1254 setCenter: function(lonlat, zoom, dragging, forceZoomChange) { 1255 this.moveTo(lonlat, zoom, { 1256 'dragging': dragging, 1257 'forceZoomChange': forceZoomChange 1258 }); 1259 }, 1260 1261 /** 1262 * Method: moveTo 1263 * 1264 * Parameters: 1265 * lonlat - {<OpenLayers.LonLat>} 1266 * zoom - {Integer} 1267 * options - {Object} 1268 */ 1269 moveTo: function(lonlat, zoom, options) { 1270 // dragging is false by default 1271 var dragging = (options && options.dragging); 1272 // forceZoomChange is false by default 1273 var forceZoomChange = (options && options.forceZoomChange); 1274 // noEvent is false by default 1275 var noEvent = (options && options.noEvent); 1276 // cancelTween is true by default 1277 var cancelTween = (!options || 1278 options.cancelTween == null || 1279 options.cancelTween); 1280 1257 1281 if (!this.center && !this.isValidLonLat(lonlat)) { 1258 1282 lonlat = this.maxExtent.getCenterLonLat(); 1259 1283 } … … 1306 1330 // if neither center nor zoom will change, no need to do anything 1307 1331 if (zoomChanged || centerChanged || !dragging) { 1308 1332 1309 if (!dragging) { this.events.triggerEvent("movestart"); } 1333 if (!dragging && !noEvent) { 1334 this.events.triggerEvent("movestart"); 1335 } 1310 1336 1311 1337 if (centerChanged) { 1312 1338 if ((!zoomChanged) && (this.center)) { … … 1372 1398 } 1373 1399 1374 1400 // even if nothing was done, we want to notify of this 1375 if (!dragging) { this.events.triggerEvent("moveend"); } 1401 if (!dragging && !noEvent) { 1402 this.events.triggerEvent("moveend"); 1403 } 1376 1404 }, 1377 1405 1378 1406 /**
