วิธีการกำหนดพื้นที่ของรูปหลายเหลี่ยมใน OpenLayers 3

สารบัญ:

วิธีการกำหนดพื้นที่ของรูปหลายเหลี่ยมใน OpenLayers 3
วิธีการกำหนดพื้นที่ของรูปหลายเหลี่ยมใน OpenLayers 3

วีดีโอ: วิธีการกำหนดพื้นที่ของรูปหลายเหลี่ยมใน OpenLayers 3

วีดีโอ: วิธีการกำหนดพื้นที่ของรูปหลายเหลี่ยมใน OpenLayers 3
วีดีโอ: ติดตั้ง Fedora 34 Linux และการใช้งานเบื้องต้น 2024, อาจ
Anonim

รูปหลายเหลี่ยมเป็นวิธีที่ยอดเยี่ยมในการแสดงพื้นที่โดยประมาณของที่ดินบนแผนที่ และมักจะเป็นประโยชน์ที่จะทราบพื้นที่ของรูปหลายเหลี่ยมที่คุณกำหนดไว้ เป็นไปได้ใน OpenLayers 3; เครื่องมือสร้างแผนที่ JavaScript อันทรงพลัง

บทความนี้จะแนะนำคุณในการเพิ่มรูปหลายเหลี่ยม จากนั้นจึงคำนวณพื้นที่โดยใช้ทรงกลม

โปรดทราบว่าคุณต้องติดตั้งแผนที่ OpenLayers ที่ใช้งานได้ในหน้าเว็บเพื่อติดตามบทความนี้ หากคุณไม่มี วิธีทำแผนที่โดยใช้ OpenLayers 3

ขั้นตอน

7151572 1
7151572 1

ขั้นตอนที่ 1 สร้างคุณลักษณะรูปหลายเหลี่ยม

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

ธาตุ:

พิกัด var =

7151572 2
7151572 2

ขั้นตอนที่ 2 เพิ่มคุณสมบัติให้กับเลเยอร์เวกเตอร์

ในการเพิ่มรูปหลายเหลี่ยมลงในแผนที่ คุณต้องเพิ่มรูปหลายเหลี่ยมลงในซอร์ส ซึ่งคุณเพิ่มลงในเลเยอร์เวกเตอร์ ซึ่งคุณสามารถเพิ่มลงในแผนที่ได้:

var vector_layer = ol.layer. Vector ใหม่ ({ แหล่งที่มา: ol.source. Vector ใหม่ ({ คุณสมบัติ: [polygon_feature] }) }) map.addLayer (vector_layer);

7151572 3
7151572 3

ขั้นตอนที่ 3 แปลงรูปทรงของจุดสนใจเพื่อใช้พิกัด

var current_projection = ol.proj. Projection ใหม่ ({รหัส: "EPSG:4326"}); var new_projection = tile_layer.getSource().getProjection(); รูปหลายเหลี่ยม_feature.getGeometry().transform(current_projection, new_projection);

7151572 4
7151572 4

ขั้นตอนที่ 4 สร้างทรงกลมเพื่อทำการคำนวณ

ทรงกลมควรมีขนาดเท่ากับโลก (ควรมีรัศมี 6.3 เมตร) ในทางเทคนิค ทรงกลมมีรัศมีเท่ากับกึ่งแกนเอกของทรงรี WGS84

var sphere = ol. Sphere ใหม่ (6378137);

7151572 5
7151572 5

ขั้นตอนที่ 5. ใช้ทรงกลมเพื่อคำนวณพื้นที่โดยใช้วิธี geodesicArea()

เนื่องจากวิธีนี้ให้ค่าเป็นตารางเมตร หารด้วยล้านจะได้ตารางกิโลเมตร

var area_m = sphere.geodesicArea (พิกัด); var area_km = area_m / 1000 / 1000; console.log('พื้นที่: ', area_km, 'km²'); // CONSOLE: พื้นที่: 2317133.7166773956 km²

7151572 6
7151572 6

ขั้นตอนที่ 6 ตรวจสอบว่าคำตอบในพื้นที่เหมาะสม

เรารู้ว่าถูกต้องเพราะดูเหมือนว่าจะมีขนาดใกล้เคียงกับแอลจีเรีย ซึ่งมีพื้นที่ 2, 381, 741 ตารางกิโลเมตร (จากวิกิพีเดีย)

แนะนำ: