예제 #1
0
파일: LatLng.cs 프로젝트: Chapmania/Juniper
        /// <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)));
        }
예제 #2
0
        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);
        }
예제 #3
0
        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);
        }
예제 #4
0
 /// <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());
 }