aboutsummaryrefslogtreecommitdiff
path: root/examples/pj_obs_api_mini_demo.c
diff options
context:
space:
mode:
Diffstat (limited to 'examples/pj_obs_api_mini_demo.c')
-rw-r--r--examples/pj_obs_api_mini_demo.c33
1 files changed, 17 insertions, 16 deletions
diff --git a/examples/pj_obs_api_mini_demo.c b/examples/pj_obs_api_mini_demo.c
index 3df94e2d..5cd5efe4 100644
--- a/examples/pj_obs_api_mini_demo.c
+++ b/examples/pj_obs_api_mini_demo.c
@@ -1,6 +1,6 @@
/*******************************************************************************
- Tiny test of an evolving new API, demonstrating simple examples of
- 2D and 3D transformations.
+ Simple example code demonstrating use of the proj.h API for 2D coordinate
+ transformations.
The main transformation setup object is PJ, well known from the two
former proj APIs (projects.h and proj_api.h)
@@ -42,7 +42,7 @@
int main (void) {
PJ_CONTEXT *C;
PJ *P;
- PJ* P_for_GIS;
+ PJ *norm;
PJ_COORD a, b;
/* or you may set C=PJ_DEFAULT_CTX if you are sure you will */
@@ -54,35 +54,36 @@ int main (void) {
"+proj=utm +zone=32 +datum=WGS84", /* or EPSG:32632 */
NULL);
- if (0==P) {
- fprintf(stderr, "Oops\n");
+ if (0 == P) {
+ fprintf(stderr, "Failed to create transformation object.\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");
+ norm = proj_normalize_for_visualization(C, P);
+ if (0 == norm) {
+ fprintf(stderr, "Failed to normalize transformation object.\n");
return 1;
}
proj_destroy(P);
- P = P_for_GIS;
+ P = norm;
/* a coordinate union representing Copenhagen: 55d N, 12d E */
/* 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);
+ 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: %.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);
+ b = proj_trans(P, PJ_FWD, a);
+ 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);
/* Clean up */
- proj_destroy (P);
- proj_context_destroy (C); /* may be omitted in the single threaded case */
+ proj_destroy(P);
+ proj_context_destroy(C); /* may be omitted in the single threaded case */
return 0;
}