Расчет площади прямоугольника по координатам

Если у меня есть две точки (51.9925734, 5.65038093), (51.99226769, 5.64991222)

Я хочу получить прямоугольник земли.

Я пробовал этот метод с других ресурсов:

from area import area
obj_field = {'type':'Polygon','coordinates':[[[51.9925734,5.65038093],
                                     [51.9925734,5.64991222],
                                     [51.99226769,5.64991222],
                                     [51.99226769,5.65038093]]]}
field_area_2 = area(obj_field)
print(f'The total field area is: {field_area_2} square meters')
The total field area is: 1767.018812772391 square meters

Но я не уверен, что это правильно.

1 ответ

Решение

Для небольших областей, таких как ваш пример, самый простой подход - преобразовать координаты широты и долготы в UTM. Затем вы можете использовать простую математику, например, вычислить площадь прямоугольника, как в этом фрагменте:

import utm

a_geo = 51.9925734, 5.65038093
b_geo = 51.99226769, 5.64991222

# Convert lat, lon to utm
a_easting, a_northing, zone, _ = utm.from_latlon(*a_geo)
b_easting, b_northing, _, _ = utm.from_latlon(*b_geo, force_zone_number=zone)

area = abs((a_easting - b_easting) * (a_northing - b_northing))
Другие вопросы по тегам