2013-02-21 140 views
2

我在PostGIS中兩個地理區域之間的相交存在問題: 我有一個table1,地理列中填充了wgs84中的多邊形(每個線)。 第二張表格2還有一個填充了wgs84中多邊形的地理欄(每行一個)。 然後我做一個相交(兩個之間選擇(..)其中ST_Intersects())。兩個地理區域之間的PostGIS:ST_Intersects()有時返回錯誤結果

在一些(非常罕見)的情況下,它似乎不能正確工作,因爲交叉點在預期爲true的情況下返回false: 我有一個reprojected tif表示table1中一行的地理位置,它覆蓋坦桑尼亞的一個大區域。 我也有一個表2中的一行reprijected tif,它只涵蓋了一些km²的小面積。 在ArcMap中,兩者相交,小區域位於大的邊緣,但PostGIS對ST_Intsersects(geog1,geog2)返回false。

當我通過自卸車將shape1作爲shapefile導出時,地理角點與直線連接,而不是與大圓的部分連接。 然後我得到相同的結果:現在table2中的區域位於table1的區域之外。 所以我猜,PostGis也會用這個簡化的多邊形來計算,但據我所知,地理學是用大圓而不是直線來計算的?

我已經盡力確保兩張表格都充滿了地理位置而不是幾何圖形,但即使是明確地轉換爲地理位置也不會改變結果。

做過這樣的事情發生之前還是你有一個想法我做錯了什麼? 這是一個問題,table2也有一個幾何和柵格列(= 3空間列alltogether)?

+0

什麼是SRID?你檢查過它們,它們是否一樣? – azzaxp 2013-02-22 06:43:10

+0

是的,這兩個表格中的地理上的柵格是相同的,對於WGS84是4326。 – 2013-03-06 08:30:09

回答

1

沒有看到你的實際幾何形狀,我不能肯定地說,但幾乎可以肯定的是,你錯誤地解釋了大圓線將如何限制你的區域,並且PostGIS正在做對,特別是如果你正在處理邊界附近的關係。使用Google Earth線串(不是多邊形,那些不使用大圓圈的線段)可視化示例可能有助於澄清事物如何在視覺上工作。

+0

真的很難想象所有這些形狀,但至少有一個程序必須是錯誤的: PostGIS或NASA的命令行工具將文件重新投影到GeoTif,因爲兩者都爲同一個文件生成不同的邊框(然後不同結果與第二個形狀相交)。 問題是,我看不到PostGIS實際上在做什麼,我只能使用傾卸器來獲取shapefile,但當然這並不一定是PostGIS在使用地理信息時內部使用的相同形狀。 – 2013-03-06 08:29:01

+0

如果我正在解釋你在說什麼,這些形狀本身就是正方形。或者更確切地說,它們是由四個角落定義的對象。軟件之間的不同之處在於它如何解釋加入這些角落的線條。 – 2013-03-06 20:57:48

+0

是的,我有4個角點。據我所知,幾何圖形應該像飛機上的直線一樣連接它們,而地理學應該將它們與全球各地的大部分圓圈連接起來。傾卸器給了我一個shapefile,其中的點用直線連接,而reprojected文件顯示的邊界是大圓圈的一部分。我不知道PostGIS在與2個地理位置相交時在內部做了什麼。 – 2013-03-08 11:59:31