【发布时间】:2014-08-25 18:11:57
【问题描述】:
我正在开发谷歌地图搜索功能。这样做的目的是找出(地理定位)点是否位于多边形内,如下图所示?
我正在使用带有 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) P>
这是我的 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 正确。
【问题讨论】:
标签: mysql geospatial