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; }}}
添加回答
舉報