當地房地產經紀人想要將Google地圖添加到他的網站上來顯示他的房源。然而,他並不是只將地圖標記顯示給他的所有屬性,而是希望網站訪問者能夠在地圖上繪製任意多邊形,單擊一個按鈕,然後在這些邊界內顯示他的所有房屋。谷歌地圖:獲取包含在用戶繪製的多邊形內的點?
我的理解是,這將採取一些GIS巫術。但在我開始研究PostGIS的複雜性之前,我想知道是否有更好的方法來做到這一點?該網站運行在一個標準的LAMP棧上,但我希望說服他轉到Python/Nginx/PostgreSQL。
當地房地產經紀人想要將Google地圖添加到他的網站上來顯示他的房源。然而,他並不是只將地圖標記顯示給他的所有屬性,而是希望網站訪問者能夠在地圖上繪製任意多邊形,單擊一個按鈕,然後在這些邊界內顯示他的所有房屋。谷歌地圖:獲取包含在用戶繪製的多邊形內的點?
我的理解是,這將採取一些GIS巫術。但在我開始研究PostGIS的複雜性之前,我想知道是否有更好的方法來做到這一點?該網站運行在一個標準的LAMP棧上,但我希望說服他轉到Python/Nginx/PostgreSQL。
我不認爲有必要轉移到PostGIS的。
編輯
在谷歌做point-in-polygon的另一種方式映射
我認爲這不會像你想象的那樣需要儘可能多的GIS巫術。我會通過三個步驟來解決這個問題:
爲每個列表生成一個緯度和經度座標。您的數據庫中可能已經有這些信息。如果你不這樣做,有幾個免費的工具可以做到這一點。我們在工作中編制了Google地圖應用程序,該應用程序直接鏈接到我們的SQL後端基礎架構,如果需要,我可以幫助您在應用程序中進行設置。
使用的GLatLng返回的任意點的座標答辯感興趣:http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GLatLng
使用一些數學創建點的區域(會更容易,如果你只讓4分的任意形狀),然後使用for循環將每個列表的緯度/長度對與該區域進行比較。
如果面積過大基於狀態/縣/市的所有目錄來比較任意區域,做一些預過濾/任何數據您有可用。
希望這有助於 -Chase
謝謝。術語「指向多邊形」是我需要研究來完成的。 – jamieb 2010-07-21 16:51:20