0
在我的表,我有三個地理空間領域:MySQL的多邊形搜索失敗
`lat` decimal(12,7) NOT NULL,
`lon` decimal(12,7) NOT NULL,
`location` point NOT NULL,
三和地理空間索引:
KEY `lat` (`lat`),
KEY `lon` (`lon`),
SPATIAL KEY `location` (`location`)
我再有定義爲「在更新前」觸發其設置location
這樣的經緯度對:
FOR EACH ROW SET NEW.location = PointFromText(CONCAT('POINT(',NEW.lat,' ',NEW.lon,')'))
我很確定數據是正確的因爲我可以做各種各樣的圈子查詢。現在,我還需要做一些多邊形查詢,但無法讓它返回任何結果!這裏是我的多邊形查詢:
SET @bbox = 'POLYGON((32.70 -117.16, 47.97 -122.19, 44.80 -68.77, 25.77 -80.19, 32.70 -117.16))';
SELECT * , AsText(location)
FROM geo_table
WHERE Intersects(location, GeomFromText(@bbox));
通過phpmyadmin運行此查詢我得到兩個SQL語句以下消息:
# MySQL returned an empty result set (i.e. zero rows).
作爲一個供參考,在上述SET @bbox顯示的數據點是從美國的四個角落(順時針輸入),應該返回所有點的99%,但不返回任何內容。這裏有座標: 聖地亞哥,CA:32.70 -117.16 Seatle,WA:47.97 -122.19 班戈,緬因:44.80 -68.77 邁阿密,佛羅里達州:25.77 -80.19
我也試過這個,防止過來自NWS CAP 1.1飼料的3500個多邊形,我什麼也得不到!我想我一定是做錯了什麼,但是,對於我的生活,我無法弄清楚它是什麼!
有什麼建議嗎?