Страница 1 из 1
На чем может быть построена проекция Миллера?
Добавлено: 22 окт 2014, 11:10
evgen_sobolev
Здравствуйте!
Пытаюсь разобраться с проекцией Миллера, а конкретно на чем она может быть построена, на эллипсоидах или только на сферах?
Просто смотрю в Бугаевском-1998-Математическая картография, там так же как на вики:
https://ru.wikipedia.org/w/index.php?ti ... 1%80%D0%B0
При пересчете используется только радиус, а не большая и малая полуоси, что наводит на мысль что проекция может быть построена только на сфере.
Так же для макроязыка EASI(
http://gis-lab.info/qa/easi3.html), проекция Миллера поддерживается только для сферы.
Объясните пожалуйста я прав или заблуждаюсь?
Re: На чем может быть построена проекция Миллера?
Добавлено: 22 окт 2014, 11:19
trir
А зачем тогда
здесь
SPHEROID["WGS_1984",6378137,
298.257223563]
Re: На чем может быть построена проекция Миллера?
Добавлено: 22 окт 2014, 11:23
evgen_sobolev
Да, тоже видел, но тогда я не понимаю какой радиус стоит в формуле из книги Бугаевского?
Re: На чем может быть построена проекция Миллера?
Добавлено: 22 окт 2014, 11:28
SergeyRyzhkov
Miller Cylindrical только на сфере.
Приведенное описание
http://spatialreference.org/ref/esri/54003/html/ тут ни причем, это просто принятое в WKT описание датума (вернее элипсоида в нем)
Re: На чем может быть построена проекция Миллера?
Добавлено: 22 окт 2014, 11:31
evgen_sobolev
А можно источник где прочитать, мол, Цилиндрическая Миллера строится только на сфере?
Re: На чем может быть построена проекция Миллера?
Добавлено: 22 окт 2014, 11:49
SergeyRyzhkov
evgen_sobolev писал(а):А можно источник где прочитать, мол, Цилиндрическая Миллера строится только на сфере?
Честно говоря тут строго не подскажу. Я сужу по формулам
https://ru.wikipedia.org/wiki/%D0%A6%D0 ... ite_note-1
Re: На чем может быть построена проекция Миллера?
Добавлено: 22 окт 2014, 11:53
evgen_sobolev
Я поправил формулу исходя из книги Бугаевского, до этого там не стояли радиусы вообще)
Re: На чем может быть построена проекция Миллера?
Добавлено: 22 окт 2014, 12:00
SergeyRyzhkov
В proj4
код такой:
Код: Выделить всё
#define PJ_LIB__
# include <projects.h>
PROJ_HEAD(mill, "Miller Cylindrical") "\n\tCyl, Sph";
FORWARD(s_forward); /* spheroid */
xy.x = lp.lam;
xy.y = log(tan(FORTPI + lp.phi * .4)) * 1.25;
return (xy);
}
INVERSE(s_inverse); /* spheroid */
lp.lam = xy.x;
lp.phi = 2.5 * (atan(exp(.8 * xy.y)) - FORTPI);
return (lp);
}
FREEUP; if (P) pj_dalloc(P); }
ENTRY0(mill) P->[b]es = 0[/b].; P->inv = s_inverse; P->fwd = s_forward; ENDENTRY(P)
Код proj4net
Код: Выделить всё
xy.X = lplam;
xy.Y = Math.Log(Math.Tan(ProjectionMath.PiFourth + lpphi * .4)) * 1.25;
return xy;
Код в proj4js
Код: Выделить всё
exports.forward = function(p) {
var lon = p.x;
var lat = p.y;
/* Forward equations
-----------------*/
var dlon = adjust_lon(lon - this.long0);
var x = this.x0 + this.a * dlon;
var y = this.y0 + this.a * Math.log(Math.tan((Math.PI / 4) + (lat / 2.5))) * 1.25;
p.x = x;
p.y = y;
return p;
};
Код в MapExpress:
Код: Выделить всё
public override ICoordinate Project (GeographicCoordinate geographCoordinate)
{
var latRad = MathUtil.DegToRad (geographCoordinate.Lat);
var lonRad = MathUtil.DegToRad (geographCoordinate.Lon);
var dlon = AdjustLon (lonRad - MathUtil.DegToRad (Parameters.CentralMeridian));
var x = Parameters.FalseEasting + Parameters.SemiMajor * dlon;
var y = Parameters.FalseNorthing + Parameters.SemiMajor * Math.Log (Math.Tan ((Math.PI / 4) + (latRad / 2.5))) * 1.25;
return new Coordinate (x, y);
}
Re: На чем может быть построена проекция Миллера?
Добавлено: 22 окт 2014, 12:09
evgen_sobolev
Ну и еще в книге: Snyder - 1987 - Map projections--a working manual
говорится что нет эквивалента для эллипсоида
Re: На чем может быть построена проекция Миллера?
Добавлено: 22 окт 2014, 12:34
SergeyRyzhkov
Кстати Ваш вопрос, косвенно подтверждает, что нельзя "тупо" верить никому

, кроме первоисточников.

В англ.версии википедии нет радиуса,
в proj4 как бы вы не старались, а на другом эллипсоиде не получится применить проекцию (так как в коде не используется радиус и используется по умолчанию WGS84), а в некоторых проекциях в proj4 в коде явно прошиты параметры эллипсоидов и никакие изменения параметров не повлияют на расчеты ...