Меркатор на сфероид и на эллипсоид

Обсуждение различной информации связанной с картографией в САСе, а также сторонние программные продукты для связки с САСом

Модератор: Tolik

Аватара пользователя
feya
Гуру
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз
Поблагодарили: 56 раз

Re: Меркатор на сфероид и на эллипсоид

Сообщение feya »

Можно было и так:
result.y:=round(zoom[Azoom]/2-ll.y*((zoom[Azoom]/2)/180));
http://sasgis.org | SAS.Планета | SASPlanet
Dimashik78
Новичок
Сообщения: 14
Зарегистрирован: 01 фев 2009, 19:18

Re: Меркатор на сфероид и на эллипсоид

Сообщение Dimashik78 »

У Google Планета Земля проекция -180 +180 во все стороны.
Вложения
Тоже самое, уже на меркатор
Тоже самое, уже на меркатор
level1.jpg (20.62 КБ) 8336 просмотров
1 уровень
1 уровень
t.jpg (7.21 КБ) 8337 просмотров
Cowa
Постигающий Дао
Сообщения: 173
Зарегистрирован: 23 авг 2008, 01:46

Re: Меркатор на сфероид и на эллипсоид

Сообщение Cowa »

Dimashik78 писал(а):У Google Планета Земля проекция -180 +180 во все стороны.

Тогда ничего не будем менять - вдруг попадется карта, где есть координата более 90 градусов. :)
Аватара пользователя
feya
Гуру
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз
Поблагодарили: 56 раз

Re: Меркатор на сфероид и на эллипсоид

Сообщение feya »

+180 -180 во все стороны не может быть по законам физики)
http://sasgis.org | SAS.Планета | SASPlanet
Dimashik78
Новичок
Сообщения: 14
Зарегистрирован: 01 фев 2009, 19:18

Re: Меркатор на сфероид и на эллипсоид

Сообщение Dimashik78 »

Ну ясно, что нет. На картинке за +90 -90 и нет ничего. чисто математичеки так. Вроде цилинрическая проекция называется.
GE_JPG_extractor из кеша Google Планета Земля тянет, там не меркатор, там +180 -180. Я сам юзал эти карты. С ними не удобно работать, надо растягивать на васоких широтах.
http://xitrostige.narod.ru/projection.html
kalinovsky
Новичок
Сообщения: 6
Зарегистрирован: 14 авг 2009, 17:09
Откуда: Смоленск
Контактная информация:

Re: Меркатор на сфероид и на эллипсоид

Сообщение kalinovsky »

если актуально, то вот:

Код: Выделить всё

public static double GetTileX(double lon, int zoom)
        {
            return Math.Pow(2, (double)(zoom - 2)) * (1 + lon / 180.0);
        }

        public static double GetTileY(double lat, int zoom)
        {
            return Math.Pow(2, (double)(zoom - 2)) * (1 - ((Math.Log((1 + Math.Sin(lat * Pi / 180.0)) / (1 - Math.Sin(lat * Pi / 180.0)))) / 2.0 - e2P * (Math.Log((1 + e2P * Math.Sin(lat * Pi / 180.0)) / (1 - e2P * Math.Sin(lat * Pi / 180.0)))) / 2.0) / Pi);
        }

        public static double GetLon(double tileX, int zoom)
        {
            return (tileX / Math.Pow(2.0, (double)(zoom - 2)) - 1) * 180.0;
        }

        public static double GetLat(double tileY, int zoom)
        {
            double y1 = (1.0 - (tileY / Math.Pow(2.0, (double)(zoom - 2)))) * Math.PI;
            double teta0 = 2.0 * Math.Atan(Math.Pow(Math.E, y1)) - Pi / 2.0;
            double teta = CalcTeta(teta0, y1);
            while (Math.Abs(teta - teta0) > 0.000000001)
            {
                teta0 = teta;
                teta = CalcTeta(teta, y1);
            }
            return teta * 180.0 / Math.PI;
        }

        private static double CalcTeta(double teta0, double y1)
        {
            return Math.Asin(1.0 - (1.0 + Math.Sin(teta0)) * Math.Pow(1.0 - e2P * Math.Sin(teta0), e2P) / (Math.Pow(Math.E, 2.0 * y1) * Math.Pow(1 + e2P * Math.Sin(teta0), e2P)));
        }

e2P = 0.081819790992
для южного полушария сами подправите, если надо
ObiVan
Новичок
Сообщения: 2
Зарегистрирован: 25 сен 2009, 16:03

Re: Меркатор на сфероид и на эллипсоид

Сообщение ObiVan »

e2P = 0.081819790992
для южного полушария сами подправите, если надо


А что нужно поправить? Величину e2P?
ObiVan
Новичок
Сообщения: 2
Зарегистрирован: 25 сен 2009, 16:03

Re: Меркатор на сфероид и на эллипсоид

Сообщение ObiVan »

feya писал(а):Есть исходники SASPlanet с соответствующими функциями (юнит Ugeofun.pas)

А где исходники можно взять? Тоже интересует пересчет.
voleg
Новичок
Сообщения: 1
Зарегистрирован: 15 ноя 2009, 23:45

Re: Меркатор на сфероид и на эллипсоид

Сообщение voleg »

ObiVan писал(а):
feya писал(а):Есть исходники SASPlanet с соответствующими функциями (юнит Ugeofun.pas)

А где исходники можно взять? Тоже интересует пересчет.


Так можно ли получить исходники?
Аватара пользователя
feya
Гуру
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз
Поблагодарили: 56 раз

Re: Меркатор на сфероид и на эллипсоид

Сообщение feya »

исходники получить нельзя.
http://sasgis.org | SAS.Планета | SASPlanet
Ответить

Вернуться в «Другие программы»