-
2020-12-23 15:41:08
老是奇葩需求 本来可以直接给经纬度 毛病就给我WGS84的什么东西
就给我这个东西 "N22°32′21\"E114°03′25\"" 你说气不气 我裂开了
然后我就找了一圈 找到可以转的 分享下
kotlin代码
/** * 将经纬度转换为度分秒格式 * @param du 116.418847 * @return 116°25'7.85" */ fun changeToDFM(du: Double): String? { val du1 = du.toInt() val tp = (du - du1) * 60 val fen = tp.toInt() val miao = String.format("%.2f", Math.abs((tp - fen) * 60)) return du1.toString() + "°" + Math.abs(fen) + "'" + miao + "\"" }
/** * 度分秒转经纬度 * @param dms 116°25'7.85" * @return 116.418847 */ fun changeToDu(dms: String?): Double { var dms = dms ?: return 0.0 try { dms = dms.replace(" ", "") val str2 = dms.split("°".toRegex()).toTypedArray() if (str2.size < 2) return 0.0 val d = str2[0].toInt() val str3 = str2[1].split("′".toRegex()).toTypedArray() if (str3.size < 2) return 0.0 val f = str3[0].toInt() val str4 = str3[1].substring(0, str3[1].length - 1) val m = str4.toDouble() val fen = f + m / 60 var du = fen / 60 + Math.abs(d) if (d < 0) du = -du return du } catch (e: Exception) { e.printStackTrace() } return 0.0 }
测试示例
val str: String = "N22°32′21\"E114°03′25\"" val strArray = str.split("E") val longitude = strArray[0].replace("N", "").replace("E", "") val latitude = strArray[1] val long = TransformationUtils().changeToDu(longitude); val lat = TransformationUtils().changeToDu(latitude); Log.e("tab", "$long|$lat")
工具类链接 https://blog.csdn.net/chudang9293/article/details/100756826 这位铁子提供的
到这里就完了
我要去敲代码了 拜拜
更多相关内容 -
WGS84与经纬度互转
2016-09-27 10:34:36WGS84与经纬度互转 -
wgs84 投影坐标转经纬度 代码_ArcGis中已知经纬度坐标转任意坐标系(以点和80坐标系为讲解模板)...
2020-11-21 03:46:41图31-1:我们转至WGS-84坐标需要进行十进制的转化,也就是把度分秒换算为以度为单位的一串数字。操作步骤:打开excel>选中代表经度或纬度的列>选中工具窗口上的数据工具栏>分列功能键>选择固定列宽>...一般经纬度都是以度分秒的格式显示的,如图31-1所示。
图31-1:
我们转至WGS-84坐标需要进行十进制的转化,也就是把度分秒换算为以度为单位的一串数字。操作步骤:打开excel>选中代表经度或纬度的列>选中工具窗口上的数据工具栏>分列功能键>选择固定列宽>下一步>在数据中插入分列线隔开度分秒与数字>选择常规>一直点击确定>完成即可。如图31-2所示
图31-2:
如图31-3,所示由31-2步骤完成了经纬度数据度分秒的数字分离,按度分秒之间的60倍十进制关系换算成十进制数据,如红框所示为其换算公式。2、为生成的完整数据。
图31-3:
经纬度坐标为GPS坐标,参照系为WGS-84。打开一个空白ArcMap软件,>视图>数据图框>坐标系>地理坐标系>WGS1984以此建立工程文件的地理坐标系。然后,使用添加数据把分列并换算好的十进制度分秒导入ArcMap中,就获得了WGS-84的坐标点。然后添加一个带有你想转为坐标系的地图或底图,你会发现地形图也被转为了十进制显示。
第二步,仍然是>视图>数据图框>地理坐标系,只是这里的坐标系换为你加入底图的投影坐标系;然后调整视图数据框常规中单位为米点击确。你就会右下角的坐标变为公里网格坐标。
第三步,导出excel事件属性表>生成点层矢量数据>分别添加X\Y字段并计算坐标值。注:计算时选用,使用数据框的坐标系PCS: Xian 1980 GK CM 99E,单位:米。
第四步,重新打开新的ArcMap工程并加载需要的坐标系(Xian 1980 GK CM 99E),添加数据以计算的xy值为坐标到工程中,然后又导出加入的excel个事件,就获得了所需的坐标系点坐标。
欢迎关注公众号:ArcGisdada,觉得不错请分享给需要的人。随后将推出更多的学习文章与小伙伴们一起学习进步。你们的支持,是我的不竭动力。
-
wgs84平面坐标转经纬度
2011-11-11 10:17:28带号是预先设定的,根据自己的需要可以更改。读取的文件是点云的。四个数字是(x,y,z,t)。 -
wgs84toxy坐标转换
2021-05-14 16:02:31适用于坐标系转换,然而并没什么卵用 -
WGS84经纬度坐标到北京54高斯投影坐标的转换
2011-05-08 17:08:37WGS84经纬度坐标到北京54高斯投影坐标的转换 -
wgs84toLambert:GPS 数据从经纬度到法国兰伯特系统的转换-matlab开发
2021-06-01 08:50:50该例程将经纬度 GPS 数据信息转换为 NTF Lambert I、II、III、IV、IIExtend 和 RGF-Lambert 93 -
ECEF坐标系转经纬度 wgs84 - 方法提炼
2019-11-25 23:15:08ECEF坐标系转经纬度 wgs84 - 方法提炼 本文提供坐标系转换算法,根据某前端算法修改完善为C#语言支持。 最近在项目中遇到空间坐标转换问题,现提供相关算法C#支持。 源代码 相关代码如下: using System; ...ECEF坐标系转经纬度 wgs84 - 方法提炼
本文提供坐标系转换算法,根据某前端算法修改完善为C#语言支持。
最近在项目中遇到空间坐标转换问题,现提供相关算法C#支持。
源代码
相关代码如下:
using System; namespace ConsoleApp1 { /// <summary> /// ECEF坐标系转换经纬度 wgs84 /// 方法提炼 /// </summary> internal class Program { private static void Main(string[] args) { double[] ret = XYZ2LLA(new double[] { 3333,4444,1500 }); Console.WriteLine(string.Format("LON-:{0}\r\nLAT-:{1}\r\nALT-:{2}\r\n", ret[0], ret[1], ret[2])); Console.Read(); } private static double EARTH_1 = 6378.137; private static double Temp_1 = EARTH_1 * (1.0 - (1.0 / 298.257223563)); private static double Eccsq = 1 - Math.Pow(Temp_1, 2) / Math.Pow(EARTH_1, 2); private static double Dtr = Math.PI / 180.0; /// <summary> /// ECEF坐标系转经纬度 wgs84 /// 输入-千米、千米、千米 /// 输出-经、纬、千米 /// </summary> /// <param name="xvec"></param> /// <returns></returns> private static double[] XYZ2LLA(double[] xvec) { double flatgc, flatn, dlat, rp, x, y, z, p, tangd, rn, clat, slat, flat, flon, altkm; x = xvec[0]; y = xvec[1]; z = xvec[2]; rp = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2) + Math.Pow(z, 2)); flatgc = Math.Asin(z / rp) / Dtr; flon = ((Math.Abs(x) + Math.Abs(y)) < 1.0e-10) ? 0.0 : Math.Atan2(y, x) / Dtr; flon = (flon < 0.0) ? flon + 360.0 : flon; p = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2)); if (p < 1.0e-10) { flat = ((z < 0.0)) ? -90.0 : 90.0; altkm = rp - Radcur(flat)[0]; } else { altkm = rp - Radcur(flatgc)[0]; flat = Gc2gd(flatgc, altkm); rn = Radcur(flat)[1]; for (double kount = 0; kount < 5; kount++) { slat = Math.Sin(Dtr * flat); tangd = (z + rn * Eccsq * slat) / p; flatn = Math.Atan(tangd) / Dtr; dlat = flatn - flat; flat = flatn; clat = Math.Cos(Dtr * flat); rn = Radcur(flat)[1]; altkm = (p / clat) - rn; if (Math.Abs(dlat) < 1.0e-12) { break; } } } return new double[] { flat, flon, altkm }; } private static double Gc2gd(double flatgci, double altkmi) { double[] rrnrm = Radcur(flatgci); double ratio = 1 - Math.Pow(Math.Sqrt(Eccsq), 2) * rrnrm[1] / (rrnrm[1] + altkmi); double tlat = Math.Tan(Dtr * flatgci) / ratio; rrnrm = Radcur((1 / Dtr) * Math.Atan(tlat)); ratio = 1 - Math.Pow(Math.Sqrt(Eccsq), 2) * rrnrm[1] / (rrnrm[1] + altkmi); tlat = Math.Tan(Dtr * flatgci) / ratio; return (1 / Dtr) * Math.Atan(tlat); } private static double[] Radcur(double lati) { double slat, dsq, rn, rho, z; slat = Math.Sin(Dtr * lati); dsq = 1.0 - Eccsq * Math.Pow(slat, 2); rn = EARTH_1 / Math.Sqrt(dsq); rho = rn * Math.Cos(Dtr * lati); z = (1.0 - Eccsq) * rn * slat; return (new double[] { Math.Sqrt(Math.Pow(rho, 2) + Math.Pow(z, 2)), rn, rn * (1.0 - Eccsq) / dsq }); } } }
2019年11月25日
Dawn -
获取照片经纬度(wgs84)转高德经纬度(gcj02)
2021-11-22 10:37:00const pi = 3.... * WGS84坐标转换GCJ02坐标 * @param wgLat:wgs纬度 * @param wgLon:wgs经度 * @return Array[lat:gcj纬度,lon:gcj经度] */ export function Wgs84ToGcj02 (wgLat, wgLon){ let mgLat,const pi = 3.14159265358979324; const a = 6378245.0; const ee = 0.00669342162296594323; /** * WGS84坐标转换GCJ02坐标 * @param wgLat:wgs纬度 * @param wgLon:wgs经度 * @return Array[lat:gcj纬度,lon:gcj经度] */ export function Wgs84ToGcj02 (wgLat, wgLon){ let mgLat, mgLon; if (!outOfChina(wgLat, wgLon)){ mgLat = wgLat; mgLon = wgLon; return [wgLat,wgLon]; } let dLat = transformLat(wgLon - 105.0, wgLat - 38.5); let dLon = transformLon(wgLon - 105.0, wgLat - 11.5); let radLat = wgLat / 180.0 * pi; let magic = Math.sin(radLat); magic = 1 - ee * magic * magic; let sqrtMagic = Math.sqrt(magic); dLat = (dLat * 180.0) / ((a * (1 - ee)) / (magic * sqrtMagic) * pi); dLon = (dLon * 180.0) / (a / sqrtMagic * Math.cos(radLat) * pi); mgLat = wgLat + dLat; mgLon = wgLon + dLon; let arr = {}; arr['lat'] = mgLat; arr['lon'] = mgLon; console.log([wgLat, wgLon],'转换->',[mgLat,mgLon]) return [mgLat,mgLon]; } const outOfChina = function(lat,lon) { if (lon < 72.004 || lon > 137.8347) return true; return lat < 0.8293 || lat > 55.8271; } const transformLat = function(x, y){ let ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x)); ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; ret += (20.0 * Math.sin(y * pi) + 40.0 * Math.sin(y / 3.0 * pi)) * 2.0 / 3.0; ret += (160.0 * Math.sin(y / 12.0 * pi) + 320 * Math.sin(y * pi / 30.0)) * 2.0 / 3.0; return ret; } const transformLon = function(x, y){ let ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x)); ret += (20.0 * Math.sin(6.0 * x * pi) + 20.0 * Math.sin(2.0 * x * pi)) * 2.0 / 3.0; ret += (20.0 * Math.sin(x * pi) + 40.0 * Math.sin(x / 3.0 * pi)) * 2.0 / 3.0; ret += (150.0 * Math.sin(x / 12.0 * pi) + 300.0 * Math.sin(x / 30.0 * pi)) * 2.0 / 3.0; return ret; }
-
lambert-java:Java库将Lambert坐标转换为WGS84
2021-05-19 11:29:42一个简单的Java库,可基于将Lambert坐标转换为GPS WGS84坐标 安装 从源与gradle 安装gradle 用gradle assemble编译 将生成的build/libs/lambert-java.jar文件添加到您的项目中 宾特雷 用法 LambertPoint pt = ... -
WGS84,GCJ-02,BD-09坐标系间的经纬度坐标转换代码(Python版)
2022-02-17 19:29:11WGS84,GCJ-02,BD-09坐标系间的经纬度坐标转换代码,对不同地图坐标系间的经纬度坐标进行转换从而实现坐标系的统一。 -
wgs84坐标系经纬度投影_南方cass坐标转经纬度_坐标转经纬度软件
2021-03-17 10:03:14一、笔名 主流被使用的地理坐标系并不统一,常见的有wgs84、gcj02(月球坐标系)、bd09(百度坐标系)此外百度地图中留存矢量信息的web墨卡托,本文利用python编写相关类以实现4种坐标功能之间的相互转换。... -
WGS-84大地坐标转北京-54坐标java源代码;七参数、四参数;坐标转换
2020-08-14 22:48:08实现大地坐标与空间直角坐标和平面坐标的相互转换以及不同参考椭球的坐标系转换,内含84到54坐标转换示例! -
GPS经纬度纠偏转换-WGS84、GCJ02、BD09
2020-08-06 18:48:03由WGS84坐标系经加密后的坐标系。 谷歌中国地图、高德地图、腾讯地图采用的是GCJ02地理坐标系; BD09坐标系:百度地图使用坐标系,GCJ02坐标系经加密后的坐标系; 有时候会需要用到真实经纬度,所以上网找了一下 -
经纬度和WGS84投影坐标互转
2015-02-10 15:51:09实现了 经纬度 和 投影坐标(WGS84) 互相转换 -
x,y直角坐标系转经纬度WGS-84坐标系
2021-05-14 09:24:34x,y直角坐标系转经纬度WGS-84坐标系 坐标系的转换采用了白塞尔大地主题反算算法,需要指明x,y坐标系的中心点所对应的现实世界的经纬度,代码如下: //获取方位角 double getAngle(double x, double y) { double... -
Mercator(墨卡托)坐标和WGS84(经纬度)互转
2014-04-01 11:38:10在WebGIS的开发中经常用到的地图投影为Web墨卡托和WGS84。该方法可以实现这两种坐标的相互转换。 -
WGS84经纬度坐标转换成空间直角坐标
2014-06-26 21:18:56WGS84经纬度坐标转换成空间直角坐标,在工程建设中通常都需要独立的坐标系,坐标装换时工程建设的基础。 -
WGS84 国家2000 西安80 北京54坐标系 坐标转换软件
2020-07-07 13:40:41支持GPS WGS84 国家2000 西安80 北京54坐标系的大地、经纬度坐标和平面坐标之间的转换,换带计算,不同坐标系之间的7参数、4参数转换 注意:运行时,杀毒软件可能会提示存在木马,这是授权机制引起的,请忽略,或者... -
高斯平面坐标转经纬度
2019-01-18 15:31:24MATLAB 代码,高斯平面坐标转换为经纬度, 6度带,坐标系为WGS84. MATLAB 代码,高斯平面坐标转换为经纬度, 6度带,坐标系为WGS84. -
使用Python进行经纬度坐标系转换
2021-02-03 01:23:13to_gcj02(lng, lat): """ WGS84转GCJ02(火星坐标系) :param lng:WGS84坐标系的经度 :param lat:WGS84坐标系的纬度 :return: """ if out_of_china(lng, lat): # 判断是否在国内 return [lng, lat] dlat = _... -
WGS84坐标系转换工具
2011-11-15 15:05:19WGS84转换UTM、BJ54和全国80相互转换工具 -
java实现CGS2000大地坐标和WGS84经纬度坐标互转,亲测准确
2021-11-18 16:41:26WGS84转CGS2000 中央子午线需要根据实际设置,参数为经度,纬度,输出值为经度(x),纬度(y) public static Point WGS84ToCGS2000(double longitude, double latitude)//参数 经度,纬度 { Point pt = null... -
WGS1984UTM去投影 转成WGS1984
2018-04-30 17:33:50将经过utm投影后的坐标重新去投影,即将地理坐标转经纬度,使用时只需修改一下带号即可 -
ECEF(X,Y,Z) to Longitude and Latitude.:将坐标从 ECEF(X,Y,Z) 转换为经度和纬度。-matlab开发
2021-05-29 12:38:19此代码遵循 WGS84 模型 !!!; % 定义纬度为 50 的 X、Y、Z 样本; 经度 100; 高度200M; % http://www.apsalin.com/convert-geodetic-to-cartesian.aspx X = -713345.437320888; Y = +4045583.0097852; Z = +... -
经纬度与WGS84坐标转换
2021-04-08 08:18:25如下代码,输出为:WGS84: -2175790.73969891 4461032.11207734 3992337.79032463BLH: 38.9999999999998 116.000000000000 33.0000069718808Module CorrTrans!// WGS84 系统BLH坐标与空间直角坐标转换!// Fortran ... -
WGS84与大地2000坐标转换(Java,C#,Dart)
2020-01-17 23:25:53// x,y ,高斯平面坐标点 //L0 通过经纬度来获取中央带所在带的角度 //return B纬度 , L经度 LatLng xyTowgs84(double x, double y, double L0) { //中央子午线经度 //WGS-84 椭球体参数 double a = 6378137.0;... -
WGS84和ECEF坐标的转换
2021-05-18 13:42:06#include "stdafx.h"#include #define PI 3.141592653/*该程序根据GPS.G1-X-00006.pdf文档,实现了WGS84和ECEF坐标的转换*/void LLAtoECEF(double latitude, double longitude, double height, double &... -
经纬度坐标系之间相互转化工具(百度与WGS84、百度与国测局、国测局与WGS)
2021-09-26 14:45:56刚刚想从百度坐标拾取工具里面找到一些地点的经纬度,存储到系统中使用,由于百度拾取系统给到的是百度(BD-09)坐标系统,系统统一用到的是WGS-84,所以需要进行一次转换,本来想从网上下载一个,结果花了仅剩不多... -
QGIS WGS84转其它坐标系并计算坐标
2020-12-20 10:47:19需求:将带有经度、纬度(WGS84坐标系)坐标的文本(*.txt)转换成指定投影坐标系的shp文件并计算x,y坐标。环境和工具:WIN10、QGIS2.16、带有经纬度坐标的文本。格式如下图:1、创建矢量图层打开QGIS,选择Layer-->Add ...