2017-02-24 25 views
0

多边形我想返回从表中值,其中点在多边形场
我写了查询,但不准确究竟存在,返回值平衡点是围绕多边形如何返回值,如果点正好里面在MySQL

"select `name`,`loc_id` FROM `locations` where MBRContains(`polygons`,ST_GeomFromText('Point($loc[0] $loc[1])'))= 1" 

回答

1

在MySQL中,而非MBR(最小边界矩形),你应该使用ST_CONTAINS

"select `name`,`loc_id` 
    FROM `locations` 
    where ST_CONTAINS(`polygons`,ST_GeomFromText('Point($loc[0] $loc[1])'))= 1" 

ST_CONTAINS返回true,只有当一个功能包含其它并且由于事实,你正在检查点,使日是应该给你一个更好的结果

+0

感谢,但不起作用,例如这个多边形'35.745816 \t \t \t 51.22839,35.750552 \t \t \t 51.227703,35.748323 \t \t \t 51.221008,35.745537 \t \t \t 51.221695,35.735993 \t \t \t 51.221266 ,35.731046 \t \t \t 51.242294,35.72798 \t \t \t 51.253281,35.746234 \t \t \t 51.254826,51.254826 \t \t \t 51.254654,35.745816 \t \t \t 51.22839'我要寻找的点'35.72798 51.25328'结果显示什么 – amirali

+0

这是来自https://dev.mysql.com/doc/refman/5.6/en/spatial-relation -functions-object-shapes.html#function_st-contains ...确保你有适当的几何类型..和值 – scaisEdge

相关问题