[OpenLayers-Users] WMS from ArcGIS Server on top of google maps
-Parameter 'srs' contains unacceptable value.
Arnd Wippermann
arnd.wippermann at web.de
Tue Mar 2 13:54:56 EST 2010
Hi,
i use this code to be able to pass a different projection code to the getFullRequestString of the Layer.WMS.
If in the options for the Layer.WMS projection is set, then it will be used instead of the map.projection.
OpenLayers.Layer.WMS.prototype.getFullRequestString = function(newParams,altUrl)
{
try{
var projectionCode=typeof this.options.projection == 'undefined' ? this.map.getProjection() : this.options.projection;
}catch(err){
var projectionCode=this.map.getProjection();
}
this.params.SRS = projectionCode=="none" ? null : projectionCode;
return OpenLayers.Layer.Grid.prototype.getFullRequestString.apply(this,arguments);
}
Arnd
_____
Von: users-bounces at openlayers.org [mailto:users-bounces at openlayers.org] Im Auftrag von Philipp Gaertner
Gesendet: Dienstag, 2. März 2010 03:05
An: users at openlayers.org
Betreff: [OpenLayers-Users] WMS from ArcGIS Server on top of google maps -Parameter 'srs' contains unacceptable value.
Hi list,
I have a layer of the states and territories of Australia and would like to overlay it on google maps using openlayers.
The Australia layer is a WMS which is on my ArcGIS Server. I use EPSG:102113 which represents in the ESRI world the WGS_1984_Web_Mercator.
The WMS has following capabilities:
<Layer queryable="1">
<Name>0</Name>
<Title>StateBoundaries_1</Title>
<Abstract>StateBoundaries_1</Abstract>
<CRS>CRS:84</CRS>
<CRS>EPSG:4326</CRS>
<CRS>EPSG:102113</CRS>
−
<EX_GeographicBoundingBox>
<westBoundLongitude>0.000870</westBoundLongitude>
<eastBoundLongitude>0.001429</eastBoundLongitude>
<southBoundLatitude>-0.000393</southBoundLatitude>
<northBoundLatitude>-0.000082</northBoundLatitude>
</EX_GeographicBoundingBox>
<BoundingBox CRS="CRS:84" minx="0.000870" miny="-0.000393" maxx="0.001429" maxy="-0.000082"/>
<BoundingBox CRS="EPSG:4326" minx="-0.000393" miny="0.000870" maxx="-0.000082" maxy="0.001429"/>
<BoundingBox CRS="EPSG:102113" minx="96.816766" miny="-43.740510" maxx="159.109219" maxy="-9.142176"/>
the openlayer setup looks like this
var geographic = new OpenLayers.Projection("EPSG:4326");
var mercator = new OpenLayers.Projection("EPSG:900913"); //aka EPSG:3785
var gda94 = new OpenLayers.Projection("EPSG:4283");
var world = new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34)
var mapOptions = {
projection: mercator,
displayProjection: geographic, //for Mouse Position
maxExtent: world,
restrictedExtent: world,
units: 'm',
numZoomLevels: 22,
maxResolution: 156543.0339,
controls: [new OpenLayers.Control.PanZoomBar(),
new OpenLayers.Control.KeyboardDefaults()]
};
var map = new OpenLayers.Map( 'map', mapOptions );
//Google Physical
var gphy = new OpenLayers.Layer.Google("Google Physical",
{type: G_PHYSICAL_MAP,
sphericalMercator: true,
isBaseLayer: true,
numZoomLevels: 22,
maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34)
});
map.addLayer(gphy);
var boundaries = new OpenLayers.Layer.WMS( "Boundaries",
"http://ag-0988a/ArcGIS/services/StateBoundaries_WGS84_WM_102113/MapServer/WMSServer?",
{layers: '0',//srs: 'EPSG:102113',
format: 'image/png',
transparent: true
},{
visibility: true,
isBaseLayer: false,
singleTile: false
}
);
map.addLayer(boundaries);
The error message is Parameter 'srs' contains unacceptable value.
I know that the google layer is defined with EPSG:900913 and my WMS has EPSG:102113, but I can't set the EPSG to 900913 because ESRI doesn't support it.
How do I go from here, what are my options? I need to use Google as baselayer but can reproject all WMS as I like.
Any suggestions are more than welcome.
Regards, Philipp
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/openlayers-users/attachments/20100302/3d1234b9/attachment.html
More information about the Users
mailing list