在SQL中,我存储了地理信息。我想看看地理是否覆盖了一半以上的地球,地理是否跨越了国际日期线,或者地理是否跨越了赤道。
我提出了下面的逻辑,现在确定它是否正确。
覆盖全球一半以上的
。
请纠正有任何更好的逻辑。
发布于 2021-11-25 22:36:36
不确定您使用的是什么SQL数据库,但大多数数据库都有空间函数。语法和lat/lon顺序可能因数据库的不同而不同。
大于半球:
ST_Area(geo) >地球表面面积/2
交叉反子午线(日期行略有不同)
ST_Intersects(geo,ST_GeographyFromText('Linestring(180 -90,180 0,180 0)“)
横越赤道:
ST_Intersects(geo,ST_GeographyFromText('Linestring(-180 0,-60 0,60 0,180 0‘))
https://stackoverflow.com/questions/69466922
复制相似问题