2014-03-04 60 views
-1

我在2天的關鍵期限(我自己撤消,我知道),我需要在Wordpress中實現一個功能,一組帶有自定義內容的帖子,其中包含wp_postmeta中已知字段的位置(未進行地理編碼),並根據與特定地理編碼的接近度(即20英里內)顯示它們的列表。用谷歌地圖API確定鄰近位置的最佳方式

我對WP查詢沒有任何問題 - 對於Google Map API,我只是一個新手而已,並且這些文檔在地理編碼方面並不是非常簡單,我假定我必須確定鄰近性。

此外,我假設我只需遍歷每個帖子的列表,並確定一個一個,如果他們符合接近要求。

我不是要求別人爲我做這件事,除非你願意爲我付錢 - 我只需要迅速指出正確的方向。我不能找到任何人誰知道如何做到這一點 - 我有一些預算...

+0

我是否因爲我在尋找方向而投了票?因爲我犯了一個愚蠢的錯誤,並預訂了一場演出,所以我沒有準備好?我喜歡一些反饋。 –

回答

1

我前幾天正在研究類似的東西。如何使用快速SQL查詢處理4M地理位置記錄數據庫。

this page + this pdf幫助。

取決於您在數據庫中存儲的內容,但是每次都重複瀏覽每篇文章會很慢。您需要將地理位置查詢卸載到SQL級別。

PS我知道鏈接僅答覆令人難以接受的...

1

這裏有您需要修改

PHP

function buildGeocode($address_1, $address_2, $city, $state, $zip_code, $country){ 

     $base_url = "http://maps.googleapis.com/maps/api/geocode/json"; 

     $address = $address_1 . ' ' . $address_2 . ', ' . $city . ' ' . $state . ' ' . $zip_code . ' ' . $country; 

     $request_url = $base_url . "?address=" . urlencode($address) . "&sensor=false"; 

     $data = json_decode(file_get_contents($request_url), true); 

     return array('lat' => $data['results'][0]['geometry']['location']['lat'], 'lng' => $data['results'][0]['geometry']['location']['lng']); 

} 

MySQL的

兩圈腳本
"SELECT SQL_CALC_FOUND_ROWS 
      * 
      FROM (SELECT location_tbl.*, (3959*(2*ASIN(SQRT(POW(SIN(((location_tbl.lat-" . $lat . ")*(PI()/180))/2),2)+COS(location_tbl.lat*0.017453293)*COS(" . $lat . "*0.017453293)*POW(SIN(((location_tbl.lng-" . $lng . ")*(PI()/180))/2),2))))) AS distance 
       FROM location_tbl 
      WHERE location_tbl.active = 1 AND location_tbl.deleted = 0) AS tmp_tbl 
     WHERE distance <= '" . $dis . "' 
     ORDER BY distance ASC"