Cách xác định diện tích của một đa giác trong OpenLayers 3

Mục lục:

Cách xác định diện tích của một đa giác trong OpenLayers 3
Cách xác định diện tích của một đa giác trong OpenLayers 3

Video: Cách xác định diện tích của một đa giác trong OpenLayers 3

Video: Cách xác định diện tích của một đa giác trong OpenLayers 3
Video: Install Fedora On VMware Worktation | Hướng dẫn cài Fedora trên VMware Worktation 2024, Tháng tư
Anonim

Đa giác là một cách tuyệt vời để thể hiện diện tích đất gần đúng trên bản đồ và thường hữu ích khi biết diện tích của đa giác mà bạn đã xác định. Điều này có thể thực hiện được trong OpenLayers 3; một công cụ lập bản đồ JavaScript mạnh mẽ.

Bài viết này sẽ hướng dẫn bạn thêm một đa giác, sau đó tính diện tích bằng hình cầu.

Xin lưu ý rằng bạn cần cài đặt bản đồ OpenLayers đang hoạt động trong trang web để theo dõi bài viết này. Nếu bạn chưa có, hãy làm thế nào để tạo bản đồ bằng OpenLayers 3.

Các bước

7151572 1
7151572 1

Bước 1. Tạo một đối tượng đa giác

Hàm tạo Polygon cần một mảng các mảng tọa độ; xác định mảng này trong một biến trước để bạn có thể sử dụng nó sau này. Chỉ cần sao chép dòng mã sau vào

yếu tố:

var tọa độ =

7151572 2
7151572 2

Bước 2. Thêm đối tượng vào một lớp vectơ

Để thêm đa giác vào bản đồ, bạn cần thêm nó vào nguồn, nguồn mà bạn thêm vào lớp vectơ, sau đó bạn có thể thêm vào bản đồ:

var vector_layer = new ol.layer. Vector ({source: new ol.source. Vector ({features: [polygon_feature]})}) map.addLayer (vector_layer);

7151572 3
7151572 3

Bước 3. Biến đổi hình học của đối tượng địa lý để sử dụng tọa độ

var current_projection = new ol.proj. Projection ({code: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). biến đổi (hiện_trình, chiếu_mới);

7151572 4
7151572 4

Bước 4. Tạo hình cầu để thực hiện phép tính

Hình cầu phải có kích thước bằng Trái đất (bán kính 6,3m mét). Về mặt kỹ thuật, hình cầu có bán kính bằng bán trục chính của ellipsoid WGS84.

var bridge = new ol. Sphere (6378137);

7151572 5
7151572 5

Bước 5. Sử dụng hình cầu để tính diện tích bằng phương pháp geodesicArea ()

Bởi vì phương pháp này cung cấp một giá trị tính bằng mét vuông, hãy chia cho một triệu để được km vuông.

var area_m = bridge.geodesicArea (tọa độ); var area_km = area_m / 1000/1000; console.log ('area:', area_km, 'km²'); // CONSOLE: diện tích: 2317133.7166773956 km²

7151572 6
7151572 6

Bước 6. Kiểm tra xem câu trả lời khu vực có hợp lý không

Chúng tôi biết điều đó là chính xác vì nó có vẻ như có kích thước xấp xỉ với Algeria, có diện tích là 2, 381, 741 km² (theo Wikipedia).

Đề xuất: