2010-07-21 120 views
2

當地房地產經紀人想要將Google地圖添加到他的網站上來顯示他的房源。然而,他並不是只將地圖標記顯示給他的所有屬性,而是希望網站訪問者能夠在地圖上繪製任意多邊形,單擊一個按鈕,然後在這些邊界內顯示他的所有房屋。谷歌地圖:獲取包含在用戶繪製的多邊形內的點?

我的理解是,這將採取一些GIS巫術。但在我開始研究PostGIS的複雜性之前,我想知道是否有更好的方法來做到這一點?該網站運行在一個標準的LAMP棧上,但我希望說服他轉到Python/Nginx/PostgreSQL。

回答

4

我不認爲有必要轉移到PostGIS的。

  • 第一次機會是,您的客戶通過MLS數據庫通過地址(123 fooview street)獲取列表。更新列表到KML文件
  • 使用Google maps tutorialthis map tool繪製使用this website(地圖內提供JS)多邊形
  • 你可以在多邊形的點(匹配,如果任何一個地址是多邊形範圍內)。我認爲他們在多個應用程序中執行此操作。

編輯

在谷歌做point-in-polygon的另一種方式映射

+0

謝謝。術語「指向多邊形」是我需要研究來完成的。 – jamieb 2010-07-21 16:51:20

1

我認爲這不會像你想象的那樣需要儘可能多的GIS巫術。我會通過三個步驟來解決這個問題:

  1. 爲每個列表生成一個緯度和經度座標。您的數據庫中可能已經有這些信息。如果你不這樣做,有幾個免費的工具可以做到這一點。我們在工作中編制了Google地圖應用程序,該應用程序直接鏈接到我們的SQL後端基礎架構,如果需要,我可以幫助您在應用程序中進行設置。

  2. 使用的GLatLng返回的任意點的座標答辯感興趣:http://code.google.com/apis/maps/documentation/javascript/v2/reference.html#GLatLng

  3. 使用一些數學創建點的區域(會更容易,如果你只讓4分的任意形狀),然後使用for循環將每個列表的緯度/長度對與該區域進行比較。

如果面積過大基於狀態/縣/市的所有目錄來比較任意區域,做一些預過濾/任何數據您有可用。

希望這有助於 -Chase