我想實現一種方式來顯示存儲地址的列表,按照與給定地址的鄰近性進行排序。用於計算兩個地址之間距離的現有服務有哪些?
列表中的地址將存儲在數據庫表中。單獨的部分有單獨的字段(我們有郵政編碼,城市名稱等字段),所以它不僅僅是一個巨大的varchar
。這些是用戶輸入的,並且由於系統的性質可能並不總是完整的(有些可能缺少郵政編碼,其他的可能只有城市和州)。
雖然這是用於Intranet應用程序,但使用外部資源(包括訪問互聯網Web服務等)沒有問題。我實際上更喜歡這樣做,除非自己做起來微不足道。如果Google或Yahoo!已經提供免費服務,我非常樂意檢查它。關鍵字必須是免費的,因爲我無權爲此功能在此項目上增加任何額外的成本,因爲它已經是一種獎勵「可以說」。
我在想這個很像很多磚&迫擊炮店做他們的「查找位置」功能。顯示在一個簡單的表格中適當排序並顯示距離(例如,英里)是很好的。顯示地圖mash-up更酷,但我絕對可以生活在遙遠的距離和我處理所有後續的顯示和排序。
簡單距離算法的問題是數據的性質。由於地址的全部或部分可能是未定義的,因此我沒有像緯度/長的座標那樣方便。另外,即使我需要郵政編碼,90%的地址也可能具有相同的五個郵政編碼。正如我們所知,任何需要超過7秒才能顯示在頁面上的延遲時間可能對於普通用戶來說太長而不能等待。如果這樣的假設服務支持一次發送一批地址而不是一次查詢一個地址,那就太棒了。儘管如此,我認爲地址列表不會超過50個。
我一定會研究這一點。我們已經在同一系統的另一部分內鏈接到Yahoo!映射以提供任意輸入地址的位置信息。但在那種情況下,我不需要任何種類的接近... – 2008-09-22 18:02:25
請告訴您使用了哪種解決方案...以便其他人也可以從中受益...我也有類似的問題... http:///stackoverflow.com/questions/7426710/how-to-find-the-distance-between-two-zipcodes-using-java-code – aProgrammer 2011-09-16 07:33:47