วิธีการแสดงตำแหน่งเมาส์เป็นคำแนะนำเครื่องมือใน OpenLayers-2


10

ฉันต้องการให้พิกัดแผนที่เป็นเม้าส์เอฟเฟกต์ใน OpenLayers ฉันใช้รหัสต่อไปนี้ อย่างไรก็ตามมันแสดงพิกัดพิกเซล:

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

ว้าว 7k views และเพียง 4 ขึ้นโหวต?
ใต้ Radar

คำตอบ:


11

คุณสามารถแปลงพิกเซลเป็น lat / long ด้วยความช่วยเหลือของฟังก์ชั่นgetLonLatFromPixel ()

ดูเพิ่มเติม openlayers คำถามที่พบบ่อย


11

เพื่อเพิ่มคำตอบของ simo ... นี่เป็นตัวอย่าง:

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

คุณอาจต้องเปลี่ยนจาก Mercator เป็น Geographic เหมือนที่ฉันทำ ... ถ้าเป็นเช่นนั้น:

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

5

ในฐานะของ Openlayers 2.12 วิธีการต่อไปนี้ใช้สำหรับการเข้าถึงพิกัดจากการโฮเวอร์:

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

1

ใน Openlayers 2.13 คุณสามารถทำได้เช่น:

map.addControl(
    new OpenLayers.Control.MousePosition({
        prefix: 'Coords: ',
        separator: ' | ',
        numDigits: 2,
        emptyString: 'Mouse not over map'
    })
);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.