Mapper
libraries
common
get_lat_lon.c
Go to the documentation of this file.
1
#include "
prototypes_new.h
"
2
3
void
get_lat_lon
(
int
newx,
int
newy,
float
*
lat
,
float
*
lon
)
4
5
{
6
7
extern
struct
dval
dval
;
8
double
conv=.0174,c,lonf;
9
double
t1,t2,t3,t4,t5,lat1,lat2;
10
11
if
(newx==6400)
12
newx=6401;
13
14
t1=.0001;
15
16
lonf= atan(((
double
)newy-
dval
.
yo
)/(t1))/conv-90.;
17
18
t1=(double)newx-
dval
.
xo
;
19
20
*
lon
= atan(((
double
)newy-
dval
.
yo
)/(t1))/conv;
21
22
if
(*
lon
> 0)
23
*
lon
=-180+*
lon
-2*lonf;
24
25
*
lon
=*
lon
+90+
dval
.
lo
;
26
27
c=
dval
.
a
*cos((*
lon
-
dval
.
lo
-90)*conv)/((double)newx-
dval
.
xo
);
28
c=pow(c,2);
29
30
t1=1/(1+c);
31
t2=1-c;
32
t3=pow(2*t1,2);
33
t4=4*t2*t1;
34
t5=pow(t3-t4,.5)/2;
35
36
if
(fabs(-t1+t5) > 1.0)
37
lat1=-9999;
38
else
39
lat1=asin(-t1+t5)/conv;
40
41
if
(fabs(-t1-t5) > 1.0)
42
lat2=-9999;
43
else
44
lat2=asin(-t1-t5)/conv;
45
46
if
(lat1 > 0 && lat1 < 90)
47
*
lat
=lat1;
48
49
else
50
*
lat
=lat2;
51
52
return
;
53
54
}
55
56
57
58
59
60
61
get_lat_lon
void get_lat_lon(int newx, int newy, float *lat, float *lon)
Definition:
get_lat_lon.c:3
lat
double lat
Definition:
mapp2h.h:41
lon
double lon
Definition:
mapp2h.h:41
prototypes_new.h
dval
Definition:
misc.h:470
dval::lo
double lo
Definition:
misc.h:475
dval::a
double a
Definition:
misc.h:472
dval::yo
double yo
Definition:
misc.h:474
dval::xo
double xo
Definition:
misc.h:473
Generated by
1.9.1