我目前有一個數據庫查詢,用於計算數據庫中每個商店與「家」位置之間的距離。我正在用這個公式計算飛行距離。緯度/經度數學問題(兩個座標之間的距離)
http://www.movable-type.co.uk/scripts/latlong.html
然後,我命令他們並顯示它們。我發現一個更好的方法是隻搜索經緯度在一定範圍內的商店。
例如,不是計算數據庫中每個商店之間的距離(超過30000),而是僅計算具有特定範圍內經度/長度的組,並計算它們之間的距離。
現在我試圖找出如何計算實際邊界。距離必須在5公里以下。所以我把5乘100除以那些數量的經緯度。
SELECT storeid, storedescription, address, city, storebannerdescription, lat, lon,
ROUND (gc_dist (lat, lon, 43.758152, -79.746639), 1) AS distance
FROM storelatlon
WHERE ((lat-43.758152) < 0.05 AND (lat -43.758152) > -0.05) AND ((lon-(-79.746639)) < 0.05 AND (lon-(-79.746639)) > -0.05)
ORDER BY Distance
你的問題是? – 2011-05-31 16:07:19
我不確定你在問什麼,但我會注意到,減去角度測量並不能告訴你任何有關距離的信息。 – 2011-05-31 16:08:38
什麼問題?我認爲這是「這是一個有效或良好的實施?」另外,你使用的是什麼數據庫?一些數據庫支持緯度/經度計算(比如Oracle Locator),但這不是必需的(Oracle Spatial不是),而且很難判斷線路以Locator結束並以Spatial開頭。其他數據庫也提供基本的支持,包括MySQL。 – pickypg 2011-05-31 16:10:10