通過(guò)mysql 判斷點(diǎn)是否在指定多邊形區(qū)域內(nèi)

本文將介紹使用mysql判斷點(diǎn)是否在指定多邊形區(qū)域內(nèi)的方法,提供完整流程。

1.創(chuàng)建測(cè)試表

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

注意:空間索引只能在存儲(chǔ)引擎為MYISAM的表中創(chuàng)建

2.插入多邊形數(shù)據(jù)

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

3.判斷點(diǎn)是否在多邊形區(qū)域

測(cè)試 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))
表示點(diǎn) POINT(3, 4) 在多邊形區(qū)域內(nèi)

測(cè)試 POINT(6, 1)

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

輸出: 空
表示點(diǎn) POINT(6, 1) 在多邊形區(qū)域外

總結(jié):mysql空間查詢并不很適合地圖坐標(biāo),因此查詢地圖坐標(biāo)可以使用mongodb實(shí)現(xiàn),參考:《mongodb 判斷坐標(biāo)是否在指定多邊形區(qū)域內(nèi)的方法》

本文講解了如何通過(guò)mysql 判斷點(diǎn)是否在指定多邊形區(qū)域內(nèi) ,更多相關(guān)內(nèi)容請(qǐng)關(guān)注php中文網(wǎng)。

相關(guān)推薦:

通過(guò)php 中的imagemagick來(lái)實(shí)現(xiàn)老照片效果

通過(guò)php 中的imagemagick來(lái)實(shí)現(xiàn)老照片效果

通過(guò)php 中的imagemagick來(lái)實(shí)現(xiàn)老照片效果

以上就是通過(guò)

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊12 分享