时间:2015-06-08 08:29 来源: 我爱IT技术网 作者:52ij
mysql两种计算坐标距离的方法
SET @lat = 33; SET @lon = -98; SELECT count(*) FROM pecker_db.d_zip_lookup where MBRContains( LineString ( Point ( @lon + 100 / ( 111.1 / COS(RADIANS(@lat))), @lat + 100 / 111.1 ), Point ( @lon - 100 / ( 111.1 / COS(RADIANS(@lat))), @lat - 100 / 111.1 ) ), my_point)
使用mbrcontains方法,需要自己my_point blob位置属性
实际上是一个矩形,较慢
SET @lat = 33; SET @lon = -98; SELECT (6371 * acos( cos( radians(lat_loc) ) * cos( radians( @lat ) ) * cos( radians( @lon ) - radians(lng_loc) ) + sin( radians(lat_loc) ) * sin( radians( @lat ) ) ) ) as distance FROM pecker_db.d_zip_lookup where lat_loc between @lat-2 and @lat+2 and lng_loc between @lon-2 and @lon+2 having distance<100;
速度快,关键的地方在于划定区域来计算
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
