SQL:使用坐标计算两点之间的距离

问题描述 投票:0回答:1

我有一个包含纬度和经度坐标的表,需要将距离添加到 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

我不知道该怎么做。我看到了一些例子,但根本无法将其应用到这个案例中。 有什么建议吗?

sql google-bigquery coordinates distance
1个回答
2
投票

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
© www.soinside.com 2019 - 2024. All rights reserved.