powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / вычисление площади по гео координатам
11 сообщений из 11, страница 1 из 1
вычисление площади по гео координатам
    #36929538
_devel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть многоугольник на "шарике". известны его координаты(широта и долгота).
нужен алгоритм расчета площади многоугольника.

может кто нибудь с этим сталкивался? или ссылку находил?

поделитесь плз!!!
...
Рейтинг: 0 / 0
вычисление площади по гео координатам
    #36929545
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_devel,

Для сферы http://ru.wikipedia.org/wiki/Сферический_треугольник

А вот для эллипсоида не знаю.
...
Рейтинг: 0 / 0
вычисление площади по гео координатам
    #36929546
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е. смысл тот же, но нужно вывести эту формулу с учетом разных радиусов
...
Рейтинг: 0 / 0
вычисление площади по гео координатам
    #36929653
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
вычисление площади по гео координатам
    #36930229
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_devel,

разбить многоугольник на треугольники (триангуляция) и расчитать площать как объединение сферических треугольников по формуле как предложили выше.
...
Рейтинг: 0 / 0
вычисление площади по гео координатам
    #36930395
_devel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем ОГРОМНОЕ!


Вот за ночь кое-что навоял, на "скорую руку".

C#
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
     private static double AreaPolygon(PointF[] points)
        {
            double s = 0;
            for (int i = 0; i < points.Length - 1; i++)
            {
                 s += (points[i + 1].X - points[i].X) * (points[i + 1].Y + points[i].Y) / 2;
            }
            return Math.Abs(s);
        }

        public static double GeoAreaPolygon(PointF[] points)
        {
            double Lekv = 40075700;
            double Lmer = 40008550; //40 008,6

            ArrayList lat = new ArrayList();
            ArrayList lon = new ArrayList();
            foreach (PointF point in points)
            {
                lat.Add(point.X);
                lon.Add(point.Y);
            }
            ArrayList nds = new ArrayList();
            for (int i = 0; i < points.Length; i++)
            {
                double mlat = (float)lat[i] * Lekv / 360;
                double radlat = (float)lat[i] / (180 / Math.PI);
                double mlon = (float)lon[i] * Math.Cos(radlat) * Lmer / 360;
                nds.Add(new PointF((float)mlat, (float)mlon));
            }
            PointF[] arrPoints = new PointF[points.Length];
            for (int i = 0; i < nds.Count; i++)
            {
                arrPoints[i] = (PointF)nds[i];
            }
            return AreaPolygon(arrPoints);
        }

AreaPolygon - считает площадь.
GeoAreaPolygon - приводит географические координаты к метрам и вызывает AreaPolygon

Вроде сходиться, но на маленьких площадях есть не маленькая погрешность.
...
Рейтинг: 0 / 0
вычисление площади по гео координатам
    #36930471
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_develВроде сходиться, но на маленьких площадях есть не маленькая погрешность.
Это очень странно. Должно быть наоборот.
...
Рейтинг: 0 / 0
вычисление площади по гео координатам
    #36930534
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton_develВроде сходиться, но на маленьких площадях есть не маленькая погрешность.
Это очень странно. Должно быть наоборот.
Так погрешность то может быть и в тех данных, с которыми он сверяется.
...
Рейтинг: 0 / 0
вычисление площади по гео координатам
    #36930552
_devel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Та нет, погрешность везде одинаковая, просто на маленьких площадях она более заметна.
...
Рейтинг: 0 / 0
вычисление площади по гео координатам
    #36931343
Edd.Dragon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_develmayton,
Та нет, погрешность везде одинаковая, просто на маленьких площадях она более заметна.
Ну так о том и речь. Если погрешность твоя, например из-за того, что ты считаешь для сферы, а не для эллипсоида, то как раз чем меньше площадь, тем твой треугольник ближе к треугольнику эллипсоида (и вообще к плоскому треугольнику) и погрешность должна быть меньше.
...
Рейтинг: 0 / 0
вычисление площади по гео координатам
    #36931616
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 _devel

Для малых треугольников (думаю, менее градуса по угловой мере) площадь должна практически совпадать с площадью обычного треугольника, натянутого на координаты. Поэтому меня и удивила погрешность такого рода. Я не знаю что вы там написали "на скорую руку", но если такой простейший тест не проходит то ищите ошибку.
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / вычисление площади по гео координатам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]