Многоугольники - отличный способ представить приблизительную площадь земли на карте, и часто бывает полезно знать площадь определенного вами многоугольника. Это возможно в OpenLayers 3; мощный инструмент сопоставления JavaScript.
Эта статья поможет вам добавить многоугольник, а затем вычислить площадь с помощью сферы.
Обратите внимание, что для работы с этой статьей вам необходимо установить на веб-страницу работающую карту OpenLayers. Если у вас его нет, как создать карту с помощью OpenLayers 3.
Шаги
Шаг 1. Создайте полигональный объект
Функция конструктора Polygon нуждается в массиве массивов координат; сначала определите этот массив в переменной, чтобы вы могли использовать его позже. Просто скопируйте следующую строку кода в свой
элемент:
var координаты =
Шаг 2. Добавьте объект на векторный слой
Чтобы добавить многоугольник на карту, вам нужно добавить его в источник, который вы добавляете в векторный слой, который затем можно добавить на карту:
var vector_layer = new ol.layer. Vector ({источник: новый ol.source. Vector ({features: [polygon_feature]})}) map.addLayer (vector_layer);
Шаг 3. Преобразуйте геометрию объекта, чтобы использовать координаты
var current_projection = new ol.proj. Projection ({code: "EPSG: 4326"}); var new_projection = tile_layer.getSource (). getProjection (); polygon_feature.getGeometry (). transform (текущая_проекция, новая_проекция);
Шаг 4. Создайте сферу для выполнения расчета
Сфера должна быть размером с Землю (иметь радиус 6,3 метра). Технически сфера имеет радиус, равный большой полуоси эллипсоида WGS84.
var Sphere = new ol. Sphere (6378137);
Шаг 5. Используйте сферу для вычисления площади с помощью метода geodesicArea ()
Поскольку метод предоставляет значение в квадратных метрах, разделите на миллион, чтобы получить квадратные километры.
var area_m = сфера.geodesicArea (координаты); var area_km = area_m / 1000/1000; console.log ('площадь:', площадь_км, 'км²'); // КОНСОЛЬ: площадь: 2317133,7166773956 км²
Шаг 6. Убедитесь, что ответ области имеет смысл
Мы знаем, что это правильно, потому что он примерно такого же размера, как Алжир, площадь которого составляет 2 381 741 км² (из Википедии).