diff options
| author | Kristian Evers <kristianevers@gmail.com> | 2019-05-01 20:51:07 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-05-01 20:51:07 +0200 |
| commit | 7432e75e30d57c78e37563bf2d4d855be43cb82c (patch) | |
| tree | af2c5a0477ba2d006c805586d423fac3ab4dc26f /examples/pj_obs_api_mini_demo.c | |
| parent | 798eaa9b0d359a460cc7c96dc453178e0f27dedb (diff) | |
| parent | 8c149fa95905fe7e65cc5e8ed73a5dd899616cec (diff) | |
| download | PROJ-6.0.tar.gz PROJ-6.0.zip | |
[Backport 6.0] Doc: update quickstart with PROJ 6 API + add PROJ 4->6 migration guide (fixes #1403) (#1450)6.0
[Backport 6.0] Doc: update quickstart with PROJ 6 API + add PROJ 4->6 migration guide (fixes #1403)
Diffstat (limited to 'examples/pj_obs_api_mini_demo.c')
| -rw-r--r-- | examples/pj_obs_api_mini_demo.c | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/examples/pj_obs_api_mini_demo.c b/examples/pj_obs_api_mini_demo.c index 94520490..3df94e2d 100644 --- a/examples/pj_obs_api_mini_demo.c +++ b/examples/pj_obs_api_mini_demo.c @@ -42,23 +42,42 @@ int main (void) { PJ_CONTEXT *C; PJ *P; + PJ* P_for_GIS; PJ_COORD a, b; /* or you may set C=PJ_DEFAULT_CTX if you are sure you will */ /* use PJ objects from only one thread */ C = proj_context_create(); - P = proj_create (C, "+proj=utm +zone=32 +ellps=GRS80"); - if (0==P) - return puts ("Oops"), 0; + P = proj_create_crs_to_crs (C, + "EPSG:4326", + "+proj=utm +zone=32 +datum=WGS84", /* or EPSG:32632 */ + NULL); + + if (0==P) { + fprintf(stderr, "Oops\n"); + return 1; + } + + /* This will ensure that the order of coordinates for the input CRS */ + /* will be longitude, latitude, whereas EPSG:4326 mandates latitude, */ + /* longitude */ + P_for_GIS = proj_normalize_for_visualization(C, P); + if( 0 == P_for_GIS ) { + fprintf(stderr, "Oops\n"); + return 1; + } + proj_destroy(P); + P = P_for_GIS; /* a coordinate union representing Copenhagen: 55d N, 12d E */ - /* note: PROJ.4 works in radians, hence the proj_torad() calls */ - a = proj_coord (proj_torad(12), proj_torad(55), 0, 0); + /* Given that we have used proj_normalize_for_visualization(), the order of + /* coordinates is longitude, latitude, and values are expressed in degrees. */ + a = proj_coord (12, 55, 0, 0); /* transform to UTM zone 32, then back to geographical */ b = proj_trans (P, PJ_FWD, a); - printf ("easting: %g, northing: %g\n", b.enu.e, b.enu.n); + printf ("easting: %.3f, northing: %.3f\n", b.enu.e, b.enu.n); b = proj_trans (P, PJ_INV, b); printf ("longitude: %g, latitude: %g\n", b.lp.lam, b.lp.phi); |
