Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何确定地球的哪些图像';s曲面与任意给定图像重叠?_Mysql_Gis_Geospatial_Latitude Longitude - Fatal编程技术网

Mysql 如何确定地球的哪些图像';s曲面与任意给定图像重叠?

Mysql 如何确定地球的哪些图像';s曲面与任意给定图像重叠?,mysql,gis,geospatial,latitude-longitude,Mysql,Gis,Geospatial,Latitude Longitude,假设给您一张地球表面的图像,并且它作为一个多边形存储在数据库中,该多边形由其角的纬度/经度对定义 现在假设有数百万张覆盖地球表面的图像也被类似地存储。找到与给定图像相交的图像的好策略是什么 我有一个基于图像“边界半径”的基本算法。但它并不是最优的,可以找到比应该返回的图像更多的图像 我已经看过MySQL的GIS空间功能,但其中的所有计算似乎都是用欧几里德几何完成的 本质上,我只需要一个函数,根据两个多边形(在球体上,由lat/long点定义)是否相交,返回“true”或“false”。看起来很简

假设给您一张地球表面的图像,并且它作为一个多边形存储在数据库中,该多边形由其角的纬度/经度对定义

现在假设有数百万张覆盖地球表面的图像也被类似地存储。找到与给定图像相交的图像的好策略是什么

我有一个基于图像“边界半径”的基本算法。但它并不是最优的,可以找到比应该返回的图像更多的图像

我已经看过MySQL的GIS空间功能,但其中的所有计算似乎都是用欧几里德几何完成的


本质上,我只需要一个函数,根据两个多边形(在球体上,由lat/long点定义)是否相交,返回“true”或“false”。看起来很简单,但我还没有找到一个实现。我自己想弄明白这一点很累。

我个人使用And(via)来解决这个问题

使用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表格“图像”中。

它们是否本机处理球坐标?目前,PostGIS已经过时了,因为我已经在使用MySQL了。geodjandro的多边形相交(pnt)可能正在做我需要的事情。我仍然不确定它是真正的横向/纵向计算还是线性计算。我正在看文件。谢谢。是的,他们支持和数不清的其他投影和坐标系统。我的印象是mysql的空间扩展是有限的,但我并没有太多地使用它们。GDAL当然可以。如果你要做空间运算,那么你真的应该抛弃MySQL。它们的大部分空间功能都没有实现,只是被删除了。PostGIS最近刚刚增加了对大地水准面计算的支持,而不是对投影的支持。我还没有发现任何关于非欧几里德坐标系的提及。据我所知,GEOS只是JTS拓扑套件的一个C实现。还有其他几个项目支持JTS拓扑套件。JTS拓扑套件的文档中没有提到任何关于投影、WGS84或坐标系的内容。所有拓扑结构似乎都发生在二维欧几里德空间中。也许我没有透过树木看到森林,但我在这些软件包中根本看不到任何球面几何体。我现在正在研究PostGIS。它似乎对纬度/经度数据进行了WGS84。这对我来说是个好问题。这似乎是我想要的。这里的文档页()说明它在地理对象的球体上工作。事实上,我对球面情况比椭球情况更感兴趣,所以这是一个加号。我发现在任何语言中处理这个看似简单的问题的API都很少。我会等一段时间,如果没有进一步的答案,你最终会得到一张绿色支票。