Mysql,如何找到矩形边界的交集

标签 mysql intersection matching bounds overlapping

我已经在我的数据库表中保存了来自谷歌地图的边界。现在我必须根据匹配边界来显示这些条目。

例如,我有一个基于位置/边界的仪表板条目表。我正在为谷歌地图返回的每个仪表板条目保存边界。现在,如果用户想查看与他的城市/国家相关的仪表板帖子,那么我必须根据用户城市/国家边界与仪表板条目边界进行匹配。因此,对于该用户,所有这些仪表板条目都会出现,其边界与用户城市/国家/地区边界重叠。

现在我正在尝试使用 MySql OVERLAPS。但我无法获得正确的结果:(

带有一些测试条目的表转储:

INSERT INTO dashboard_entries 
  (id, category_id, entry_title, entry_description, customer_id, entry_date, latitude, longitude, bounds_ne_lat, bounds_ne_lng, bounds_sw_lat, bounds_sw_lng)
VALUES (150, 10, 'Blog Post for China Trip', 'Test Description', 43, '2012-02-08 15:17:46', '48.229147', '16.346052', 39.9084350, 78.6526391, 32.5301142, 116.3918633), (151, 16, 'Trip Post for Lahore Pakistan', 'Trip Post for Lahore Pakistan', 43, '2012-02-08 15:19:14', '48.229147', '16.346052', 34.0160320, 66.6578507, 24.7482340, 75.3818660); 

这是我正在使用的查询:

select * 
from dashboard_entries 
where Overlaps(GeomFromText('Polygon((34.0160320 66.6578507,34.0160320 75.3818660,24.7482340 75.3818660,24.7482340 66.6578507,34.0160320 66.6578507))'), GeomFromText('Polygon((bounds_ne_lat bounds_ne_lng,bounds_ne_lat bounds_sw_lng,bounds_sw_lat bounds_sw_lng,bounds_sw_lat bounds_ne_lng,bounds_ne_lat bounds_ne_lng))'))

最佳答案

我已经使用 mysql 的 INTERSECT 函数找到两个矩形的交点。我相信 Overlaps 功能还没有实现。它需要两个矩形边界参数,如下所示。第二个参数也是保存在数据库中的多边形。

SELECT * 
FROM dashboard_entries 
WHERE intersects(GeomFromText('Polygon((34.0160320 66.6578507,34.0160320 75.3818660,24.7482340 75.3818660,24.7482340 66.6578507,34.0160320 66.6578507))'), location_bounds)

关于Mysql,如何找到矩形边界的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9198878/

相关文章:

Python 两个列表之间的通配符匹配

php - 从另一个类获取已创建的 mysqliDb 连接

php - 尝试在 PHP 中使用 "SET @rownum = 0;"时出错

mysql - 我如何在 Codeigniter 的连接查询中使用 if 语句

string - Rust 中的匹配字符串

php - 当我尝试使用 laravel 添加主键的数据类型字符串时发生错误

c - 这个程序用C怎么实现呢?第3.2-3.9部分

mysql - Mysql 交集中的单列多过滤器

shell - 检查系统上某个根CA是否受信任