我正在处理谷歌地图搜索功能。其目的是查找一个(地理位置)点是否位于一个多边形内,如下图所示:
我使用带有Spatial扩展的mysql 5.6.20,我知道它内置了很有用的几何函数,所以我可以直接从数据库中查询编码后的位置。
我的目标是熟悉地理空间函数,所以我编写了一个实验性的SQL语句。
给出一个点位置:POINT(100.52438735961914 13.748889613522605)
和要测试的多边形或边界为:POLYGON(100.49503326416016 13.766897133254545,100.55940628051758 13.746555203977,100.56266784667969 13.72170897580617,100.48885345458984 13.739051587150175)
以下是我的SQL示例:
SELECT ST_Within(
ST_GEOMFROMTEXT('POINT(100.52438735961914 13.748889613522605)'),
ST_GEOMFROMTEXT('POLYGON(100.49503326416016 13.766897133254545,
100.55940628051758 13.746555203977,100.56266784667969 13.72170897580617,
100.48885345458984 13.739051587150175)'))
As geoFenceStatus
但是,在输入命令后,我得到的回复似乎如下所示:
geoFenceStatus
===============
null
我不确定为什么它返回了'null'值。因为函数文档中指出,如果一个点在给定的多边形内部,应该返回'1'
如何正确获取我的SQL有什么建议将不胜感激。