SASGIS

Веб-картография и навигация

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

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

Модератор: Tolik

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

Сообщение feya » 02 фев 2009, 11:42

Можно было и так:
result.y:=round(zoom[Azoom]/2-ll.y*((zoom[Azoom]/2)/180));
http://sasgis.org | SAS.Планета | SASPlanet
Аватара пользователя
feya
Гуру
 
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз.
Поблагодарили: 56 раз.

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

Сообщение Dimashik78 » 02 фев 2009, 13:00

У Google Планета Земля проекция -180 +180 во все стороны.
Вложения
level1.jpg
Тоже самое, уже на меркатор
level1.jpg (20.62 KiB) Просмотров: 6701
t.jpg
1 уровень
t.jpg (7.21 KiB) Просмотров: 6702
Dimashik78
Новичок
 
Сообщения: 14
Зарегистрирован: 01 фев 2009, 19:18
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение Cowa » 02 фев 2009, 13:26

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

Тогда ничего не будем менять - вдруг попадется карта, где есть координата более 90 градусов. :)
Cowa
Постигающий Дао
 
Сообщения: 173
Зарегистрирован: 23 авг 2008, 01:46
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение feya » 02 фев 2009, 13:27

+180 -180 во все стороны не может быть по законам физики)
http://sasgis.org | SAS.Планета | SASPlanet
Аватара пользователя
feya
Гуру
 
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз.
Поблагодарили: 56 раз.

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

Сообщение Dimashik78 » 02 фев 2009, 14:16

Ну ясно, что нет. На картинке за +90 -90 и нет ничего. чисто математичеки так. Вроде цилинрическая проекция называется.
GE_JPG_extractor из кеша Google Планета Земля тянет, там не меркатор, там +180 -180. Я сам юзал эти карты. С ними не удобно работать, надо растягивать на васоких широтах.
http://xitrostige.narod.ru/projection.html
Dimashik78
Новичок
 
Сообщения: 14
Зарегистрирован: 01 фев 2009, 19:18
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение kalinovsky » 14 авг 2009, 17:13

если актуально, то вот:
Код: Выделить всё
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
для южного полушария сами подправите, если надо
kalinovsky
Новичок
 
Сообщения: 6
ICQ: 556186517
Зарегистрирован: 14 авг 2009, 17:09
Откуда: Смоленск
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение ObiVan » 25 сен 2009, 16:05

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


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

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

Сообщение ObiVan » 25 сен 2009, 23:56

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

А где исходники можно взять? Тоже интересует пересчет.
ObiVan
Новичок
 
Сообщения: 2
Зарегистрирован: 25 сен 2009, 16:03
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

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

Сообщение voleg » 21 ноя 2009, 22:55

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

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


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

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

Сообщение feya » 22 ноя 2009, 01:07

исходники получить нельзя.
http://sasgis.org | SAS.Планета | SASPlanet
Аватара пользователя
feya
Гуру
 
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз.
Поблагодарили: 56 раз.

Пред.След.

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2