2010-03-17 56 views
3
  1. 所以問題出在這裏......我有一個字段,用戶可以輸入他們的地址(通過Google Maps API GeoCoded)。
  2. 我在我的數據庫中有幾個小部件的地址(保存爲地址..再次可以輕鬆地進行地理編碼)。

我需要的是用戶輸入他們的地址,並根據他們的地址距離來創建我的小部件列表。我有幾千個地址用於我的小部件,用戶顯然擁有無數個地址。如何根據距離與Google Maps API進行搜索?

任何想法?

謝謝。

回答

2
SELECT latitude, longitude, SQRT(POW(69.1 * (latitude - 52.58) , 2) + 
POW(69.1 * (- 1.12 - longitude) * COS(latitude/57.3) , 2)) AS distance 
FROM location ORDER BY distance 

Click Here 他們提供計算距離的幾種方法 - 選擇最適合你的。

0

此博客帖子,"Calculate Distance using Google Maps API",可能會有一些幫助。

+0

這對2點是好的,但是如何在用戶輸入他/她的地址的同時實時爲我的所有地址執行此操作? – Shamoon 2010-03-17 20:33:47

+0

通過使用'for .. next'循環?您的小部件已經進行了地理編碼並存儲在數據庫中。在通過API調用對用戶地址進行地理編碼後,這只是數學問題。即使是數千個地址也只需要幾秒鐘的時間。 – ghoppe 2010-03-17 21:36:10

1

你真的不能使用谷歌來計算你的地理距離過濾。要做到這一點,您必須將您的數據發送給他們,讓他們存儲併爲您查詢。他們現在或將來都可以提供這種服務,但我沒有聽說過。

在更多的法律,更強大,更昂貴的順序:

A /作爲點或感興趣的位置是通過您的網站的客戶的意見,收集地理coordiniates。然後使用你自己的搜索引擎,並從一個點的距離搜索。可能違反與谷歌的協議,但他們確實提到'緩存'的結果,以減輕服務器的負擔。 (原因是我的個人猜測。)

B /使用谷歌進行批量地理編碼,也許只有一次,最多每天最多5000個IP地址,最後我看到了。甚至不確定這是否違反使用協議。

C購買與地理編碼服務的合同,並存儲他們爲您進行地理編碼的內容。

D購買地理編碼庫並進行自己的地理編碼。

相關問題