地理位置计算

Joson.e8love 2016-12-21 09:36:28


--DECLARE @g geography;
--DECLARE @h geography;
--SET @g = geography::STGeomFromText('POINT(113.91 22.542433)', 4326);
--SET @h = geography::STGeomFromText('POINT(113.65 22.542439)', 4326);
--SELECT @g.STDistance(@h);



上边是地理位置计算方法,我想写成一个函数


传入 四个参数 计算 两个坐标的 距离, 这个参数要怎么传入?




DECLARE @g geography;
DECLARE @h geography;

Set @GPSLng=Convert(decimal(12,6), @GPSLng);
Set @GPSLat=Convert(decimal(12,6),@GPSLat);
Set @Lng=Convert(decimal(12,6), @Lng);
Set @Lat=Convert(decimal(12,6),@Lat);

--SET @g = geography::STGeomFromText('POINT(113.91 22.542433)', 4326);
--SET @h = geography::STGeomFromText('POINT(113.65 22.542439)', 4326);

SET @g =geography::STGeomFromText('POINT('+@GPSLng+ @GPSLat+')', 4326);
SET @h =geography::STGeomFromText('POINT('+@Lng+ @Lat+')', 4326);

return Convert(decimal(12,6), @g.STDistance(@h));



我是这样写 但是提示

Msg 8114, Level 16, State 5, Line 29
Error converting data type varchar to numeric.
...全文
265 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
中国风 2016-12-22
  • 打赏
  • 举报
回复
你要用字符串才能计算,数字同字符串起来,要转为字符
中国风 2016-12-22
  • 打赏
  • 举报
回复
这两段改改
 
SET @g =geography::STGeomFromText('POINT('+RTRIM(@GPSLng)+' '+ RTRIM(@GPSLat)+')', 4326);
SET @h =geography::STGeomFromText('POINT('+RTRIM(@Lng)+' '+ RTRIM(@Lat)+')', 4326);

Joson.e8love 2016-12-22
  • 打赏
  • 举报
回复
果然是 谢谢了 做个算距离的
Joson.e8love 2016-12-21
  • 打赏
  • 举报
回复
POINT 数据类型 要怎么传入

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧