明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

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

[摘要]本文將介紹使用mysql判斷點(diǎn)是否在指定多邊形區(qū)域內(nèi)的方法,提供完整流程。1.創(chuàng)建測試表CREATE TABLE `zone` ( `id` int(10) unsigned NOT NULL AU...
本文將介紹使用mysql判斷點(diǎn)是否在指定多邊形區(qū)域內(nèi)的方法,提供完整流程。

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

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ū)域

測試 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)

測試 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)的方法》

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

相關(guān)推薦:

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

如何通過php 計(jì)算多個(gè)集合的笛卡爾積的相關(guān)知識

微信開發(fā)的分享接口 相關(guān)內(nèi)容

以上就是通過mysql 判斷點(diǎn)是否在指定多邊形區(qū)域內(nèi)的詳細(xì)內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


學(xué)習(xí)教程快速掌握從入門到精通的SQL知識。