GPS经纬度换算 在地理信息系统(GIS)和全球定位系统(GPS)中,经纬度是非常重要的概念。它是描述地球上某一点的坐标系,通常用经度和纬度两个坐标来表示。经度是指某一点距本初子午线的距离,通常以东经或西经表示;纬度是指某一点距赤道的距离,通常以北纬或南纬表示。 在实际应用中,经纬度数据需要进行换算和转换,以满足不同的需求。例如,在GPS系统中,经纬度数据通常是十进制小数形式的,而在电子地图中,经纬度数据需要转换为度分秒形式的。 本文将详细介绍经纬度换算的方法,包括十进制转换成经纬度、经纬度转换成十进制,以及使用SQL查询分析器实现经纬度数据的批量转换。 一、十进制转换成经纬度 十进制转换成经纬度是将十进制的小数形式转换为度分秒形式的。该方法非常简单,使用以下公式: Decimal Degrees = Degrees + minutes/60 + seconds/3600 例如,57°55'56.6" = 57 + 55/60 + 56.6/3600 = 57.9323888888888 114°65'24.6" = 114 + 65/60 + 24.6/3600 = 结果自己算! 二、经纬度转换成十进制 经纬度转换成十进制是将度分秒形式转换为十进制的小数形式。该方法也非常简单,使用以下步骤: 1. 直接读取"度":205 2. (205.395583333332-205)*60=23.734999999920 得到"分":23 3. (23.734999999920-23)*60=44.099999995200 得到"秒":44.1 采用同样的方法可以得到纬度坐标:57°55'56.6" 三、使用SQL查询分析器实现批量转换 如果需要转换的经纬度数据很多,可以借助SQL查询分析器或Excel来进行转换。下面是使用SQL查询分析器实现批量转换的示例: CREATE TABLE [dbo].[tableName]( [ID] [int] IDENTITY(1,1) NOT NULL, [address] [varchar](20) COLLATE Chinese_PRC_CI_AS NULL, [longitude] [float] NULL, [latitude] [float] NULL ) ON [PRIMARY] GO 假设表tableName中的数据如下: ID address longitude latitude 0 add1 205.3955833 57.93238889 1 add2 205.3911111 57.95194444 2 add3 205.3791667 57.98916667 3 add4 205.3713889 57.95611111 可以使用以下查询语句来实现批量转换: --Declare The longitude,latitude declare @LoaDeg varchar(50) declare @LoaMin varchar(100) declare @LoaSec varchar(100) declare @LatDeg varchar(50) declare @LatMin varchar(100) declare @LatSec varchar(100) --Set The Variable Set @LoaDeg='left(longitude,3)' Set @LoaMin='left((longitude-'+@LoaDeg+')*60,2)' Set @LoaSec='left((((longitude-'+@LoaDeg+')*60-'+@LoaMin+')*60),4)' Set @LatDeg='left(longitude,3)' Set @LatMin='left((longitude-'+@LatDeg+')*60,2)' Set @LatSec='left((((longitude-'+@LatDeg+')*60-'+@LatMin+')*60),4)' --Execute The Command exec('select ID,address,longitude, '+@LoaDeg+' as LoaDegree, '+@LoaMin+' as LoaMinute, '+@LoaSec+' as LoaSecond , '+@LatDeg+' as LatDegree, '+@LatMin+' as LatMinute, '+@LatSec+' as LatSecond )
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助