View Issue Details

IDProjectCategoryView StatusLast Update
0003324SAS.ПланетаХотелка / Feature requestpublic28-08-2024 16:00
Reporterzed Assigned To 
PrioritynormalSeverityminorReproducibilityhave not tried
Status confirmedResolutionopen 
Product Version160707 
Target Version41xxxx 
Summary0003324: Добавить алгоритм расчёта площадей из GeographicLib
DescriptionУ нас эта библиотека сейчас используется для расчёта расстояний, но как оказывается, она умеет считать и площади (и периметры) полигонов (описание для С++, но функционал доступен и из Си API: GeographicLib::PolygonAreaT).

Сейчас у нас для расчёта площади используется копи-паста из QGIS и переход на библиотечный алгоритм мне видится более разумным. Можно сделать 2 алгоритма и вынести в настройки, какой конкретно использовать.
Additional InformationНа заметку: алгоритм из GeographicLib работает с простыми полигонами без самопересечений. Так что предварительно полигоны надо "упрощать" при помощи Clipper-а или ещё как.
TagsNo tags attached.

Relationships

related to 0003755 resolvedzed Неверный подсчет площади 

Activities

zed

01-04-2021 17:06

manager   ~0020081

Уже и QGIS переходит на эту библиотеку: https://github.com/qgis/QGIS/pull/41726

zed

28-08-2024 15:55

manager   ~0020492

Last edited: 28-08-2024 16:00

Текущий алгоритм у нас так же не поддерживает самопересечения. Всё ровно так же, как описано в справке к geographiclib:

Arbitrarily complex polygons are allowed. In the case self-intersecting
of polygons the area is accumulated "algebraically", e.g., the areas of
the 2 loops in a figure-8 polygon will partially cancel.

Надо что-то думать.

Issue History

Date Modified Username Field Change
13-03-2018 12:28 zed New Issue
13-03-2018 12:28 zed Status new => confirmed
01-04-2021 17:06 zed Note Added: 0020081
01-04-2021 17:07 zed Relationship added related to 0003755
28-08-2024 15:55 zed Note Added: 0020492
28-08-2024 16:00 zed Note Edited: 0020492
28-08-2024 16:00 zed Note Edited: 0020492
08-08-2025 13:24 zed Category Хотелка => Хотелка / Feature request