用戶註冊我的網站並輸入他們的郵政編碼。我想查詢其他用戶,並按距離排序。我如何根據距離單個緯度/經度的距離對一組緯度/經度進行排序?
我有一個數據庫充滿每個郵政編碼的經緯度點的郵政編碼。
zip_code (char)
lat (float)
lon (float)
我有這將計算兩組緯度/經度之間的距離,但對所有其他郵政編碼運行這在我的分貝是昂貴的方法。我需要在每個郵政編碼組合上運行。我想我可以做一次並將它存儲在某個地方,但我會在哪裏存儲它?似乎很奇怪,每個郵政編碼都有一張表,其中包含與其他郵政編碼的距離。有沒有一種乾淨的方式來做到這一點?
你需要一個圖形(存儲在緩存中):http://networkx.github.io/。只需使用距離初始化邊的權重,並使用帶有zip_code ID的節點來初始化邊。這樣你有O(1)(節點查找)+ O(| E |)(線性在節點的度) – lucasg
我認爲你的問題的標題是誤導,因爲這不是你想知道該怎麼做。 – martineau
您的用戶是否在美國?然後根據lon對經緯度進行排序。那麼你不需要測試lon距離2度或更遠的點。 – TreyA