所以我實現了一個谷歌地圖,使用JavaScript來繪製一個多邊形。我使用getBounds來獲取latLongs。然後我打電話給一個數據庫(postcodes
),其中包含英國每個郵政編碼的每個長度。通過數千條記錄(屬性)搜索並返回數據
這個查詢看起來像:
SELECT * FROM `postcode`.`postcodeGoogle` WHERE (`lat` BETWEEN '$lat1' AND '$lat2')
AND (`long` BETWEEN '$long1' AND '$long2')
這很好,返回正確的數據。
然後我有第二個數據庫,address_list
,其中包含英國的每個地址(目前它只包含凱特林區,所以12000行)。我做的第一查詢while
循環,然後在每次循環運行此查詢:
SELECT * FROM `digital_hub`.`address_list` WHERE `postcode`='".$row['postcode']."'
然後我郵政編碼的經緯度添加到一個變量:
$resultE = $resultE."(".$row['lat'].", ".$row['long'].") || ";
這則得到呼應在循環的最後。
此頁面通過jQuery稱爲:
$.get("php/properties.php?bounds="+bounds, function(data){
var theLatLongs = data.split(" || ");
totalcount = 0;
for(x in theLatLongs){
var theLatLong = "";
var latLong = theLatLongs[x].substr(1);
var latLong = latLong.slice(0, -1);
var theLatLong = latLong.split(", ");
var thelat = theLatLong[0];
var thelong = theLatLong[1];
totalcount = totalcount+1;
}
$('#totalcount').html('<h6><span>'+totalcount+'</span> Households found</h6>Filtered by location');
});
這一切工作正常(我認爲)。這非常慢。我知道Facebook有更好的資源,但創建廣告過濾器的速度非常快。我也將實施更多的過濾器。我嘗試了加入,但時間差異似乎並不大。有時它甚至不會返回結果,並崩潰我的mysql
服務...
謝謝!我會放棄這一點! – rickyduck
注意,我更新了一下代碼,使用getJSON。 – roselan
甜美的男人,也使它更快,而不是使用之間,使用'<=' and '> =' – rickyduck