2012-10-30 150 views
0

我有遍佈整個國家的設備,它們將GPS位置報告給我。我想要做的是有一個系統,將這些座標映射到一個命名區域。將GPS座標映射到區域

我看到兩種方法是:

  • 有一個定義的區域爲多邊形各種GPS COORDS之間拉伸的數據庫。
  • 使用某種形式的web服務可以爲我提供信息。

兩者都可以。它不一定非常準確,因爲我只需要知道所涉及的區域,以便在設備出現問題時知道要撥打哪個區域辦事處。

在第一種方法中,您將如何構建包含數據的SQL表?將GPS座標與其中一個定義區域進行匹配的方法是什麼?不需要定義許多區域,而且它們會很大,因此手動輸入定義區域的值不會成爲問題。

在第二種方法的情況下,有沒有人知道一種編程方式將這些信息從網上按需提供? (我可能會在這種情況下使用Perl WWW :: Mechanize)。 「接近Somecity」就足夠了。

-

PS:這不是一個「做的工作爲我」之類的問題,但更多的是頭腦風暴請求。僞代碼很好。關於這個問題的一般理論也很好。

+0

您是否瞭解空間數據庫 - SpatiaLite或PostGIS? – Spacedman

回答

0

這個過程被稱爲反向地理編碼,許多服務提供商如谷歌,雅虎和ESRI提供服務,讓做這個事情

他們將返回的利益或地址的最近點,但可以保留行政級別您有興趣

使用,看看哪些服務是與您的預期用途

1

在第一種方法兼容的檢查而言,你將如何建立一個包含 的DAT SQL表一個?那麼將您的GPS座標定位到其中一個定義區域的方法是什麼?

Asume:一個區域被定義爲一個封閉的多邊形。
你匹配的GPS通過簡單地調用方法多邊形內部的點座標,像

boolean isInside = polygon.contains(latitude, longitude); 

如果你有幾個多邊形,你可以做一個強力搜索,通過現有的所有多邊形。 如果您有許多點和每個(十個)數千個點,則要使用空間網格(如四叉樹或k-d樹)來減少搜索到相關多邊形。

方法。

+0

你將如何定義多邊形以及如何調用這些方法?有沒有適合這個的Java或Python庫? – jb11

+0

我會使用int座標,因爲Point-in-Polygon只是搜索谷歌,以防你可以從C中移植它。 – AlexWien