如何通過mysql 判斷點是否在指定多邊形區域內

本文將介紹使用mysql判斷點是否在指定多邊形區域內的方法,提供完整流程。

相關mysql視頻教程推薦:《mysql教程

1.創建測試表

CREATE TABLE `zone` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `polygongeo` polygon NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MYISAM DEFAULT CHARSET=utf8;

注意:空間索引只能在存儲引擎為MYISAM的表中創建

2.插入多邊形數據

insert into zone(polygongeo) values(POLYGONFROMTEXT('POLYGON((1 1,1 5,5 5,5 1,1 1))'));

3.判斷點是否在多邊形區域

測試 POINT(3, 4)

select AsText(polygongeo) from zone where MBRWithin(POLYGONFROMTEXT('POINT(3 4)'),polygongeo);

輸出: POLYGON((1 1,1 5,5 5,5 1,1 1))
表示點 POINT(3, 4) 在多邊形區域內
測試 POINT(6, 1)

select AsText(polygongeo) from zone where MBRWithin(POLYGONFROMTEXT('POINT(6 1)'),polygongeo);

輸出: 空
表示點 POINT(6, 1) 在多邊形區域外
總結:mysql空間查詢并不很適合地圖坐標,因此查詢地圖坐標可以使用mongodb實現,參考:《mongodb 判斷坐標是否在指定多邊形區域內的方法》

本文講解了通過mysql 判斷點是否在指定多邊形區域內,更多相關內容請關注php中文網。

相關推薦:

mysql教程

mysql教程

mysql教程

以上就是如何通過

? 版權聲明
THE END
喜歡就支持一下吧
點贊8 分享