假设您获得了地球表面的图像,并将其存储为数据库中的一个多边形,该多边形由其角的经度/纬度对定义.
现在,假设有数以百万计的图像覆盖地球表面,并且它们也以类似的方式存储.找到那些与给定图像相交的图像的好策略是什么?
我有一个基于图像的“边界半径”的工作基本算法.但这不是最佳选择,它会发现比应返回的图像更多的图像.
我已经看过MySQL的GIS空间功能,但是其中的所有计算似乎都是在欧几里得几何中完成的.
本质上,我只需要一个返回“ true”或“ false”的函数,具体取决于两个多边形(在球体上并由纬度/经度点定义)是否相交.看起来很简单,但我还没有找到实现方法.自己弄清楚这个想法很累.
解决方法:
使用PostGIS,您可以运行以下内容:
SELECT b.*
FROM images AS a
JOIN images AS b
ON ST_Intersects(a.the_geom,b.the_geom)
WHERE a.name = "The image you are interested in"
假定所有图像边界都包含在同一PostGIS表“图像”中.