Hi List,

I have a map that I thought was all correctly set up to use spherical mercator, 
and all my data (which is all projected in 900913) is correctly displaying on 
either open streetmap or google streets data. However, when I add a google 
satellite or hybrid layer, the initial load of the map shows the satellite 
layer displaced several hundred miles to the west. If I switch to the google 
streets layer without any zooming or panning, the displacement disappears. If I 
then switch back to the google satellite layer, again with no zooming or 
panning, it appears in the correct place. Throughout all of this, my data layer 
has no displacement. Furthermore, since all of this is set within mapfish, with 
extjs used for side panels, if I minimise the side panel while the displacement 
is occurring it also removes the displacement. I'm using the svn versions of 
openlayers and mapfish.

This is the code relating to setting up the map and layers:

function createMap() {
        var options = {
                projection: new OpenLayers.Projection("EPSG:900913"),
        displayProjection: new OpenLayers.Projection("EPSG:27700"),
        units: "m",
        maxResolution: 156543.0339,
        maxExtent: new OpenLayers.Bounds(-20037508.34, -20037508.34,
                                                 20037508.34, 20037508.34)
        };
return new OpenLayers.Map('olmap',options);
} //end createmap

function addlayers(map){
        
        
        // define wms
        layer = new OpenLayers.Layer.WMS("OA Sites WMS", 
"http://geoserver.thehumanjourney.net:80/geoserver/wms?";,
                           {layers: 'oadigi:oasites', transparent: true, 
format: 'image/png', buffer:0},
                            {isBaseLayer: false});
        
        
        
        // create Google Mercator layers
            var gmap = new OpenLayers.Layer.Google(
                "Google Streets",
                {'sphericalMercator': true}
            );
            var gsat = new OpenLayers.Layer.Google(
                "Google Satellite",
                {type: G_SATELLITE_MAP, 'sphericalMercator': true, 
numZoomLevels: 22}
            );
            var ghyb = new OpenLayers.Layer.Google(
                "Google Hybrid",
                {type: G_HYBRID_MAP, 'sphericalMercator': true}
            );

        
        // define pseudo-layer for highlighting selected features
        select = new OpenLayers.Layer.Vector("Selection", 
                {protocol: new mapfish.Protocol.TriggerEventDecorator(protocol),
                strategies: [new mapfish.Strategy.ProtocolListener({append: 
true})],
                styleMap: new 
OpenLayers.Style(OpenLayers.Feature.Vector.style["select"]), 
                displayInLayerSwitcher: false});
                
    
        // add layers
        map.addLayers([layer, select, gmap, gsat, ghyb]);

} //end addlayers

function setMapCenter() {
//define a new projection object so map can be centred using latlong
        var proj = new OpenLayers.Projection("EPSG:4326");
        var point = new OpenLayers.LonLat(-2.9, 53.6);
        this.setCenter(point.transform(proj, this.getProjectionObject()), 6);
} //end setMapCenter

I hope that's enough information for someone as it's hard for me to get this 
map accessible to the outside world yet.

Many thanks

Jo

-- 
-----------------------------------------------------
Joanne Cook
Senior IT Support and Development
Oxford Archaeology (North)
01524 880212
http://thehumanjourney.net


------
Files attached to this email may be in ISO 26300 format (OASIS Open Document 
Format). If you have difficulty opening them, please visit http://iso26300.info 
for more information.

_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users

Reply via email to