2016-04-29 168 views
1

帶有POINT數據類型的數據庫表。我無法從MySQL POLYGON查詢中得到任何結果。任何想法我做錯了什麼?多邊形是封閉的。MySQL POLYGON查詢無結果

id location 
1 POINT(-37.816652 144.964595)  
2 POINT(-37.788132 144.931183) 
3 POINT(-37.811291 144.985916) 
4 POINT(-37.8389571 144.9656531000001) 
5 POINT(-37.851038 144.993205) 
6 POINT(-37.8029679 144.9501126) 

/* 
north = -37.711586434367305 
east = 145.45740074179685 
south = -37.92854972934211 
west = 144.6142000582031 
*/ 

SELECT * FROM `properties` WHERE Contains (GeomFromText('POLYGON((145.45740074179685, -37.711586434367305, 144.6142000582031, -37.711586434367305, 144.6142000582031, -37.92854972934211, 145.45740074179685, -37.92854972934211, 145.45740074179685, -37.711586434367305))'), location) 

SELECT * FROM `properties` WHERE Contains (PolygonFromText('POLYGON((145.45740074179685, -37.711586434367305, 144.6142000582031, -37.711586434367305, 144.6142000582031, -37.92854972934211, 145.45740074179685, -37.92854972934211, 145.45740074179685, -37.711586434367305))'), location) 
+1

您的WKT看起來不對我。它應該是'POLYGON((XY,X Y ...'而不是'POLYGON((X,Y,X,Y ...),不應該嗎?(這些值似乎是顛倒過來的,正如@ e4c5所暗示的) –

+0

就是這樣,謝謝。 –

回答

0

你似乎已經得到了你的cordinates在錯誤的順序。

GeomFromText('POLYGON((-37.711586434367305,145.45740074179685, 
    -37.711586434367305, 144.6142000582031, ....))) 

另外Contains已被棄用。更好地使用MBRContains。

+0

感謝您的回覆。我調換了座標並使用了MBRContains,但是仍然沒有結果。 –

+0

ST_Contains怎麼樣?http://dev.mysql.com/doc/refman/5.6/en /spatial-relation-functions-object-shapes.html#function_st-contains – e4c5

+0

ST_Contains仍無結果 –