我在PostgreSQL數據庫中存儲興趣點(POI),並通過PHP腳本將它們檢索到Android應用程序。爲了減少互聯網使用量,我希望我的移動應用程序知道當前顯示區域附近是否有任何點。獲取包含在框中的大部分左側|右側|頂部|底部點
我的想法是存儲包含已經檢索到的所有點的矩形邊界(換言之:已經檢索到的最西部的最左邊的西部的最近點,已經檢索到的最北部的最近的北部的點) ),當屏幕的任何邊緣超出這個邊界時,我會進行下一個查詢。
目前我可以檢索這是在「單屏」點(以當前顯示的地圖覆蓋的區域)使用:
SELECT * FROM ch WHERE loc <@ (box '((".-$latSpan.", ".$lonSpan."),(".$latSpan.", ".-$lonSpan."))' + point '".$loc."')
現在我需要在每個方向上知道四個最偏遠點,比我將能夠檢索到下四個「更遠程」點。
是否有可能直接從PostgreSQL獲得這些點(或框)(也許使用一些「聚合點到框」功能)?
您確定框中的值的順序嗎?它看起來像在X(水平)座標中存儲緯度極值(N/S),在Y(垂直)中存儲經度。我希望這個盒子是'box((--longSpan,latSpan),(longSpan,-latSpan))'。 – outis 2010-04-03 00:45:11