public ge_coords Transform(ge_coords _from) { ge_coords _to = new ge_coords(); _to.coord_x = ge_UTMconversion.Helmert_X(_from.coord_x, _from.coord_y, _from.coord_z, _t.trans_x, _t.rot_y, _t.rot_z, _t.scale_change); _to.coord_y = ge_UTMconversion.Helmert_Y(_from.coord_x, _from.coord_y, _from.coord_z, _t.trans_y, _t.rot_x, _t.rot_z, _t.scale_change); _to.coord_z = ge_UTMconversion.Helmert_Z(_from.coord_x, _from.coord_y, _from.coord_z, _t.trans_z, _t.rot_x, _t.rot_y, _t.scale_change); return(_to); }
public ge_data WGS84_Lat_Long_Height_to_OSGB_East_North(ge_data _wg84) { // Step 1 Convert WGS84 Latitude, longitude and Ellipsoidal height to WGS84 Cartesian XYZ wg84 = _wg84; ge_projectionWGS84 pwg84 = new ge_projectionWGS84(wg84); if (!pwg84.calcXYZ_fromLatLong()) { errorMsg = "Error pwg84.calcXYZ_fromLatLong()"; return(null); } ; // Step 2 Apply Helmert Datum Transformation (WGS84 to OSGB36) ge_projection_transform t = new WGS84_to_OSGB(); HelmertTransform ht = new HelmertTransform(t); ge_coords wg84_coords = new ge_coords(wg84); ge_coords osgb_coords = ht.Transform(wg84_coords); // Step 3 Convert OSGB36 Cartesian XYZ to OSGB36 Latitude, longitude and approx ODN height osg36 = new ge_data(); osg36.locX = osgb_coords.coord_x; osg36.locY = osgb_coords.coord_y; osg36.locZ = osgb_coords.coord_z; ge_projectionOSGB36 posgb36 = new ge_projectionOSGB36(osg36); if (!posgb36.calcLatLongH_fromXYZ()) { errorMsg = "Error posgb36.calcLatLongH_fromXYZ()"; return(null); } ; // Step 4 Convert OSGB36 Latitude and longitude to OSGB36 easting and northing if (!posgb36.calcEN_fromLatLong()) { errorMsg = "Error posgb36.calcEN_fromLatLong()"; return(null); } return(osg36); }
public ge_data OSGB_East_North_to_WGS84_Lat_Long_Height(ge_data _osg36) { ge_data wg84 = new ge_data(); // Step 1 Convert OSGB36 easting, northing and height to OSGB36 latitude and longitude osg36 = _osg36; ge_projectionOSGB36 posgb36 = new ge_projectionOSGB36(osg36); if (!posgb36.calcLatLong_fromEN()) { errorMsg = "Error: posgb36.calcLatLong_fromEN()"; return(null); } // Step 2 Convert OSGB36 latitude, longitude and approx ODN height to OSGB36 cartesian XYZ if (!posgb36.calcXYZ_fromLatLong()) { errorMsg = "Error: posgb36.calcXYZ_fromLatLong()"; return(null); } // Step 3 Apply Helmert Datum Transformation (OSGB36 to WGS84) ge_projection_transform t = new OSGB_to_WGS84(); HelmertTransform ht = new HelmertTransform(t); ge_coords osg36_coords = new ge_coords(osg36); ge_coords wg84_coords = ht.Transform(osg36_coords); wg84.locX = wg84_coords.coord_x; wg84.locY = wg84_coords.coord_y; wg84.locZ = wg84_coords.coord_z; // Step Convert WGS84 Cartesian XYZ to WGS84 Latitude, longitude and Ellipsoidal height ge_projectionWGS84 pwg84 = new ge_projectionWGS84(wg84); if (!pwg84.calcLatLongH_fromXYZ()) { errorMsg = "Error: pwg84.calcLatLongH_fromXYZ()"; return(null); } ; return(wg84); }