2012-08-17 98 views
2

我想確定給定地理點(已知GPS座標)落在哪個美國州和縣。我相信我可以獲得有關州和縣角落座標的數據,但是我需要一種算法來計算點落在哪個州和縣。美國哪個州的地理位置落在哪個地區?

我不是Java或C用戶,但我是Panorama(provue.com)中非常有經驗的程序員,這是一個非常全面和功能強大的編程語言的數據庫管理系統。所以我需要訪問一個一般定義的算法。

邁克爾

+0

如果谷歌地圖API可以使用,你可以節省很多工作。 – 2012-08-17 07:02:22

回答

1

首先,你應該有一組多邊形,每一個對應於美國各州像http://www.nws.noaa.gov/geodata/catalog/national/html/us_state.htm

然後你可以使用在http://www.ecse.rpi.edu/Homepages/wrf/Research/Short_Notes/pnpoly.html#The C代碼給出

int pnpoly(int nvert, float *vertx, float *verty, float testx, float testy) 
{ 
    int i, j, c = 0; 
    for (i = 0, j = nvert-1; i < nvert; j = i++) { 
    if (((verty[i]>testy) != (verty[j]>testy)) && 
    (testx < (vertx[j]-vertx[i]) * (testy-verty[i])/(verty[j]-verty[i]) + vertx[i])) 
     c = !c; 
    } 
    return c; 
} 

nvert如下算法:數多邊形中的頂點。下面討論是否重複第一個頂點。包含多邊形頂點的x和y座標的數組。

testx,testy:測試點的X座標和Y座標。

+1

+1這種方法的美妙之處在於,它可以用於任何你選擇的多邊形,所以它可以被重複使用來檢查縣或國家內的點或任意多邊形 – psubsee2003 2012-08-21 15:27:33

相關問題