วิธีรับตำแหน่งคุณลักษณะใน OpenLayers v3


11

หลังจากที่ฉันใช้การโต้ตอบการวาดหรือปรับเปลี่ยนการโต้ตอบฉันมีฟังที่ส่งกลับคุณสมบัติที่แก้ไขหรือเพิ่ม

ตัวอย่าง

draw.on('drawend', function (event) {
    // get the feature
    var feature = event.element;
    // ...listen for changes on it
    logStatus(feature.getId());
});

ฉันรู้วิธีรับรหัส แต่ฉันต้องการตำแหน่ง (ไม่ช้า) ของคุณสมบัติเพราะฉันต้องการบันทึกลงในฐานข้อมูลฉันจะทำอย่างไร ฉันไม่พบมันใน API

คำตอบ:


27

หากฟีเจอร์นี้เป็นคะแนนให้ใช้

var coord = event.feature.getGeometry().getCoordinates();

สำหรับรูปทรงเรขาคณิตของจุดgetCoordinatesส่งกลับอาร์เรย์จำนวน 2 หมายเลขแรกคือxพิกัด ตัวเลขที่สองคือyพิกัด

และถ้าคุณต้องการแปลงcoordเป็นลองจิจูดและละติจูดใช้:

coord = ol.proj.transform(coord, 'EPSG:3857', 'EPSG:4326');
var lon = coord[0];
var lat = coord[1];

ด้านบนสมมติว่ามุมมองแผนที่ของคุณคือ Web Mercator (EPSG: 3857) ซึ่งเป็นค่าเริ่มต้น

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.