Làm cách nào để hiển thị vị trí chuột dưới dạng tooltip trong OpenLayers-2?


10

Tôi muốn tọa độ bản đồ như chuột trên hiệu ứng trong OpenLayers. Tôi đang sử dụng mã sau đây. Tuy nhiên, nó đang hiển thị tọa độ pixel:

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

wow 7k lượt xem và chỉ có 4 lượt bình chọn?
Bên dưới Radar

Câu trả lời:



11

Để thêm vào câu trả lời của simo ... đây là một ví dụ:

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>";
});

Bạn có thể cần phải chuyển đổi từ Mercator sang Geographic như tôi đã làm ... nếu vậy:

var position = e.map.getLonLatFromViewPortPx(e.xy).transform(new OpenLayers.Projection("EPSG:900913"), new OpenLayers.Projection("EPSG:4326"));

5

Kể từ Openlayers 2.12, cách tiếp cận sau đây hoạt động để truy cập tọa độ từ di chuột:

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

1

Trong Openlayers 2.13, bạn có thể làm như sau:

map.addControl(
    new OpenLayers.Control.MousePosition({
        prefix: 'Coords: ',
        separator: ' | ',
        numDigits: 2,
        emptyString: 'Mouse not over map'
    })
);
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.