[OpenLayers-Users] Re: strange behavior with wrong click event coordinates and drag pan

Puneet Kishor punk.kish at gmail.com
Fri Jan 6 12:13:53 EST 2012


a little more investigation, more revelation (see below)

On Jan 6, 2012, at 10:50 AM, Puneet Kishor wrote:

> I am experiencing a strange behavior that perhaps someone can help me troubleshoot. I am trying to make some custom mods to OpenLayers 2.11 -- nothing fancy, nothing in the JavaScript, only some of the buttons and images. So, I made a copy of my OL installation, and called it OpenLayers-copy, and replaced my OL script line in my web page like so
> 
>    - <script type="text/javascript" src="path/to/lib/OpenLayers-2.11/OpenLayers.js"></script>
>    + <script type="text/javascript" src="path/to/lib/OpenLayers-copy/OpenLayers.js"></script>
> 
>    var map = new OpenLayers.Map("map", {
>        "controls": [
>          - new OpenLayers.Control.LayerSwitcher(),
>          - new OpenLayers.Control.Navigation(),
>          - new OpenLayers.Control.PanZoom(),
>          + new OpenLayers.Control.LayerSwitcher({
>          +     "roundedCornerColor": "rgba(0,0,0,0.8)"
>          + }),
>          + new OpenLayers.Control.ZoomPanel(),    
>            new OpenLayers.Control.MousePosition({
>                  "div": document.getElementById("coords"), 
>                  "numDigits": 2
>            })
>        ],
>        "projection": new OpenLayers.Projection("EPSG:900913"),
>        "displayProjection": new OpenLayers.Projection("EPSG:4326"),
>        "units": "m",
>        "maxResolution": 156543.0339,
>        "maxExtent": new OpenLayers.Bounds(-20037508, -20037508, 20037508, 20037508)
>    });
> 
>    map.events.register("click", map, collections);
> 
>    "collections": function(e) {
>        var lonlat = map.getLonLatFromViewPortPx(e.xy).transform(
>            new OpenLayers.Projection("EPSG:900913"),
>            new OpenLayers.Projection("EPSG:4326")
>        );
> 
>        .. do something with lng/lat ..
>    }
> 
> 
> That is the extent of my OL changes. I am now seeing the following two behaviors that are foxing me --
> 
> 1. The mouse display shows the correct mouse position in lng lat, however, the actual point clicked on (for further querying is off by several tens of degrees. For example, if I click at [-78.71, 43.33], the actual point calculated by the click event listener is [-61.45, 61.61]. Why?
> 

I changed the OL library to the original, as downloaded from OL servers. The click reported by the mouse position display is off from the click reported by the map listener even with the original OL library, albeit, by a smaller amount. For example, I clicked on [-78.35, 43.45] as shown in the mouse position display. The click event reported [-77.97, 49.61]. A very small lng shift but a fairly large lat shift.

This is quite perplexing, and definitely very erroneous.

> 2. I am unable to drag and pan the map. On the other hand, if I bring back Control.Navigation and Control.PanZoom then I am able to drag pan the map. I want to be able to drag pan the map, but I don't want to show the PanZoom controls. How can I achieve that?
> 
> Many thanks,
> 
> 
> --
> Puneet Kishor
> 
> 



More information about the Users mailing list