Adjust how the parameters are calculated for the GETVISIBLEMAPEXTENT call for overlays so that existing parameters are safely overwritten with the required parameters for this call. r=me (Closes #1647)

git-svn-id: http://svn.openlayers.org/trunk/openlayers@7928 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
Paul Spencer
2008-09-02 15:46:35 +00:00
parent f8d3e41105
commit ede7bef13c

View File

@@ -28,7 +28,7 @@ OpenLayers.Layer.MapGuide = OpenLayers.Class(OpenLayers.Layer.Grid, {
* {Boolean} use tile server or request single tile image. Note that using
* singleTile *and* isBaseLayer false is *not recommend*: it uses synchronous
* XMLHttpRequests to load tiles, and this will *lock up users browsers*
* during requests.
* during requests if the server fails to respond.
**/
singleTile: false,
@@ -63,18 +63,29 @@ OpenLayers.Layer.MapGuide = OpenLayers.Class(OpenLayers.Layer.Grid, {
* Constructor: OpenLayers.Layer.MapGuide
* Create a new Mapguide layer, either tiled or untiled.
*
* For tiled layers, the 'groupName' and 'mapDefnition' options
* must be specified as options.
* For tiled layers, the 'groupName' and 'mapDefinition' values
* must be specified as parameters in the constructor.
*
* For untiled layers, specify either combination of 'mapName' and
* 'session', or 'mapDefinition' and 'locale'.
* For untiled base layers, specify either combination of 'mapName' and
* 'session', or 'mapDefinition' and 'locale'.
*
* For untiled overlay layers (singleTile=true and isBaseLayer=false),
* mapName and session are required parameters for the Layer constructor.
* Also NOTE: untiled overlay layers issues a synchronous AJAX request
* before the image request can be issued so the users browser may lock
* up if the MG Web tier does not respond in a timely fashion.
*
* NOTE: MapGuide OS uses a DPI value and degrees to meters conversion
* factor that are different than the defaults used in OpenLayers,
* so these must be adjusted accordingly in your application.
* See the MapGuide example for how to set these values for MGOS.
*
* Parameters:
* name - {String} Name of the layer displayed in the interface
* url - {String} Location of the MapGuide mapagent executable
* (e.g. http://localhost:8008/mapguide/mapagent/mapagent.fcgi)
* params - {Object} hashtable of additional parameters to use. Some
* parameters may require additional code on the serer. The ones that
* parameters may require additional code on the server. The ones that
* you may want to use are:
* - mapDefinition - {String} The MapGuide resource definition
* (e.g. Library://Samples/Gmap/Maps/gmapTiled.MapDefinition)
@@ -116,6 +127,7 @@ OpenLayers.Layer.MapGuide = OpenLayers.Class(OpenLayers.Layer.Grid, {
this.params,
this.SINGLE_TILE_PARAMS
);
} else {
//initialize for tiled layers
OpenLayers.Util.applyDefaults(
@@ -196,16 +208,15 @@ OpenLayers.Layer.MapGuide = OpenLayers.Class(OpenLayers.Layer.Grid, {
//but we first need to call GETVISIBLEMAPEXTENT to set the extent
var getVisParams = {};
getVisParams = OpenLayers.Util.extend(getVisParams, params);
getVisParams.operation = "GETVISIBLEMAPEXTENT";
getVisParams.version = "1.0.0";
getVisParams.session = this.params.session;
getVisParams.mapName = this.params.mapName;
getVisParams.format = 'text/xml';
getVisParams = OpenLayers.Util.extend(getVisParams, params);
url = this.getFullRequestString( getVisParams );
OpenLayers.Request.GET({
url: this.url, params: getVisParams, async: false
});
OpenLayers.Request.GET({url: url, async: false});
}
//construct the full URL
@@ -225,7 +236,7 @@ OpenLayers.Layer.MapGuide = OpenLayers.Class(OpenLayers.Layer.Grid, {
tilerow: rowidx,
scaleindex: this.resolutions.length - this.map.zoom - 1
});
}
}
return url;
},