2012-07-20 67 views
0

我有一個AREA_ID列和AREA列是多邊形類型的區域表。MySQL Spatial Within功能給出錯誤

我運行下面的查詢,但我似乎無法得到它的工作:

SELECT AREA_ID, AsText(AREA) 
FROM networkmodel.sit_area 
WHERE Within(AREA, Polygon((
50.913424 -1.420527, 
50.915805 -1.391516, 
50.898053 -1.390142, 
50.895021 -1.428251, 
50.913424 -1.420527))) 

該查詢給了我一個「操作數應包含1列」的錯誤。

如果我在座標周圍放置少一組括號,則會在解析「錯誤」過程中得到「非法非幾何」(50.913424 -1.420527)'值。我的座標是錯誤的格式嗎?

我知道MySQL文檔中的Within函數沒有正確實現並回退到MBR實現,但我現在只是在測試它。在過去,我已經使用Contains函數成功地以類似的方式使用Point作爲第二個參數而不是多邊形來返回記錄,這應該與此相反。

這是我從文檔中瞭解到,該函數需要兩個參數,並檢查第一個(本例中爲我的區域列)是否屬於給定的Polygon。

任何幫助表示讚賞謝謝。

回答

0

右鍵我做到了現在的工作,而不是使用這個功能,我不得不多邊形聲明更改爲:

GeomFromText('Polygon((50.913424 -1.420527, 50.915805 -1.391516, 50.898053 -1.390142, 50.895021 -1.428251, 50.913424 -1.420527))')