aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDidier Richard <didier.richard@ign.fr>2008-07-26 10:38:45 +0000
committerDidier Richard <didier.richard@ign.fr>2008-07-26 10:38:45 +0000
commitbe6cf1ebc8c18bb3ab9b6ae827092d6e5acb908d (patch)
tree1142131c8dce4700d08cabde9a8913f8d2b826c4
parent647d56dbf928a741a46cffcf202eed33d9c15826 (diff)
downloadPROJ-be6cf1ebc8c18bb3ab9b6ae827092d6e5acb908d.tar.gz
PROJ-be6cf1ebc8c18bb3ab9b6ae827092d6e5acb908d.zip
Gauss-Laborde Projection changed into Simplified Transverse Mercator (Schreiber, Gauss-Laborde).
git-svn-id: http://svn.osgeo.org/metacrs/proj/trunk@1463 4e78687f-474d-0410-85f9-8d5e500ac6b2
-rw-r--r--src/Makefile.am2
-rw-r--r--src/Makefile.in6
-rw-r--r--src/PJ_glabsgm.c44
-rw-r--r--src/PJ_stmerc.c47
-rw-r--r--src/makefile.vc2
-rw-r--r--src/pj_list.h2
6 files changed, 53 insertions, 50 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index efa224f0..a6a43462 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -40,7 +40,7 @@ libproj_la_SOURCES = \
PJ_wag7.c PJ_lcca.c PJ_geos.c \
PJ_boggs.c PJ_collg.c PJ_crast.c PJ_denoy.c \
PJ_eck1.c PJ_eck2.c PJ_eck3.c PJ_eck4.c \
- PJ_eck5.c PJ_fahey.c PJ_fouc_s.c PJ_gins8.c PJ_glabsgm.c \
+ PJ_eck5.c PJ_fahey.c PJ_fouc_s.c PJ_gins8.c PJ_stmerc.c \
PJ_gn_sinu.c PJ_goode.c PJ_hatano.c PJ_loxim.c \
PJ_mbt_fps.c PJ_mbtfpp.c PJ_mbtfpq.c PJ_moll.c \
PJ_nell.c PJ_nell_h.c PJ_putp2.c PJ_putp3.c \
diff --git a/src/Makefile.in b/src/Makefile.in
index 4f664a8b..fc56997d 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -70,7 +70,7 @@ am_libproj_la_OBJECTS = PJ_aeqd.lo PJ_gnom.lo PJ_laea.lo \
PJ_vandg.lo PJ_vandg2.lo PJ_vandg4.lo PJ_wag7.lo PJ_lcca.lo \
PJ_geos.lo PJ_boggs.lo PJ_collg.lo PJ_crast.lo PJ_denoy.lo \
PJ_eck1.lo PJ_eck2.lo PJ_eck3.lo PJ_eck4.lo PJ_eck5.lo \
- PJ_fahey.lo PJ_fouc_s.lo PJ_gins8.lo PJ_glabsgm.lo \
+ PJ_fahey.lo PJ_fouc_s.lo PJ_gins8.lo PJ_stmerc.lo \
PJ_gn_sinu.lo PJ_goode.lo PJ_hatano.lo PJ_loxim.lo \
PJ_mbt_fps.lo PJ_mbtfpp.lo PJ_mbtfpq.lo PJ_moll.lo PJ_nell.lo \
PJ_nell_h.lo PJ_putp2.lo PJ_putp3.lo PJ_putp4p.lo PJ_putp5.lo \
@@ -272,7 +272,7 @@ libproj_la_SOURCES = \
PJ_wag7.c PJ_lcca.c PJ_geos.c \
PJ_boggs.c PJ_collg.c PJ_crast.c PJ_denoy.c \
PJ_eck1.c PJ_eck2.c PJ_eck3.c PJ_eck4.c \
- PJ_eck5.c PJ_fahey.c PJ_fouc_s.c PJ_gins8.c PJ_glabsgm.c \
+ PJ_eck5.c PJ_fahey.c PJ_fouc_s.c PJ_gins8.c PJ_stmerc.c \
PJ_gn_sinu.c PJ_goode.c PJ_hatano.c PJ_loxim.c \
PJ_mbt_fps.c PJ_mbtfpp.c PJ_mbtfpq.c PJ_moll.c \
PJ_nell.c PJ_nell_h.c PJ_putp2.c PJ_putp3.c \
@@ -451,7 +451,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_gall.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_geos.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_gins8.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_glabsgm.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_stmerc.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_gn_sinu.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_gnom.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/PJ_goode.Plo@am__quote@
diff --git a/src/PJ_glabsgm.c b/src/PJ_glabsgm.c
deleted file mode 100644
index d094239c..00000000
--- a/src/PJ_glabsgm.c
+++ /dev/null
@@ -1,44 +0,0 @@
-#ifndef lint
-static const char SCCSID[]="@(#)PJ_glabsgm.c 4.5 07/09/24 ??? ???";
-#endif
-#define PROJ_PARMS__ \
- double lamc;\
- double phic;\
- double c;\
- double n1;\
- double n2;
-
-#define PJ_LIB__
-# include <projects.h>
-PROJ_HEAD(glabsgm, "Gauss Laborde (Sphere Geometric Mean)")
- "\n\tCyl, Sph&Ell\n\tlat_0= lon_0= k_0=";
-FORWARD(s_forward); /* spheroid */
- double L, Ls, sinLs1, Ls1;
- L= P->n1*lp.lam;
- Ls= P->c+P->n1*log(pj_tsfn(-1.0*lp.phi,-1.0*sin(lp.phi),P->e));
- sinLs1= sin(L)/cosh(Ls);
- Ls1= log(pj_tsfn(-1.0*asin(sinLs1),0.0,0.0));
- xy.x= P->n2*P->ra*Ls1;
- xy.y= P->n2*P->ra*atan(sinh(Ls)/cos(L));
- return (xy);
-}
-INVERSE(s_inverse); /* spheroid */
- double L, LC, sinC;
- L= atan(sinh(xy.x*P->a/P->n2)/cos(xy.y*P->a/P->n2));
- sinC= sin(xy.y*P->a/P->n2)/cosh(xy.x*P->a/P->n2);
- LC= log(pj_tsfn(-1.0*asin(sinC),0.0,0.0));
- lp.lam= L/P->n1;
- lp.phi= -1.0*pj_phi2(exp((LC-P->c)/P->n1),P->e);
- return (lp);
-}
-FREEUP; if (P) pj_dalloc(P); }
-ENTRY0(glabsgm)
- P->n1= sqrt(1.0+P->es*pow(cos(P->phi0),4.0)/(1.0-P->es));
- P->phic= asin(sin(P->phi0)/P->n1);
- P->c= log(pj_tsfn(-1.0*P->phic,0.0,0.0))
- -P->n1*log(pj_tsfn(-1.0*P->phi0,-1.0*sin(P->phi0),P->e));
- P->n2= P->k0*P->a*sqrt(1.0-P->es)/(1.0-P->es*sin(P->phi0)*sin(P->phi0));
- P->y0-= P->n2*P->phic;
- P->inv= s_inverse;
- P->fwd= s_forward;
-ENDENTRY(P)
diff --git a/src/PJ_stmerc.c b/src/PJ_stmerc.c
new file mode 100644
index 00000000..cd1c873f
--- /dev/null
+++ b/src/PJ_stmerc.c
@@ -0,0 +1,47 @@
+#ifndef lint
+static const char SCCSID[]="@(#)PJ_stmerc.c 4.5 07/09/24 ??? ???";
+#endif
+#define PROJ_PARMS__ \
+ double lamc;\
+ double phic;\
+ double c;\
+ double n1;\
+ double n2;\
+ double XS;\
+ double YS;
+
+#define PJ_LIB__
+# include <projects.h>
+PROJ_HEAD(stmerc, "Simplified Transverse Mercator (Schreiber, Gauss-Laborde)")
+ "\n\tCyl, Sph&Ell\n\tlat_0= lon_0= k_0=";
+FORWARD(s_forward); /* spheroid */
+ double L, Ls, sinLs1, Ls1;
+ L= P->n1*lp.lam;
+ Ls= P->c+P->n1*log(pj_tsfn(-1.0*lp.phi,-1.0*sin(lp.phi),P->e));
+ sinLs1= sin(L)/cosh(Ls);
+ Ls1= log(pj_tsfn(-1.0*asin(sinLs1),0.0,0.0));
+ xy.x= (P->XS + P->n2*Ls1)*P->ra;
+ xy.y= (P->YS + P->n2*atan(sinh(Ls)/cos(L)))*P->ra;
+ return (xy);
+}
+INVERSE(s_inverse); /* spheroid */
+ double L, LC, sinC;
+ L= atan(sinh((xy.x - P->XS)*P->a/P->n2)/cos((xy.y - P->YS)*P->a/P->n2));
+ sinC= sin((xy.y - P->YS)*P->a/P->n2)/cosh((xy.x - P->XS)*P->a/P->n2);
+ LC= log(pj_tsfn(-1.0*asin(sinC),0.0,0.0));
+ lp.lam= L/P->n1;
+ lp.phi= -1.0*pj_phi2(exp((LC-P->c)/P->n1),P->e);
+ return (lp);
+}
+FREEUP; if (P) pj_dalloc(P); }
+ENTRY0(stmerc)
+ P->n1= sqrt(1.0+P->es*pow(cos(P->phi0),4.0)/(1.0-P->es));
+ P->phic= asin(sin(P->phi0)/P->n1);
+ P->c= log(pj_tsfn(-1.0*P->phic,0.0,0.0))
+ -P->n1*log(pj_tsfn(-1.0*P->phi0,-1.0*sin(P->phi0),P->e));
+ P->n2= P->k0*P->a*sqrt(1.0-P->es)/(1.0-P->es*sin(P->phi0)*sin(P->phi0));
+ P->XS= 0;
+ P->YS= -1.0*P->n2*P->phic;
+ P->inv= s_inverse;
+ P->fwd= s_forward;
+ENDENTRY(P)
diff --git a/src/makefile.vc b/src/makefile.vc
index 0b0ab354..9bc8b92e 100644
--- a/src/makefile.vc
+++ b/src/makefile.vc
@@ -18,7 +18,7 @@ cylinder = \
PJ_cass.obj PJ_cc.obj PJ_cea.obj PJ_eqc.obj \
PJ_gall.obj PJ_labrd.obj PJ_lsat.obj PJ_merc.obj \
PJ_mill.obj PJ_ocea.obj PJ_omerc.obj PJ_somerc.obj \
- PJ_tcc.obj PJ_tcea.obj PJ_tmerc.obj PJ_geos.obj PJ_glabsgm.obj
+ PJ_tcc.obj PJ_tcea.obj PJ_tmerc.obj PJ_geos.obj PJ_stmerc.obj
misc = \
PJ_airy.obj PJ_aitoff.obj PJ_august.obj PJ_bacon.obj \
diff --git a/src/pj_list.h b/src/pj_list.h
index f10aca25..acd08510 100644
--- a/src/pj_list.h
+++ b/src/pj_list.h
@@ -39,7 +39,6 @@ PROJ_HEAD(gall, "Gall (Gall Stereographic)")
PROJ_HEAD(geocent, "Geocentric")
PROJ_HEAD(geos, "Geostationary Satellite View")
PROJ_HEAD(gins8, "Ginsburg VIII (TsNIIGAiK)")
-PROJ_HEAD(glabsgm, "Gauss Laborde (Sphere Geometric Mean)")
PROJ_HEAD(gn_sinu, "General Sinusoidal Series")
PROJ_HEAD(gnom, "Gnomonic")
PROJ_HEAD(goode, "Goode Homolosine")
@@ -108,6 +107,7 @@ PROJ_HEAD(sinu, "Sinusoidal (Sanson-Flamsteed)")
PROJ_HEAD(somerc, "Swiss. Obl. Mercator")
PROJ_HEAD(stere, "Stereographic")
PROJ_HEAD(sterea, "Oblique Stereographic Alternative")
+PROJ_HEAD(stmerc, "Simplified Transverse Mercator (Schreiber, Gauss-Laborde)")
PROJ_HEAD(tcc, "Transverse Central Cylindrical")
PROJ_HEAD(tcea, "Transverse Cylindrical Equal Area")
PROJ_HEAD(tissot, "Tissot Conic")