发布网友 发布时间:2022-05-02 00:11
共3个回答
懂视网 时间:2022-05-02 04:32
@LatBegin 纬度A(33.8703596)-- --@LngBegin 经度A(-117.9242966)-- --@LatEnd 纬度B(34.0392283)-- --@LngEnd 经度B(-117.8367681)-- CREATE FUNCTION [dbo].[fnGetDistance](@LatBegin REAL, @LngBegin REAL, @LatEnd REAL, @LngEnd REAL) RETURNS FLOAT AS BEGIN --距离(千米) DECLARE @Distance REAL --距离(英里)-- DECLARE @Edistance REAL DECLARE @EARTH_RADIUS REAL DECLARE @MI REAL SET @EARTH_RADIUS = 6378.137 --地球半径(千米)-- Set @MI=0.6213712 --1千米(km)=0.6213712英里(mi) DECLARE @RadLatBegin REAL,@RadLatEnd REAL,@RadLatDiff REAL,@RadLngDiff REAL SET @RadLatBegin = @LatBegin *PI()/180.0 SET @RadLatEnd = @LatEnd *PI()/180.0 SET @RadLatDiff = @RadLatBegin - @RadLatEnd SET @RadLngDiff = @LngBegin *PI()/180.0 - @LngEnd *PI()/180.0 SET @Distance = 2 *ASIN(SQRT(POWER(SIN(@RadLatDiff/2), 2)+COS(@RadLatBegin)*COS(@RadLatEnd)*POWER(SIN(@RadLngDiff/2), 2))) SET @Distance = @Distance * @EARTH_RADIUS SET @Distance = Round(@Distance * 10000,1) / 10000 --千米-- SET @Edistance= @Distance * @MI --英里-- RETURN @Edistance END
------------------------------------------调用方法--------------------------------------------------------------------
select dbo.fnGetDistance(33.8703596,-117.9242966,34.0392283,-117.8367681)
sql中经度维度计算距离
标签:turn earth sql float bsp gdi declare nbsp begin
热心网友 时间:2022-05-02 01:40
1°经度差对应的东西方向的距离是与其纬度有密切关系的。 赤道上经度相差1°对应的弧长大约是111千米 具体数据如下: 纬度 1°经度差对应的东西距离 20° 104公里 26° 100公里 30° 96公里 36° 90公里 40° 85公里 44° 80公里 51° 70公里 经纬度在不同地区,每度距离差是不同的,如果假定地球是完美的球体(这样假设误差不是很大)的话,纬度为 B 的地区: 纬度变化一度,球面南北方向距离变化:πR/180 ........111.7km 经度变化一度,球面东西方向距离变化:πR/180*cosB ....111.7*cosB 比如北京 B = 40、cosB = 0.766,经度变化1度,则东西方向距离变化 85.567km 3回答者: 知乎者不知也 - 初入江湖 * 2007-6-10 17:10 我来评论>> 提问者对于答案的评价:谢谢 相关内容 �6�1 每一经度和纬度在地球上的实际距离大约是多少千米?�6�1 根据地球上两个地点的经度和纬度,如何获得这两点的...�6�1 地球表面北纬60°圈上有A、B两点,它们的经度差为180...�6�1 请问已知一段距离,如何换算成对应的经度或纬度的偏...�6�1 设地球半径为R,在北纬60度的圈上有甲乙两地,他们纬... 更多相关问题>>其他回答 共 1 条 20° 104公里 26° 100公里 30° 96公里 36° 90公里 40° 85公里 44° 80公里 51° 70公里热心网友 时间:2022-05-02 02:58
跟直角坐标系一样