22,209
社区成员
发帖
与我相关
我的任务
分享
create procedure tests
as
begin
declare @y1 float,@y2 float,@x1 float,@x2 float,@Ea float,@Eb float,@Ec float,@Ec2 float
declare @Long float,@Lat float,@Long2 float,@Lat2 float,@LongRad float,@LatRad float
declare @LongRad2 float,@LatRad2 float,@dx float,@dy float,@ed float,@Ed2 float
select @y1=b.longitude,@y2=b.latitude
from SYSTEM_DATA_ROAD a,SYSTEM_DATA_ROAD_INFO b
where a.begin_date<'2011-12-13' and a.begin_date>'2011-12-12' and a.road_id=b.road_id and b.timeat>'2011-12-12' and b.timeat<'2011-12-13'
select @x1=n.longitude,@x2=n.latitude
from system_data_corp m,system_data_corp_reg n
where m.corp_id=n.corp_id and (n.longitude<>'0' or n.latitude<>'0')
set @Ea=6378137
set @Eb=6356725
set @Long=@y1
set @Lat= @x1
set @Long2=@y2
set @Lat2= @x2
set @LongRad=@Long* 3.1415926/180;
set @LatRad=@Lat* 3.1415926 /180;
set @Ec=@Eb+(@Ea-@Eb)*(90-@Lat)/90;
set @Ed=@Ec*Cos(@LatRad);
set @LongRad2=@Long2*3.1415926/180;
set @LatRad2=@Lat2*3.1415926 /180;
set @Ec2=@Eb+(@Ea-@Eb)*(90-@Lat)/90;
set @Ed2=@Ec*Cos(@LatRad2);
set @dx=(@LongRad2-@LongRad)*@Ed;
set @dy=(@LatRad2-@LatRad)*@Ec;
set @ed=Sqrt(@dx*@dx+@dy*@dy);
select @dx,@dy,@ed
end
go