【问题标题】:Teradata distance between two geo-coordinates using ST_SPHERICALDISTANCE使用 ST_SPHERICALDISTANCE 的两个地理坐标之间的 Teradata 距离
【发布时间】:2017-03-22 21:59:37
【问题描述】:

我已在 Teradata 版本 13 及更高版本中阅读过,您可以使用 ST_SPHERICALDISTANCE 来计算地理距离。 我在 Teradata 中写了一个简单的测试查询:

Select
Cast('POINT(-35.0000, 150.0000)' As ST_GEOMETRY) As location1,
Cast('POINT(-35.0000, 149.0000)' As ST_GEOMETRY) As location2,
location1.ST_SPHERICALDISTANCE(location2) As Distance_In_km

但收到以下错误:

Teradata 行未交付 (trget):13 OGRGeometryFactoryX::createFromWkt 失败。

这是查询或配置的问题吗? 谢谢

【问题讨论】:

    标签: sql geospatial teradata


    【解决方案1】:

    只需删除点定义中的逗号 :)

    Select
    Cast('POINT(-35.0000 150.0000)' As ST_GEOMETRY) As location1,
    Cast('POINT(-35.0000 149.0000)' As ST_GEOMETRY) As location2,
    location1.ST_SPHERICALDISTANCE(location2) As Distance_In_km
    

    顺便说一句,另一种创建点的方法:

    NEW ST_GEOMETRY('POINT(-35.0000 150.0000)')
    

    【讨论】:

    • 感谢@dnoeth 查询现在有效!但我发现的一件事是 ST_SPHERICALDISTANCE 没有返回以公里或米为单位的距离。怎么换成公里?见wolframalpha.com/input/?i=lat-35+lon149+to+lat-35+lon150
    • 为了找到以公里为单位的距离,ST_SPHERICALDISTANCE() 的值必须除以 1000。
    • 同样在 'Point()' 中,值是经度然后纬度,这与传统的地理坐标书写方式不同。
    猜你喜欢
    • 1970-01-01
    • 2016-02-22
    • 1970-01-01
    • 2010-11-23
    • 2016-07-16
    • 2012-08-06
    • 1970-01-01
    • 2019-08-05
    • 2016-05-30
    相关资源
    最近更新 更多