Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

I want map coordinates as mouse over effect in OpenLayers. I am using the following code, however it is showing pixel coordinates:

    map.events.register("mousemove", map, function(e) {      
    var position = e.map.x + e.xy.y;
    OpenLayers.Util.getElement("tooltip").innerHTML = position 
    });

thank you

share|improve this question
    
wow 7k views and only 4 up votes? –  Below the Radar Feb 19 at 16:18
add comment

4 Answers

up vote 8 down vote accepted

you can convert pixels to lat/long with the help of getLonLatFromPixel() function.

See also openlayers FAQ.

share|improve this answer
add comment

In Openlayers 2.13, you can do it like:

map.addControl(
    new OpenLayers.Control.MousePosition({
        prefix: 'Coords: ',
        separator: ' | ',
        numDigits: 2,
        emptyString: 'Mouse not over map'
    })
);
share|improve this answer
add comment

As of Openlayers 2.12 the following approach works for accessing the coordinates from hovering:

map.events.register("mousemove", map, function (e) {            
var point = map.getLonLatFromPixel( this.events.getMousePosition(e) )     
    console.log(point.lon, point.lat)
});
share|improve this answer
add comment

To add to simo's answer... here's an example:

map.events.register("mousemove", map, function (e) {
    var position = e.map.getLonLatFromViewPortPx(e.xy);
    OpenLayers.Util.getElement("tooltip").innerHTML = "<label>Latitude: " + position.lat + "</label><br/><label>Longitude: " + position.lon + "</label>";
});

You may need to transform from Mercator to Geographic as i did... if so:

var position = e.map.getLonLatFromViewPortPx(e.xy).transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.