问题描述
我希望使用 Apache Sedona(以前称为 GeoSpark)连接两个表,并在两种方法之间获得意想不到的差异。特别是 ST_distance 似乎产生了一些奇怪的结果,我不知道这是 Sedona 的问题还是(更有可能)我使用该函数的方式的问题。
我正在尝试加入彼此相距小于 5m 的对象。
方法一(在相交处使用缓冲区)
SELECT
MAX(ST_distance(left.geometry,right.geometry)
FROM
left
INNER JOIN
right
ON ST_INTERSECTS(left.geometry,ST_BUFFER(right.geometry,5))
这产生了预期的结果(即这些物体之间的最大距离约为 5)
方法二(使用距离评估)
SELECT
MAX(ST_distance(left.geometry,right.geometry)
FROM
left
INNER JOIN
right
ON ST_disTANCE(left.geometry,right.geometry) < 5
在我看来,这两个查询的结果应该或多或少相同,尤其是后者 looks like the Apache Documentation recommends it。
这两个查询的评估结果是否不同?我忽略了这些功能的本质,或者这真的是 Sedona 的问题吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)