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 cookie và Chính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.