透過座標定位 5 英里半徑內的建築物
本指南詳細介紹如何有效地檢索給定座標 5 英里半徑內的所有建築物。
第 1 步:最佳化資料儲存
使用幾何或地理資料類型儲存建築物位置資料。這顯著提高了空間查詢效能並防止資料類型轉換問題。
第 2 步:使用 ST_DWithin 或 ST_Distance
兩個函數有利於距離計算:
ST_DWithin: 此函數有效地決定幾何圖形是否落在指定距離內。 要尋找 (-4.6314, 54.0887) 5 英哩範圍內的建築物:
<code class="language-sql">SELECT name, longitude, latitude FROM building WHERE ST_DWithin('POINT(-4.6314 54.0887)'::geography, ST_MakePoint(longitude, latitude), 8046.72); -- 8046.72 meters = 5 miles</code>
ST_Distance: 此函數計算以公尺為單位的距離。 使用以下命令將米轉換為英里:distance * 0.000621371
。 對於 (-4.6314, 54.0887) 5 英里範圍內的建築物:
<code class="language-sql">SELECT name, longitude, latitude, ST_Distance('POINT(-4.6314 54.0887)'::geography, ST_MakePoint(longitude, latitude)) * 0.000621371 AS distance_miles FROM building WHERE distance_miles <= 5;</code>
第 3 步:關鍵考慮因素
以上是如何使用座標找出 5 英里半徑內的建築物?的詳細內容。更多資訊請關注PHP中文網其他相關文章!