was: [GRASS-dev] porting r.in.wms to python

wrt: angle between grid north and true north


> Hamish wrote:
> > does anyone know of a libgis function that will return
> > the current projection+coordinate's convergence angle WRT true north?
> > A method to find that with the `proj` program is given here:
> http://grass.osgeo.org/wiki/Ps.map_scripts#Creating_a_fancy_North_Arrow

Glynn: 
> The -V option is handled by vprocess() in proj.c (in PROJ); after
> converting to/from lat/lon, it basically just calls pj_factors() (in
> pj_factors.c) then prints out all of the values.
> 
> The following code (from r.proj) will get you the "struct pj_info" for
> the current location.
> 
>     struct pj_info oproj;
> 
>     /* Get projection info for output mapset */
>     if ((out_proj_info = G_get_projinfo()) == NULL)
>       G_fatal_error(_("Unable to get projection info of output raster map"));
> 
>     if ((out_unit_info = G_get_projunits()) == NULL)
>       G_fatal_error(_("Unable to get projection units of output raster map"));
> 
>     if (pj_get_kv(&oproj, out_proj_info, out_unit_info) < 0)
>       G_fatal_error(_("Unable to get projection key values of output raster 
> map"));
> 
> The "pj" field (i.e. oproj.pj) is the projPJ* which the PROJ library
> wants. You should then be able to use pj_factors() directly to get the
> convergence angle, e.g.:
> 
>       LP lp = { <lat, long> };
>       struct FACTORS fact;
>       pj_factors(lp, oproj.pj, 0.0, &fac);
>       convergence = fac.conv;


Hi,

I am trying to add this as "g.region -n" now, some questions:

1) local_proto.h: what's next in this series:
#define PRINT_REG    0x01
#define PRINT_SH     0x02
#define PRINT_LL     0x04
#define PRINT_EXTENT 0x08
#define PRINT_CENTER 0x10
#define PRINT_METERS 0x20
#define PRINT_3D     0x40
#define PRINT_MBBOX  0x80

#define PRINT_NANGLE 0x ???


2) #include <projects.h> to get LP, FACTOR, and pj_factors() ?

3) The compiler complains that arg 2 of pj_factors(, oproj.pj,) is of
an incompatible pointer type. If I make it *oproj.pj it doesn't complain
but the output fact.conv is always 0.00000.


?


thanks,
Hamish



      

_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to