我需要制作一个点在多边形内的MySQL查询。
我已经找到了这两个好的解决方案:
http://forums.mysql.com/read.php?23,286574,286574
但是这些函数只能检查一个点是否在多边形内部。 我有一个查询,其中PiP部分应该只是查询的一部分,并且检查多边形内的x个点。
类似于这样:
$points = 使用所选语言的列表/数组/任何内容的点
SELECT d.name
FROM data AS d
WHERE d.name LIKE %red%
// just bla bla
// how to do this ?
AND $points INSIDE d.polygon
AND myWithin( $points, d.polygo ) // or
更新
我尝试使用像这样的MBR函数:
SET @g1 = GeomFromText('Polygon((13.43971 52.55757,13.41293 52.49825,13.53378 52.49574, 13.43971 52.55757))');
SET @g2 = GeomFromText('Point(13.497834 52.540489)');
SELECT MBRContains(@g1,@g2);
G2不应该在G1里面,但是MBR说它在。
MBRContains()
函数有什么问题? - eggyal