/// <summary> /// Calculate a rough distance, in meters, between two LatLngPoints. /// </summary> /// <param name="p">The second point to which to measure</param> /// <returns>The distance between the two points, after conversion to UTM</returns> public static float Distance(this LatLngPoint A, LatLngPoint B) { var a = A.ToUTM(); var b = B.ToUTM(); var dx = b.X - a.X; var dy = b.Y - a.Y; return((float)Sqrt((dx * dx) + (dy * dy))); }
private LatLngPoint GetRelativeLatLng(Vector3 cursorPosition) { var curUTM = origin.ToUTM(); var curVec = curUTM.ToVector3(); var nextVec = cursorPosition + curVec; nextVec.y = 0; var nextPoint = nextVec.ToUTM(curUTM.Zone, curUTM.Hemisphere).ToLatLng(); return(nextPoint); }
public void LatLng_2_UTM() { var latLng = new LatLngPoint(38.8974146f, -77.0743107f); var utm = latLng.ToUTM(); var latLng2 = utm.ToLatLng(); var utm2 = latLng2.ToUTM(); Assert.AreEqual(latLng.Altitude, latLng2.Altitude, 0.0001); Assert.AreEqual(latLng.Longitude, latLng2.Longitude, 0.0001); Assert.AreEqual(latLng.Latitude, latLng2.Latitude, 0.0001); Assert.AreEqual(utm.X, utm2.X, 0.5); Assert.AreEqual(utm.Y, utm2.Y, 0.5); Assert.AreEqual(utm.Zone, utm2.Zone); }
/// <summary> /// Converts this LatLngPoint to a UTM point that is stored as a Unity Vector3 object. /// </summary> /// <param name="value"></param> /// <returns></returns> public static Vector3 ToVector3(this LatLngPoint value) { return(value.ToUTM().ToSystemVector3()); }