2012-05-03 73 views
1

我知道有很多關於從緯度/長度到公制系統計算的線索。這解決了我的問題的第一部分。我的問題計算公制區域內的所有緯度和經度

第二(主要部分)是這樣的:

  • 我有谷歌地圖的地圖應用程序。
  • 我有一個經緯度&一對長點
  • 我有一個度量距離,可以說30米。
  • 我需要點來做一個sql查詢

爲什麼?

我有很多關於POI的記錄,可以用這個經緯圖&長對來定位。我不想得到所有的結果(理由:更好的表現)。

有沒有辦法做這樣的事情:

select * from myTable where lat> .... and lat < ... and long > ... and long < ...? 

這可能嗎?如果它,我如何獲得這些值在...

問候!

回答

1

這裏是一個示例查詢,返回緯度/經度和緯度/經度對的數據庫供應商之間的距離:

DECLARE 
@Latitude float, 
@Longitude float 

SET @Latitude = 46.51257000000000 
SET @Longitude = -84.33660900000000 

DECLARE @SampleData TABLE 
(
Name varchar(100), 
Lat float, 
Lng float 
) 

INSERT INTO @SampleData 
(Name, Lat, Lng) 
SELECT 'Point1', 46.52450048415351,-84.35223018530274 
UNION 
SELECT 'Point2', 46.51835838382206,-84.30279170874024 
UNION 
SELECT 'Point3', 46.522138220045285,-84.2622796237793 
UNION 
SELECT 'Point4', 46.54056115608927,-84.223140829834 

SELECT 
    Name, 
    Lat, 
    Lng, 
    -- using spherical law of cosines, where 6371 is the earth's radius in km. Returns km. 
    Distance = ACOS(SIN(RADIANS(@Latitude))*SIN(RADIANS(Lat))+COS(RADIANS(@Latitude))*COS(RADIANS(Lat))*COS(RADIANS([email protected])))*6371 
FROM 
    @SampleData 
相關問題