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

jacklove
發布: 2018-06-20 17:01:45
原創
2643 人瀏覽過

本文將介紹使用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中文網。

相關推薦:

透過php 中的imagemagick來實現舊照片效果

如何透過php 計算多個集合的笛卡爾積的相關知識

微信開發的分享介面相關內容

以上是透過mysql 判斷點是否在指定多邊形區域內的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板