本文將介紹使用mysql判斷點是否在指定多邊形區域內的方法,提供完整流程。
相關mysql影片教學推薦:《mysql教學》
CREATE TABLE `zone` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `polygongeo` polygon NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MYISAM DEFAULT CHARSET=utf8;
注意:空間索引只能在儲存引擎為MYISAM的表中建立
insert into zone(polygongeo) values(POLYGONFROMTEXT('POLYGON((1 1,1 5,5 5,5 1,1 1))'));
測試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檔案包含目錄配置open_basedir的使用與效能分析
以上是如何透過mysql 判斷點是否在指定多邊形區域內的詳細內容。更多資訊請關注PHP中文網其他相關文章!