Как определить площадь многоугольника в OpenLayers 3

Оглавление:

Как определить площадь многоугольника в OpenLayers 3
Как определить площадь многоугольника в OpenLayers 3

Видео: Как определить площадь многоугольника в OpenLayers 3

Видео: Как определить площадь многоугольника в OpenLayers 3
Видео: Fedora 36 Как создать загрузочную флешку и попробовать этот Linux, без установки 2024, Май
Anonim

Многоугольники - отличный способ представить приблизительную площадь земли на карте, и часто бывает полезно знать площадь определенного вами многоугольника. Это возможно в OpenLayers 3; мощный инструмент сопоставления JavaScript.

Эта статья поможет вам добавить многоугольник, а затем вычислить площадь с помощью сферы.

Обратите внимание, что для работы с этой статьей вам необходимо установить на веб-страницу работающую карту OpenLayers. Если у вас его нет, как создать карту с помощью OpenLayers 3.

Шаги

7151572 1
7151572 1

Шаг 1. Создайте полигональный объект

Функция конструктора Polygon нуждается в массиве массивов координат; сначала определите этот массив в переменной, чтобы вы могли использовать его позже. Просто скопируйте следующую строку кода в свой

элемент:

var координаты =

7151572 2
7151572 2

Шаг 2. Добавьте объект на векторный слой

Чтобы добавить многоугольник на карту, вам нужно добавить его в источник, который вы добавляете в векторный слой, который затем можно добавить на карту:

var vector_layer = new ol.layer. Vector ({источник: новый ol.source. Vector ({features: [polygon_feature]})}) map.addLayer (vector_layer);

7151572 3
7151572 3

Шаг 3. Преобразуйте геометрию объекта, чтобы использовать координаты

var current_projection = new ol.proj. Projection ({code: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). transform (текущая_проекция, новая_проекция);

7151572 4
7151572 4

Шаг 4. Создайте сферу для выполнения расчета

Сфера должна быть размером с Землю (иметь радиус 6,3 метра). Технически сфера имеет радиус, равный большой полуоси эллипсоида WGS84.

var Sphere = new ol. Sphere (6378137);

7151572 5
7151572 5

Шаг 5. Используйте сферу для вычисления площади с помощью метода geodesicArea ()

Поскольку метод предоставляет значение в квадратных метрах, разделите на миллион, чтобы получить квадратные километры.

var area_m = сфера.geodesicArea (координаты); var area_km = area_m / 1000/1000; console.log ('площадь:', площадь_км, 'км²'); // КОНСОЛЬ: площадь: 2317133,7166773956 км²

7151572 6
7151572 6

Шаг 6. Убедитесь, что ответ области имеет смысл

Мы знаем, что это правильно, потому что он примерно такого же размера, как Алжир, площадь которого составляет 2 381 741 км² (из Википедии).

Рекомендуемые: