[OpenLayers-Users] Google background layers offset with overlay layers

Dara Olson dolson at glifwc.org
Tue Feb 5 14:32:17 PST 2013


Greetings.

We have an Open Layer map that uses Google background layers. We overlay
other WMS and a text file with points and when the map is loaded Google
Maps seems to be slightly off to the east. When you turn on Google
Satellite layer then the map bounces back into the correct location lining
up with the overlay layers correctly. You can turn Google Streets back on
and it lines up correctly. This application was working correctly without
the offset up until around 3-4 months ago (October-November) when this
started happening.

Any suggestions on why this may be happening? Or points in the correct
direction to fix? Below is the map.js and a link to the website.
http://data.glifwc.org/manoomin.harvest.info/<http://maps.glifwc.org/manoomin.harvest.info/>

var map;

            function init(){

                // Define Map Controls

                var options = {
                    maxExtent: new OpenLayers.Bounds(-20037508.34,
-20037508.34, 20037508.34, 20037508.34),
                    controls: [new OpenLayers.Control.Navigation(), new
OpenLayers.Control.PanZoomBar(), new OpenLayers.Control.LayerSwitcher()]
                };

                map = new OpenLayers.Map('map', options);
                //map = new OpenLayers.Map('map');

                // Define Base Layers

                var gmap = new OpenLayers.Layer.Google(
                    "Google Streets", // the default
                    {numZoomLevels: 20}
                );
                var gsat = new OpenLayers.Layer.Google(
                    "Google Satellite",
                    {type: google.maps.MapTypeId.SATELLITE, numZoomLevels:
22}
                );
                var ghyb = new OpenLayers.Layer.Google(
                    "Google Hybrid",
                    {type: google.maps.MapTypeId.HYBRID, numZoomLevels: 20}
                );
                var gphy = new OpenLayers.Layer.Google(
                    "Google Physical",
                    {type: google.maps.MapTypeId.TERRAIN}
                );

                // Define Overlay Layers

                var layer = new OpenLayers.Layer.Vector("Date-regulated
Manoomin Lakes", {
                    strategies: [new OpenLayers.Strategy.BBOX({resFactor:
1.1})],
                    protocol: new OpenLayers.Protocol.HTTP({
                        url: "points/points.txt",
                        format: new OpenLayers.Format.Text()
                    })
                });
                //Projection = WGS84 (4326)

                var manoomin = new OpenLayers.Layer.WMS("All Manoomin
Waters",
                    "http://maps.glifwc.org/glifwc_wms.php?",
                    {'layers':
'manoomin_waterbodies,manoomin_lines,manoomin_points', transparent: true,
format: 'image/gif'},
                    {isBaseLayer: false, visibility: true}
                );
                //Projection = WGS84 (4326)

                // Add Layers To Map

                map.addLayers([gmap, gsat, ghyb, gphy, layer, manoomin]);
                //map.zoomToMaxExtent();

                //Set Initial Extent
                map.setCenter(new OpenLayers.LonLat(-90, 45.5).transform(
                    new OpenLayers.Projection("EPSG:4326"),
                    map.getProjectionObject()
                ), 6);


            //****** Select And Display Feature Info ******//

                // Interaction; not needed for initial display.
                selectControl = new OpenLayers.Control.SelectFeature(layer);
                map.addControl(selectControl);
                selectControl.activate();
                layer.events.on({
                    'featureselected': onFeatureSelect,
                    'featureunselected': onFeatureUnselect
                });
            }


            // Needed only for interaction, not for the display.
            function onPopupClose(evt) {
                // 'this' is the popup.
                var feature = this.feature;
                if (feature.layer) { // The feature is not destroyed
                    selectControl.unselect(feature);
                } else { // After "moveend" or "refresh" events on POIs
layer all
                         //     features have been destroyed by the
Strategy.BBOX
                    this.destroy();
                }
            }
            function onFeatureSelect(evt) {
                feature = evt.feature;
                popup = new OpenLayers.Popup.FramedCloud("featurePopup",

feature.geometry.getBounds().getCenterLonLat(),
                                         new OpenLayers.Size(100,100),
                                         "<h2>"+feature.attributes.title +
"</h2>" +
                                         feature.attributes.description,
                                         null, true, onPopupClose);
                feature.popup = popup;
                popup.feature = feature;
                map.addPopup(popup, true);
            }
            function onFeatureUnselect(evt) {
                feature = evt.feature;
                if (feature.popup) {
                    popup.feature = null;
                    map.removePopup(feature.popup);
                    feature.popup.destroy();
                    feature.popup = null;
                }
            }

Any help would be greatly appreciated.
Dara
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/openlayers-users/attachments/20130205/08c8e906/attachment.html>


More information about the Users mailing list