易创论坛 - 因你而精彩
  [Search] 搜索   [Recent Topics] 最新主题   [Hottest Topics] 热门主题   [Members]  会员列表   [Groups] 返回首页 
[Moderation Log] 管理日志   [Register] 会员注册 / 
[Login] 登入 
SQL通过两个点的经纬度计算距离  XML
论坛首页 » J2EE技术交流
发表人 内容
eworkday



注册时间: 17/02/2009 09:38:31
文章: 761
离线

Google算法



另一种算法:

我想通过 经度和纬度(已知的一个点)来查询方圆4km内符合条件的信息,想通过公式d=r*arccos[cos(y1)*cos(y2)*cos(x1-x2)+sin(y1)*sin(y2)]计算出d,然后把计算出来的d作为一列,然后条件查询,最后再将距离以字符串的形式显示出来,应该怎样实现啊?


string sql = string.Format(@"SELECT *, 6370 *ACOS(cos( {0} ) * cos(fld_y) * cos({1} - fld_x ) + sin({0}) * sin(fld_y))
FROM 表名
where 6370 *ACOS(cos( {0} ) * cos(fld_y) * cos({1} - fld_x ) + sin({0}) * sin(fld_y)) < 4 and fld_shopname='{2}'", Lat, Long, shangpinming);

Lat, Long 表示经纬度。






参考文章:
SQL Server用户自定义函数
通过经纬度计算距离的公式
SQLSERVER 根据经纬度计算距离差
sql server把计算出来的结果作为一列,然后条件查询
google map api----求出两个坐标的距离
利用JAVA实现.NET的String.format(),方便字符串合并

这篇文章被编辑了 6 次. 最近一次更新是在 15/04/2011 17:01:10


易创天成
[MSN]
 
论坛首页 » J2EE技术交流
前往:   
Powered by JForum 2.1.8 © JForum Team. Improved by EWorkday