2 回答
TA贡献1906条经验 获得超3个赞
其实算出中心点以距离为半径的外切正方形内的经纬度范围效率比较高 SQL代码 {{{ declare @EARTH_RADIUS float set @EARTH_RADIUS = 6371000.00 ---地球的半径 declare @lat float declare @lng float declare @dlng float declare @dlat float declare @distance int ------距离 set @distance = 300 ----300米 set @lat =xx.xxxxx ---这个是中心地点 set @lng = xxx.xxxx ---中心地点 set @dlng = 2 * asin(sin( @distance / (2 * @EARTH_RADIUS)) / cos(@lat)) set @dlng = degrees(@dlng) set @dlat = 300/@EARTH_RADIUS set @dlng = degrees(@dlat) declare @lng1 float declare @lng2 float declare @lat1 float declare @lat2 float set @lat1 = @lat-@dlat set @lat2 = @lat+@dlat set @lng1 = @lng-@dlng set @lng2 = @lng+@dlng select @lat1,@lat2,@lng1,@lng2 SELECT lat,lng FROM place WHERE lat > @lat1 AND lat < @lat2 AND lng > @lng1 AND lng < @lng2; }}}
添加回答
举报