[PROJ] How to project a point from from one ellipsoid to other ellipsoid using proj library
Rohith Narayandas
rohith at dreamtns.in
Thu Jul 13 22:45:22 PDT 2023
Dear Proj Team,
I hope this email finds you well. I am writing to seek guidance on how to project a point from one ellipsoid to another ellipsoid using the Proj library.
I have been working on a geospatial project that requires converting coordinates between different ellipsoids. After some research, I discovered that the Proj library is a widely used and powerful tool for geospatial data transformations. However, I am currently facing some challenges in understanding and implementing the ellipsoid projection functionality.
I would greatly appreciate it if you could provide me with some guidance on how to accomplish this task using the Proj library. Specifically, I would like to know:
1. I want to project a 3d point which is in wgs84 to an airy ellipsoid.
I did as shown below. But I am getting incorrect values and height of the point is also not changing.
PJ *Src = proj_create(C, "+proj=geocent +datum=WGS84 +type=crs");
PJ *Targ_Coor = proj_create(C, "+proj=geocent +ellps=airy +type=crs");
auto P2G = proj_create_crs_to_crs_from_pj(C, Src, Targ_Coor, NULL, NULL);
if (!P2G)
return result;
c_out_glob = proj_trans(P2G, PJ_FWD, c_in);
1. Are there any specific parameters or options that I need to consider while performing the projection from 3d to 2d? In the below code, I am performing projection of a point from wgs84 to oblique merctor. But still I am getting incorrect values.
PJ *Src = proj_create(C, "+proj=geocent +datum=WGS84 +type=crs");
if (Src == NULL)
return result;
PJ *Targ = proj_create(C, "+proj=omerc +lat_0=4 +lonc =115 +k_0=1 +x_0=2000000 +y_0=5000000 +lat_ts=0 +h_0=0 +alpha=53.31581 +gamma=53.130102 +lat_ts=0 +units=m +ellps=WGS84 +type=crs");
if (Targ == NULL)
return result;
auto G2P = proj_create_crs_to_crs_from_pj(C, Src, Targ, NULL, NULL);
if (!G2P)
{
fprintf(stderr, "failed \n");
return result;
}
PJ *norm = proj_normalize_for_visualization(C, G2P);
if (0 == norm) {
fprintf(stderr, "Failed to normalize transformation object.\n");
return 1;
}
proj_destroy(G2P);
G2P = norm;
c_out = proj_trans(G2P, PJ_FWD, c_in);
Any code examples, documentation references, or step-by-step instructions you could provide would be immensely helpful in guiding me through this process. I am eager to learn and explore the capabilities of the Proj library, and any assistance you can offer would be invaluable.
Thank you very much for your time and support. I look forward to hearing from you soon.
Best Regards,
Rohith Narayandas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/proj/attachments/20230714/93b32907/attachment.htm>
More information about the PROJ
mailing list