0

第一次來這裏,所以我會盡量準確和詳細。每天計算和存儲大量駕駛距離(PHP JavaScript)

我正在開發一個項目,用戶可以通過駕駛距離來排序當地景點。起點將是他們的家庭住址,終點將是數據庫中存儲的(許多)景點之一:湖泊,公園,商店,博物館等。

註冊用戶需要指定他/她的地址,並且該站點將運行服務器端腳本,該腳本將緩慢查找該地址與存儲的景點之間的距離。

1)新用戶登記到網站

2)新的吸引力被添加到數據庫

時的行駛距離計算自動觸發

比方說,我有400個景點和1500個用戶。如果我添加一個新的吸引力,該網站將獲取距離1500次(每個用戶)。如果我添加一個新用戶,該網站將執行相同的工作400次(每個景點一個)。

我目前正在使用Goolge API,他們很不錯。唯一的問題是...我每天最多有2500個查詢。因此,如果我添加2個新景點(,將需要總共3000個距離),我被鎖定,直到第二天。

在一個更大的場景中,駕駛距離可能會很長。如果我有5000個註冊用戶,每當我添加一個新景點時,我必須獲取5000個距離。這將需要2天。

什麼可能是更好的方法?我也在評估Google Business API(每年10.000美元),但這隻適用於巨大的現實情況,而且現金廣告的處置也很好。

回答

0

爲什麼你想從服務器端做到這一點?方向請求計入IP地址(每IP每天2500個查詢),所以每當訪問者訪問該站點時,您都​​可以在後臺執行少量請求,並且他們將計入訪問者的IP,而不是服務器的IP。你只需要對AJAX很好。 ;-)

+0

這不適用於景點> 2500. – Bytemain

+0

無論如何,請求將來自服務器,所以在我打開免費的2500每天我出: | – Loque

+0

@ Skidrow @Loque,你沒有看到我的答案。每天2500次點擊**每個IP **。你一次只能做一小撮。 – Marcelo

0

改爲使用直線。不要使用行駛距離。或者將它們存儲在數據庫中並使用空間索引。

+0

不幸的是,從A到B的直線在這種情況下完全不起作用,因爲它會完全忽略障礙物(_rivers,sea,mountains等)......從而導致顯示準確的行駛距離。 – Loque

+0

那麼,你可以將它們存儲在數據庫中,但是如此多的駕駛距離,你應該付出一定的代價。你也應該考慮如何在屏幕上顯示路線和在現實生活中路線之間做出區別? – Bytemain

+0

是的,我存儲每一個獲取的距離,以避免在每次訪問時敲擊谷歌。所以我基本上使用API​​來獲取A-> B的距離,當我添加一條新記錄時,它將被保存在數據庫中。這裏的問題是當我有很多需要多個API調用的用戶(_or attractions_)時(如果每天超過2500),如何進行優化。 – Loque