不幸的是,數學從來不是我的強項,我正在努力使用最佳方法/公式(我將需要交給PHP代碼):將地理區域劃分爲一系列較小的區域(可控大小)並計算給定經緯度的哪個區域
1)。從一個大的區域開始(例如覆蓋整個歐洲)
2)。將這個區域分解成一系列較小的塊(即將其變成各種網格)
3)。每個網格塊的寬度應該大致相當於75km的距離(考慮到地球曲率)。 4)。計算每個網格塊的中央緯度/經度點
5)。對於每個網格塊的中心點,針對獨立的經緯度點(代表感興趣的地點)的數據庫運行搜索,以找出每個網格塊最多感興趣的5個關注點。最遠的興趣點距離電網中心不超過150公里。
一旦完成了上述所有工作,我將最終得到一個網格塊數據庫及其相應的5個最近感興趣的地方。
我的希望是,我應該能夠採取任何隨機緯度/長點並計算(使用有效的數學公式)預先計算的網格塊落入其中,從而能夠立即返回5個最接近的點而不必進行任何昂貴的計算。
[注:基於高性能馬克的有益以下響應編輯爲清楚起見]
我想你想根據球面座標(兩個角度的範圍)來定義你的正方形,所以它們都是大致相同的大小,並找到球形座標和經緯度之間轉換的方式。谷歌應該能夠告訴你如何做到這一點,它可以很容易地告訴哪個點在哪個方塊等,並測量距離等。 – Helen
感謝這個海倫。我首先會去探索高性能馬克的想法,因爲它似乎略微超出我的意思(維基百科對於「球座標」的條目讓我感到困惑......) – corford