2016-09-29 230 views
0

我已經閱讀Teradata Version 13及之後的版本,您可以使用ST_SPHERICALDISTANCE來計算地理距離。 我寫在Teradata的一個簡單的測試查詢:使用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 row not delivered (trget): 13 OGRGeometryFactoryX::createFromWkt failed.

這是與查詢或配置的問題嗎? 感謝

回答

2

簡單點定義中刪除逗號:)

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)') 
+0

感謝@dnoeth的查詢工作吧! 但我發現的一件事是,ST_SPHERICALDISTANCE沒有以km或m爲單位返回距離。我將如何轉換爲公里? 請參閱https://www.wolframalpha.com/input/?i=lat-35+lon149+to+lat-35+lon150 –

+0

爲了找到以km爲單位的距離,必須將ST_SPHERICALDISTANCE()的值除以1000. –

+0

同樣在'Point()'中,數值是經度然後是緯度,這與寫地理座標的傳統方式不同。 –