精华内容
下载资源
问答
  • UTM投影是GoogleEarh采用的一种投影,它与大地坐标的转换在外国工程利用中特别频繁。该软件实现了这种转换,单文件绿色免费,实现精度为几个纳米级。
  • UTM投影坐标转WGS84大地坐标

    千次阅读 2020-04-02 18:53:16
    * * Returns: * The central meridian for the given UTM zone, in radians, or zero * if the UTM zone parameter is outside the range [1,60]. * Range of the central meridian is the radian equivalent of [-...
    public class UTMAndWGS84
    	{
    		static double pi = Math.PI;
    
    		/* Ellipsoid model constants (actual values here are for WGS84) */
    		static double sm_a = 6378137.0;
    		static double sm_b = 6356752.314;
    		static double sm_EccSquared = 6.69437999013e-03;
    
    		static double UTMScaleFactor = 0.9996;
    
    
    		/*
            * DegToRad
            *
            * Converts degrees to radians.
            *
            */
    		private static double DegToRad(double deg)
    		{
    			return (deg / 180.0 * pi);
    		}
    
    
    
    
    		/*
            * RadToDeg
            *
            * Converts radians to degrees.
            *
            */
    		private static double RadToDeg(double rad)
    		{
    			return (rad / pi * 180.0);
    		}
    
    
    
    
    		/*
            * ArcLengthOfMeridian
            *
            * Computes the ellipsoidal distance from the equator to a point at a
            * given latitude.
            *
            * Reference: Hoffmann-Wellenhof, B., Lichtenegger, H., and Collins, J.,
            * GPS: Theory and Practice, 3rd ed.  New York: Springer-Verlag Wien, 1994.
            *
            * Inputs:
            *     phi - Latitude of the point, in radians.
            *
            * Globals:
            *     sm_a - Ellipsoid model major axis.
            *     sm_b - Ellipsoid model minor axis.
            *
            * Returns:
            *     The ellipsoidal distance of the point from the equator, in meters.
            *
            */
    		private static double ArcLengthOfMeridian(double phi)
    		{
    			double alpha, beta, gamma, delta, epsilon, n;
    			double result;
    
    			/* Precalculate n */
    			n = (sm_a - sm_b) / (sm_a + sm_b);
    
    			/* Precalculate alpha */
    			alpha = ((sm_a + sm_b) / 2.0)
    			   * (1.0 + (Math.Pow(n, 2.0) / 4.0) + (Math.Pow(n, 4.0) / 64.0));
    
    			/* Precalculate beta */
    			beta = (-3.0 * n / 2.0) + (9.0 * Math.Pow(n, 3.0) / 16.0)
    			   + (-3.0 * Math.Pow(n, 5.0) / 32.0);
    
    			/* Precalculate gamma */
    			gamma = (15.0 * Math.Pow(n, 2.0) / 16.0)
    				+ (-15.0 * Math.Pow(n, 4.0) / 32.0);
    
    			/* Precalculate delta */
    			delta = (-35.0 * Math.Pow(n, 3.0) / 48.0)
    				+ (105.0 * Math.Pow(n, 5.0) / 256.0);
    
    			/* Precalculate epsilon */
    			epsilon = (315.0 * Math.Pow(n, 4.0) / 512.0);
    
    			/* Now calculate the sum of the series and return */
    			result = alpha
    				* (phi + (beta * Math.Sin(2.0 * phi))
    					+ (gamma * Math.Sin(4.0 * phi))
    					+ (delta * Math.Sin(6.0 * phi))
    					+ (epsilon * Math.Sin(8.0 * phi)));
    
    			return result;
    		}
    
    
    
    		/*
            * UTMCentralMeridian
            *
            * Determines the central meridian for the given UTM zone.
            *
            * Inputs:
            *     zone - An integer value designating the UTM zone, range [1,60].
            *
            * Returns:
            *   The central meridian for the given UTM zone, in radians, or zero
            *   if the UTM zone parameter is outside the range [1,60].
            *   Range of the central meridian is the radian equivalent of [-177,+177].
            *
            */
    		private static double UTMCentralMeridian(double zone)
    		{
    			double cmeridian;
    
    			cmeridian = DegToRad(-183.0 + (zone * 6.0));
    
    			return cmeridian;
    		}
    
    
    
    		/*
            * FootpointLatitude
            *
            * Computes the footpoint latitude for use in converting transverse
            * Mercator coordinates to ellipsoidal coordinates.
            *
            * Reference: Hoffmann-Wellenhof, B., Lichtenegger, H., and Collins, J.,
            *   GPS: Theory and Practice, 3rd ed.  New York: Springer-Verlag Wien, 1994.
            *
            * Inputs:
            *   y - The UTM northing coordinate, in meters.
            *
            * Returns:
            *   The footpoint latitude, in radians.
            *
            */
    		private static double FootpointLatitude(double y)
    		{
    			double y_, alpha_, beta_, gamma_, delta_, epsilon_, n;
    			double result;
    
    			/* Precalculate n (Eq. 10.18) */
    			n = (sm_a - sm_b) / (sm_a + sm_b);
    
    			/* Precalculate alpha_ (Eq. 10.22) */
    			/* (Same as alpha in Eq. 10.17) */
    			alpha_ = ((sm_a + sm_b) / 2.0)
    				* (1 + (Math.Pow(n, 2.0) / 4) + (Math.Pow(n, 4.0) / 64));
    
    			/* Precalculate y_ (Eq. 10.23) */
    			y_ = y / alpha_;
    
    			/* Precalculate beta_ (Eq. 10.22) */
    			beta_ = (3.0 * n / 2.0) + (-27.0 * Math.Pow(n, 3.0) / 32.0)
    				+ (269.0 * Math.Pow(n, 5.0) / 512.0);
    
    			/* Precalculate gamma_ (Eq. 10.22) */
    			gamma_ = (21.0 * Math.Pow(n, 2.0) / 16.0)
    				+ (-55.0 * Math.Pow(n, 4.0) / 32.0);
    
    			/* Precalculate delta_ (Eq. 10.22) */
    			delta_ = (151.0 * Math.Pow(n, 3.0) / 96.0)
    				+ (-417.0 * Math.Pow(n, 5.0) / 128.0);
    
    			/* Precalculate epsilon_ (Eq. 10.22) */
    			epsilon_ = (1097.0 * Math.Pow(n, 4.0) / 512.0);
    
    			/* Now calculate the sum of the series (Eq. 10.21) */
    			result = y_ + (beta_ * Math.Sin(2.0 * y_))
    				+ (gamma_ * Math.Sin(4.0 * y_))
    				+ (delta_ * Math.Sin(6.0 * y_))
    				+ (epsilon_ * Math.Sin(8.0 * y_));
    
    			return result;
    		}
    
    
    
    		/*
            * MapLatLonToXY
            *
            * Converts a latitude/longitude pair to x and y coordinates in the
            * Transverse Mercator projection.  Note that Transverse Mercator is not
            * the same as UTM; a scale factor is required to convert between them.
            *
            * Reference: Hoffmann-Wellenhof, B., Lichtenegger, H., and Collins, J.,
            * GPS: Theory and Practice, 3rd ed.  New York: Springer-Verlag Wien, 1994.
            *
            * Inputs:
            *    phi - Latitude of the point, in radians.
            *    lambda - Longitude of the point, in radians.
            *    lambda0 - Longitude of the central meridian to be used, in radians.
            *
            * Outputs:
            *    xy - A 2-element array containing the x and y coordinates
            *         of the computed point.
            *
            * Returns:
            *    The function does not return a value.
            *
            */
    		private static void MapLatLonToXY(double phi, double lambda, double lambda0, out double[] xy)
    		{
    			double N, nu2, ep2, t, t2, l;
    			double l3coef, l4coef, l5coef, l6coef, l7coef, l8coef;
    			double tmp;
    
    			/* Precalculate ep2 */
    			ep2 = (Math.Pow(sm_a, 2.0) - Math.Pow(sm_b, 2.0)) / Math.Pow(sm_b, 2.0);
    
    			/* Precalculate nu2 */
    			nu2 = ep2 * Math.Pow(Math.Cos(phi), 2.0);
    
    			/* Precalculate N */
    			N = Math.Pow(sm_a, 2.0) / (sm_b * Math.Sqrt(1 + nu2));
    
    			/* Precalculate t */
    			t = Math.Tan(phi);
    			t2 = t * t;
    			tmp = (t2 * t2 * t2) - Math.Pow(t, 6.0);
    
    			/* Precalculate l */
    			l = lambda - lambda0;
    
    			/* Precalculate coefficients for l**n in the equations below
                   so a normal human being can read the expressions for easting
                   and northing
                   -- l**1 and l**2 have coefficients of 1.0 */
    			l3coef = 1.0 - t2 + nu2;
    
    			l4coef = 5.0 - t2 + 9 * nu2 + 4.0 * (nu2 * nu2);
    
    			l5coef = 5.0 - 18.0 * t2 + (t2 * t2) + 14.0 * nu2
    				- 58.0 * t2 * nu2;
    
    			l6coef = 61.0 - 58.0 * t2 + (t2 * t2) + 270.0 * nu2
    				- 330.0 * t2 * nu2;
    
    			l7coef = 61.0 - 479.0 * t2 + 179.0 * (t2 * t2) - (t2 * t2 * t2);
    
    			l8coef = 1385.0 - 3111.0 * t2 + 543.0 * (t2 * t2) - (t2 * t2 * t2);
    
    			xy = new double[2];
    			/* Calculate easting (x) */
    			xy[0] = N * Math.Cos(phi) * l
    				+ (N / 6.0 * Math.Pow(Math.Cos(phi), 3.0) * l3coef * Math.Pow(l, 3.0))
    				+ (N / 120.0 * Math.Pow(Math.Cos(phi), 5.0) * l5coef * Math.Pow(l, 5.0))
    				+ (N / 5040.0 * Math.Pow(Math.Cos(phi), 7.0) * l7coef * Math.Pow(l, 7.0));
    
    			/* Calculate northing (y) */
    			xy[1] = ArcLengthOfMeridian(phi)
    				+ (t / 2.0 * N * Math.Pow(Math.Cos(phi), 2.0) * Math.Pow(l, 2.0))
    				+ (t / 24.0 * N * Math.Pow(Math.Cos(phi), 4.0) * l4coef * Math.Pow(l, 4.0))
    				+ (t / 720.0 * N * Math.Pow(Math.Cos(phi), 6.0) * l6coef * Math.Pow(l, 6.0))
    				+ (t / 40320.0 * N * Math.Pow(Math.Cos(phi), 8.0) * l8coef * Math.Pow(l, 8.0));
    
    			return;
    		}
    
    
    
    		/*
            * MapXYToLatLon
            *
            * Converts x and y coordinates in the Transverse Mercator projection to
            * a latitude/longitude pair.  Note that Transverse Mercator is not
            * the same as UTM; a scale factor is required to convert between them.
            *
            * Reference: Hoffmann-Wellenhof, B., Lichtenegger, H., and Collins, J.,
            *   GPS: Theory and Practice, 3rd ed.  New York: Springer-Verlag Wien, 1994.
            *
            * Inputs:
            *   x - The easting of the point, in meters.
            *   y - The northing of the point, in meters.
            *   lambda0 - Longitude of the central meridian to be used, in radians.
            *
            * Outputs:
            *   philambda - A 2-element containing the latitude and longitude
            *               in radians.
            *
            * Returns:
            *   The function does not return a value.
            *
            * Remarks:
            *   The local variables Nf, nuf2, tf, and tf2 serve the same purpose as
            *   N, nu2, t, and t2 in MapLatLonToXY, but they are computed with respect
            *   to the footpoint latitude phif.
            *
            *   x1frac, x2frac, x2poly, x3poly, etc. are to enhance readability and
            *   to optimize computations.
            *
            */
    		private static void MapXYToLatLon(double x, double y, double lambda0, out double[] xy)
    		{
    			double phif, Nf, Nfpow, nuf2, ep2, tf, tf2, tf4, cf;
    			double x1frac, x2frac, x3frac, x4frac, x5frac, x6frac, x7frac, x8frac;
    			double x2poly, x3poly, x4poly, x5poly, x6poly, x7poly, x8poly;
    
    			/* Get the value of phif, the footpoint latitude. */
    			phif = FootpointLatitude(y);
    
    			/* Precalculate ep2 */
    			ep2 = (Math.Pow(sm_a, 2.0) - Math.Pow(sm_b, 2.0))
    				  / Math.Pow(sm_b, 2.0);
    
    			/* Precalculate cos (phif) */
    			cf = Math.Cos(phif);
    
    			/* Precalculate nuf2 */
    			nuf2 = ep2 * Math.Pow(cf, 2.0);
    
    			/* Precalculate Nf and initialize Nfpow */
    			Nf = Math.Pow(sm_a, 2.0) / (sm_b * Math.Sqrt(1 + nuf2));
    			Nfpow = Nf;
    
    			/* Precalculate tf */
    			tf = Math.Tan(phif);
    			tf2 = tf * tf;
    			tf4 = tf2 * tf2;
    
    			/* Precalculate fractional coefficients for x**n in the equations
                   below to simplify the expressions for latitude and longitude. */
    			x1frac = 1.0 / (Nfpow * cf);
    
    			Nfpow *= Nf;   /* now equals Nf**2) */
    			x2frac = tf / (2.0 * Nfpow);
    
    			Nfpow *= Nf;   /* now equals Nf**3) */
    			x3frac = 1.0 / (6.0 * Nfpow * cf);
    
    			Nfpow *= Nf;   /* now equals Nf**4) */
    			x4frac = tf / (24.0 * Nfpow);
    
    			Nfpow *= Nf;   /* now equals Nf**5) */
    			x5frac = 1.0 / (120.0 * Nfpow * cf);
    
    			Nfpow *= Nf;   /* now equals Nf**6) */
    			x6frac = tf / (720.0 * Nfpow);
    
    			Nfpow *= Nf;   /* now equals Nf**7) */
    			x7frac = 1.0 / (5040.0 * Nfpow * cf);
    
    			Nfpow *= Nf;   /* now equals Nf**8) */
    			x8frac = tf / (40320.0 * Nfpow);
    
    			/* Precalculate polynomial coefficients for x**n.
                   -- x**1 does not have a polynomial coefficient. */
    			x2poly = -1.0 - nuf2;
    
    			x3poly = -1.0 - 2 * tf2 - nuf2;
    
    			x4poly = 5.0 + 3.0 * tf2 + 6.0 * nuf2 - 6.0 * tf2 * nuf2
    				- 3.0 * (nuf2 * nuf2) - 9.0 * tf2 * (nuf2 * nuf2);
    
    			x5poly = 5.0 + 28.0 * tf2 + 24.0 * tf4 + 6.0 * nuf2 + 8.0 * tf2 * nuf2;
    
    			x6poly = -61.0 - 90.0 * tf2 - 45.0 * tf4 - 107.0 * nuf2
    				+ 162.0 * tf2 * nuf2;
    
    			x7poly = -61.0 - 662.0 * tf2 - 1320.0 * tf4 - 720.0 * (tf4 * tf2);
    
    			x8poly = 1385.0 + 3633.0 * tf2 + 4095.0 * tf4 + 1575 * (tf4 * tf2);
    			xy = new double[2];
    			/* Calculate latitude */
    			xy[0] = phif + x2frac * x2poly * (x * x)
    				+ x4frac * x4poly * Math.Pow(x, 4.0)
    				+ x6frac * x6poly * Math.Pow(x, 6.0)
    				+ x8frac * x8poly * Math.Pow(x, 8.0);
    
    			/* Calculate longitude */
    			xy[1] = lambda0 + x1frac * x
    				+ x3frac * x3poly * Math.Pow(x, 3.0)
    				+ x5frac * x5poly * Math.Pow(x, 5.0)
    				+ x7frac * x7poly * Math.Pow(x, 7.0);
    
    			return;
    		}
    
    
    
    
    		/*
            * LatLonToUTMXY
            *
            * Converts a latitude/longitude pair to x and y coordinates in the
            * Universal Transverse Mercator projection.
            *
            * Inputs:
            *   lat - Latitude of the point, in radians.
            *   lon - Longitude of the point, in radians.
            *   zone - UTM zone to be used for calculating values for x and y.
            *          If zone is less than 1 or greater than 60, the routine
            *          will determine the appropriate zone from the value of lon.
            *
            * Outputs:
            *   xy - A 2-element array where the UTM x and y values will be stored.
            *
            * Returns:
            *   The UTM zone used for calculating the values of x and y.
            *
            */
    		public static double[] LatLonToUTMXY(double lat, double lon)
    		{
    			double zone = Math.Floor((lon + 180.0) / 6) + 1;
    			double[] xy = new double[2];
    			MapLatLonToXY(DegToRad(lat), DegToRad(lon), UTMCentralMeridian(zone), out xy);
    
    			/* Adjust easting and northing for UTM system. */
    			xy[0] = xy[0] * UTMScaleFactor + 500000.0;
    			xy[1] = xy[1] * UTMScaleFactor;
    			if (xy[1] < 0.0)
    				xy[1] = xy[1] + 10000000.0;
    
    			return new double[] { xy[0], xy[1], zone };
    		}
    
    
    
    		/*
            * UTMXYToLatLon
            *
            * Converts x and y coordinates in the Universal Transverse Mercator
            * projection to a latitude/longitude pair.
            *
            * Inputs:
            *	x - The easting of the point, in meters.
            *	y - The northing of the point, in meters.
            *	zone - The UTM zone in which the point lies.
            *	southhemi - True if the point is in the southern hemisphere;
            *               false otherwise.
            *
            * Outputs:
            *	latlon - A 2-element array containing the latitude and
            *            longitude of the point, in radians.
            *
            * Returns:
            *	The function does not return a value.
            *
            */
    		public static Coordinate UTMXYToLatLon(double x, double y, double zone, bool southhemi)
    		{
    			double cmeridian;
    
    			x -= 500000.0;
    			x /= UTMScaleFactor;
    
    			/* If in southern hemisphere, adjust y accordingly. */
    			if (southhemi)
    				y -= 10000000.0;
    
    			y /= UTMScaleFactor;
    
    			cmeridian = UTMCentralMeridian(zone);
    			double[] xy = new double[2];
    			MapXYToLatLon(x, y, cmeridian, out xy);
    			Coordinate coordinate = new Coordinate();
    			coordinate.Latitude = RadToDeg(xy[0]);
    			coordinate.Lonitude = RadToDeg(xy[1]);
    			return coordinate;
    		}
    	}
    
    展开全文
  • UTM投影坐标格网

    千次阅读 2019-03-12 17:01:08
    参考: https://www.cnblogs.com/rainbow70626/p/4379615.html http://www.georeference.org/doc/universal_transverse_mercator_utm_.htm
    展开全文
  • UTM投影坐标计算距离

    2020-11-12 14:24:30
    首先,可以看看UTM投影坐标到底是什么:https://www.sohu.com/a/297391828_169228 然后,看过了就会明白,投影投影,就看你投在哪里,比如经纬度,其实是投影在一个球面,或者叫椭球面,所以计算距离的时候就要用到...

    首先,可以看看UTM投影坐标到底是什么:https://www.sohu.com/a/297391828_169228

    然后,看过了就会明白,投影投影,就看你投在哪里,比如经纬度,其实是投影在一个球面,或者叫椭球面,所以计算距离的时候就要用到球面距离的方法等;

    UTM投影和高斯投影,我理解的是都是投影到一个平面了,显示圆柱面,再展开,

    既然是一个平面,当然可以用欧式距离公式求距离了。

    这是我的理解,有问题欢迎评论留言,交流讨论。

    参考:https://blog.csdn.net/z704630835/article/details/82777616

    展开全文
  • C# UTM坐标和WGS84坐标转换工具及源码 工具路径:UTMAndWGS84TransTool\UTMAndWGS84TransTool\bin\Debug\UTMAndWGS84TransTool.exe
  • 大地坐标高斯/UTM投影计算工具

    万次阅读 2018-05-21 13:00:51
    今天要跟大家分享的是一个坐标投影计算小工具,提供北京54、西安80、WGS84和CGCS2000坐标系进行高斯投影和UTM投影正反算转换计算(平面坐标与大地坐标相互转换),提供地理坐标度分秒格式与十进制度度格式的相互转换...

        今天要跟大家分享的软件是一款坐标投影计算小工具,提供北京54、西安80、WGS84和CGCS2000坐标系进行高斯投影和UTM投影正反算计算(投影坐标与地理坐标相互转换),提供地理坐标度分秒格式与十进制度度格式的相互转换。本软件不提供坐标系之间的相互转换!!!


        坐标系和投影是测绘和GIS专业比较基础但也比较容易弄晕乎的知识点,因此在介绍该软件功能之前,先给大家普及下坐标系和投影的相关知识,讲的不对的地方,欢迎拍砖。

    1、坐标系和投影

    1)坐标系  

        测绘里的坐标系包括大地坐标系(全球的)和地方坐标系(局部的),地方坐标系相对复杂(参数保密),本文仅讨论大地坐标系。我国常用的大地坐标系包括北京54、西安80、WGS84和CGCS2000坐标系。

        大地坐标系是大地测量中以参考椭球面为基准面建立起来的坐标系,大地坐标系分为参心坐标系和地心坐标系2种。参心坐标系是以参考椭球的几何中心为原点的大地坐标系,比如我国的北京54坐标系和西安80坐标系,参心坐标系有大地原点(如西安大地原点);地心坐标系是以地球质心为原点建立的坐标系,比如WGS84和CGCS2000坐标系,地心坐标系没有大地原点。

       大地坐标系包括地理坐标系和投影坐标系。地理坐标系为球面坐标,坐标值是经纬度,包括度分秒格式和各种十进制格式;投影坐标系为平面坐标,坐标值是XY坐标。


    2)投影      

        地理坐标按照一定的方式进行投影计算可以转换成投影坐标,我国常用的投影方式包括高斯投影和UTM投影。UTM投影与高斯投影很相似,唯一差别就是UTM投影的比例系数是0.9996,而高斯投影的比例系数是1。下面以高斯投影为例介绍坐标投影。


        假想有一个椭圆柱面横套在地球椭球体外面,并与某一条子午线(此子午线称为中央子午线)相切,椭圆柱的中心轴通过椭球体中心,然后用一定投影方法,将中央子午线两侧各一定经差范围内的地区投影到椭圆柱面上,再将此柱面展开即成为投影面(如上图所示),此投影为高斯投影。

         高斯投影坐标系中的XY轴与ArcGIS软件或AutoCAD软件中的平面坐标系(笛卡尔平面坐标系)中的XY轴刚好是相反的(请看上图右侧的坐标系)。

        高斯投影有严密的计算公式,通过高斯投影正算公式可以将地理坐标转换成投影坐标,通过高斯投影反算公式可以将投影坐标转换成地理坐标,下面要介绍的坐标投影计算软件就是根据这两个公式进行坐标转换计算,具体计算公式请问百度。

        高斯投影计算有个重要的参数就是中央子午线也叫中央经线,因此需要引入6度带和3度带的概念,6度带是自0度经线起每隔经差6度自西向东分带(见下图),依次编号1,2,3,…,60,中央经线的经度用L0表示,它们的关系是:L0=6n-3(n为带号),我国范围内6度带有11个(43~53带);3度带从1.5度经线起每隔经差3度自西向东分带,依次编号1,2,3,…,120,中央经线的经度用L0表示,它们的关系是:L0=3n(n为带号),我国范围内3度带有22个(24~45带)。

        UTM投影通常只采用6度分带,通常也只针对WGS84坐标系。


        设置投影分带的目的是为了在全球范围内统一投影分带标准,但对于坐标投影计算而言,6度带和3度带的目的只是为了计算出中央经线。其实中央经线也可以自定义,比如选取离项目范围最近的整数倍经线作为中央经线,离中央经线距离越小,投影变形越小。

        将地理坐标按照高斯投影计算公式转换成的投影坐标一般包括2种表达,一种是含投影带号的(如:Y=38457136.664, X=2455475.927),另一种是不含投影带号的(如:Y=457136.664, X=2455475.927)。

    3)经验小结    

    • 每个大地坐标系都有两类坐标值,分别是地理坐标(经纬度)和投影坐标(XY坐标);

    • 相同大地坐标系的地理坐标与投影坐标可以通过投影正/反算公式进行相互转换,这种相互转换是严密的,不会产生误差;

    • 本软件的主要功能就是相同大地坐标系中地理坐标与投影坐标之间相互转换,当然ArcGIS软件也有该功能,但要先将坐标值转换成图层后再进行转换操作,步骤相对繁琐。在后面的文章中会单独介绍ArcGIS软件中坐标系和投影的相关知识。

    2、软件功能介绍

        下面介绍的坐标投影计算小工具主要包括2个功能:

    • 提供地理坐标与投影坐标的相互转换(坐标正反投影计算);

    • 提供地理坐标度分秒格式与十进制度格式的相互转换。

    1)坐标正反投影计算

        该功能提供北京54、西安80、WGS84和CGCS2000坐标系进行高斯投影和UTM投影正反算计算。左侧坐标列表为投影坐标,右侧坐标列表为地理坐标,中间的下拉框可以选择坐标系和投影方式,通过设置投影带和带号可以计算出中央经线,也支持手动输入中央经线进行转换(原理不很清楚的,慎用)。


        还可以选择保留小数位数和输出数据列的分割符;右侧地理坐标列表中支持输入“经度-纬度”或者“纬度-经度”的坐标格式,只需要在经纬度下拉框中选择对应的“经纬度”或“纬经度”格式;投影坐标分为“去带号”和“保留带号”2种格式,可以根据需要选择。

    2)地理坐标经纬度格式转换

        该功能提供地理坐标的度分秒格式与十进制度格式之间的相互转换,该计算公式比较简单:

    • 度分秒转十进制度:十进制度=度+分/60+秒/3600;

    • 十进制度转度分秒:度=十进制度取整,分=(十进制度取小数*60)再取整,秒=(十进制度取小数*60)取小数*60。


    3、注意事项

        1)该软件对坐标输入格式有要求,坐标值通过逗号或制表符(Excel中数据列分隔方式)隔开,其他分割方式不支持;另外,度分秒的符号支持搜狗输入法中输出的度分秒符号;

        2)该软件使用时结合文本编辑器和Excel软件进行操作会更方便;

        3)该软件虽然简单易用,但需要对坐标系和投影知识比较熟悉才能正确使用;另外,该软件虽然经过了多年的实际工作验证,但本人不保证转换结果的准确,请验证后使用。

    4、下载地址

        免费下载软件请关注微信公众号。


    展开全文
  • #以python 代码为例 #该方法非常简单 import numpy as np Zone = np.round((183+longitude)/6,0) print(“Zone is”,zone) EPSG=32700-np.round((45+Latitude)/90,0)*100+np.round((183+Longitude)/6,0) ...
  • 将wgs84格式的坐标写入到txt当中,读取之后自动计算代号,并将转换后的UTM坐标写入到txt中
  • WGS84 UTM 坐标系及UTM投影分带标准

    万次阅读 2018-08-15 19:07:46
    1. UTM (Universal Transverse Mercator)坐标系是由美国军方在1947提出的。虽然我们仍然将其看作与“高斯-克吕格”相似的坐标系统,但实际上UTM采用了网格的分带(或分块)。除在美国本土采用Clarke 1866椭球体...
  • UTM投影换带计算

    2014-12-17 12:29:39
    UTM投影换带计算,UTM与WGS84坐标转换
  • 将经过utm投影后的坐标重新去投影,即将地理坐标转经纬度,使用时只需修改一下带号即可
  • 投影坐标系统WKID对应表
  • UTM坐标

    千次阅读 2021-06-11 19:43:27
    投影带分布3.UTM坐标表示格式3.1东向位置3.2北向位置 1.概述 UTM(Universal Transverse Mercator Grid System, 通用横墨卡托网格系统),现在采用WGS84椭球体。 1.2WGS84椭球体 坐标系: 原点:地球质心 X轴:指向...
  • UTM投影中国分区

    千次阅读 2020-03-17 21:48:14
    想要了解更多知识,获得干货,关注微信公众号:GIS点滴
  • WGS 84 经纬度坐标转化成UTM坐标1 利用geodesy功能包实现转化2 利用GeographicLib功能包实现转化   在无人驾驶或者机器人领域,经常会涉及到WGS 84 经纬度坐标UTM坐标之间的转换,本文总结了两种方式来实现两者...
  • UTM投影的选择(地区->投影带)

    千次阅读 2020-02-23 17:47:29
    如果要在ArcMAP中启用shape.area和shape.length计算(几何计算),需要设置投影坐标,WGS-1984地理坐标系一般都设置为UTM投影,涉及不同经纬度不同分带选择,下面详细介绍一下UTM投影。 UTM 投影(Universal ...
  • Java 经纬度转UTM投影

    2021-01-14 22:17:33
    java 经纬度转UTM投影 public class UtmConvert { /* Ellipsoid model constants (actual values here are for WGS84) */ static double sm_a = 6378137.0; static double sm_b = 6356752.314; static double sm_...
  • UTM-wgs84投影坐标

    千次阅读 2013-12-30 21:01:43
    北京54,西安80,wgs84坐标都是是大地坐标,也就是我们...UTM是一种投影坐标,是将球面经纬度坐标经过投影算法转换成的平面坐标,即通常所说的XY坐标。 ARCGIS里面说的UTM WGS84是说来源是WGS84,然后经过UTM投影
  • Pseudo-Mercator\UTM\BD09MC是投影坐标系,坐标表现形式为x、y。 WGS84\CGCS2000是原始坐标系,GCJ02\BD09是加密坐标系。 目前,谷歌、OSM等地图使用的是WGS84坐标系和Pseudo-Mercator投影坐标系;高德、腾讯等...
  • UTM坐标和WGS84坐标(如何转换?)

    万次阅读 2020-02-27 20:46:15
    一、UTM坐标简介 二、WGS84简介 三、WGS84 转 UTM 四、UTM如何转换为WGS84坐标
  • 1. 地理坐标(WGS84)与投影坐标UTM)的相互转换 from pyproj import Proj # 首先定义要转换的投影坐标系 proj1 = Proj("epsg:32601") ''' epsg编号通过epsg官网或者arcmap中查询获得,此为WGS 84 / UTM zone 1N...
  • UTM投影分带标准及投影转换

    千次阅读 2014-11-24 16:26:52
    UTM投影采用6度分带,从东经180度(或西经180度)开始,自西向东算起,因此1带的中央经线为-177(-180 -(-6)),而0度经线为30带和31带的分界,这两带的分界分别是-3和3度。纬度采用8度分带,从80S到84N共20个纬度带...
  • UTM投影

    2021-09-23 11:04:12
    1、基本介绍 UTM (Universal Transverse Mercator)即通用横轴墨卡托投影,属于等角横轴割...将北纬84度至南纬80度之间按经度分为60个带,每带6度UTM投影采用6度分带,从东经180度(或西经180度)开始,自西向东算起,因
  • 1、地理坐标为球面坐标,不方便进行距离、方位、和面积的量算; 2、地球椭球面为不可展面,无法制图; 3、地图为平面,符合视觉心理,且易于进行距离、方位、和面积的量算和各种空间分析。 二、墨卡托投影 ...
  • UTM投影分带相关资料及计算公式

    千次阅读 2018-10-17 20:18:16
    1.UTM简介 UTM (Universal Transverse Mercator)坐标系是由美国军方在1947提出的。与“高斯-克吕格”相似的坐标系统,而实际上UTM采用了网格的分带(或分块)。...UTM投影采用6度分带,从东经180度(或西经...
  • 如何用arcgis进行WGS84的投影坐标变换

    千次阅读 2017-11-03 22:07:00
    通常情况下,要求WGS 84下的投影坐标,选择UTM投影。 1、UTM投影 UTM投影全称为“通用横轴墨卡托投影”UNIVERSAL TRANSVERSE MERCATOR PROJECTION ,是一种“等 角横轴割圆柱投影”,椭圆柱割地球于南纬80度、北纬84...
  • 投影坐标UTM-K(GRS80椭球) 的shapefile文件需要转为地理坐标系 GCS-WGS-1984(CGS84椭球)求各位大神帮忙~  </p>
  • WGS1984 -UTM投影问题

    万次阅读 2014-03-21 09:05:31
    关于WGS1984投影坐标系的相关知识: 打开WGS1984投影文件,仔细看看,我们可以发现里面中有三种不同的投影文件:如下: WGS1984 BLM Zone 14N(ftvs).prj WGS 1984 Complex UTM Zone 20N.prj (该处由20N——30N) WGS ...
  • GPS坐标偏移和转换的那些事: http://www.360doc.com/content/17/0106/21/30375878_620607371.shtml ...地球椭球体 大地基准面 投影坐标系统 定义 https://blog.csdn.net/u014357799/article/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,991
精华内容 796
关键字:

utm投影的坐标