我有一个包含纬度和经度坐标的表,需要将距离添加到 Bigquery 中名为“距离”的新列中。
桌子
开始纬度 | 结束纬度 | 开始_lng | 结束_lng |
---|---|---|---|
41.8964 | 41.9322 | -87.661 | -87.6586 |
41.9244 | 41.9306 | -87.7154 | -87.7238 |
41.903 | 41.8992 | -87.6975 | -87.6722 |
我不知道该怎么做。我看到了一些例子,但根本无法将其应用到这个案例中。 有什么建议吗?
ST_DISTANCE
函数将计算两点之间的距离(以米为单位)。
with my_data as (
select 1 as trip_id, 41.8964 as start_lat, 41.9322 as end_lat, -87.661 as start_lng, -87.6586 as end_lng
union all
select 2, 41., 41.9306, -87.7154, -87.7238
)
select trip_id,
ST_DISTANCE(ST_GEOGPOINT(start_lng, start_lat), ST_GEOGPOINT(end_lng, end_lat)) as distance_in_meters
from my_data
输出:
行程_id | 距离米 |
---|---|
1 | 3985.735019583467 |
2 | 103480.52812005761 |