/* Test unproject */
- //gdouble lat, lon, elev;
- //grits_viewer_unproject(GRITS_VIEWER(opengl),
- // gl_x, gl_y, -1, &lat, &lon, &elev);
+ gdouble lat, lon, elev;
+ grits_viewer_unproject(GRITS_VIEWER(opengl),
+ gl_x, gl_y, -1, &lat, &lon, &elev);
/* Cleanup */
glMatrixMode(GL_PROJECTION); glPopMatrix();
opengl->sphere->view->view,
&x, &y, &z);
xyz2lle(x, y, z, lat, lon, elev);
- //g_message("GritsOpenGL: unproject - "
- // "%4.0lf,%4.0lf,(%5.3lf) -> "
- // "%8.0lf,%8.0lf,%8.0lf -> "
- // "%6.2lf,%7.2lf,%4.0lf",
- // px, py, pz, x, y, z, *lat, *lon, *elev);
+ g_message("GritsOpenGL: unproject - "
+ "%4.0lf,%4.0lf,(%5.3lf) -> "
+ "%8.0lf,%8.0lf,%8.0lf -> "
+ "%6.2lf,%7.2lf,%4.0lf",
+ px, py, pz, x, y, z, *lat, *lon, *elev);
}
static void grits_opengl_set_height_func(GritsViewer *_opengl, GritsBounds *bounds,
*lon = azim2lon(atan2(x,z));
}
+/**
+ * lle2ned:
+ * @lat: the latitude
+ * @lon: the longitude
+ * @elev: the elevation
+ * @rlat: the reference latitude
+ * @rlon: the reference longitude
+ * @relev: the reference elevation
+ * @n: the north distance
+ * @e: the east distance
+ * @d: the down distance
+ *
+ * Get the north, east, and down distance from the reference point to a given
+ * location
+ */
+void lle2ned(gdouble lat, gdouble lon, gdouble elev,
+ gdouble rlat, gdouble rlon, gdouble relev,
+ gdouble *n, gdouble *e, gdouble *d)
+{
+ //gdouble px,py,pz, rx,ry,rz, dx,dy,dz;
+
+ //lle2xyz(lat, lon, elev, &px, &py, &pz);
+ //lle2xyz(rlat, rlon, relev, &px, &py, &pz);
+
+ //dx = px - rx;
+ //dy = py - ry;
+ //dz = pz - rz;
+
+ //gdouble rad = sqrt(x*x + y*y + z*z);
+ //*lat = incl2lat(acos(y / rad));
+ //*lon = azim2lon(atan2(x,z));
+}
+
/**
* ll2m:
* @lon_dist: the distance in degrees of longitude
void xyz2ll(gdouble x, gdouble y, gdouble z,
gdouble *lat, gdouble *lon);
+void lle2ned(gdouble lat, gdouble lon, gdouble elev,
+ gdouble rlat, gdouble rlon, gdouble relev,
+ gdouble *x, gdouble *y, gdouble *z);
+
gdouble ll2m(gdouble lon_dist, gdouble lat);
gdouble distd(gdouble *a, gdouble *b);