OpenLayers OpenLayers

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  
    726726        t.eq( ct, 3, "raiseLayer triggered changelayer the right # of times" ); 
    727727    } 
    728728 
    729     function test_15_Map_setCenter(t) { 
     729    function test_15_Map_moveTo(t) { 
    730730        t.plan(1); 
    731731 
    732732        map = new OpenLayers.Map('map'); 
     
    736736            {maxResolution: 'auto', maxExtent: new OpenLayers.Bounds(-10,-10,10,10)}); 
    737737        map.addLayer(baseLayer); 
    738738        var ll = new OpenLayers.LonLat(-100,-150); 
    739         map.setCenter(ll, 0); 
     739        map.moveTo(ll, 0); 
    740740        t.ok(map.getCenter().equals(new OpenLayers.LonLat(0,0)), "safely sets out-of-bounds lonlat"); 
    741741    } 
    742742 
  • lib/OpenLayers/Map.js

    old new  
    12511251     * 
    12521252     * TBD: reconsider forceZoomChange in 3.0 
    12531253     */ 
    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              
    12571281        if (!this.center && !this.isValidLonLat(lonlat)) { 
    12581282            lonlat = this.maxExtent.getCenterLonLat(); 
    12591283        } 
     
    13061330        // if neither center nor zoom will change, no need to do anything 
    13071331        if (zoomChanged || centerChanged || !dragging) { 
    13081332 
    1309             if (!dragging) { this.events.triggerEvent("movestart"); } 
     1333            if (!dragging && !noEvent) { 
     1334                this.events.triggerEvent("movestart"); 
     1335            } 
    13101336 
    13111337            if (centerChanged) { 
    13121338                if ((!zoomChanged) && (this.center)) {  
     
    13721398        } 
    13731399 
    13741400        // 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        } 
    13761404    }, 
    13771405 
    13781406    /**