You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过给定坐标获取NYC出租车区域?求BigQuery实现示例

通过经纬度匹配NYC Taxi Zone的BigQuery示例

单坐标查询

假设你已经将NYC Taxi Zones数据集导入到BigQuery(表名示例:your-project.your-dataset.taxi_zones),用以下SQL就能根据给定经纬度找到对应的区域:

SELECT
  zone,
  borough,
  location_id
FROM
  `your-project.your-dataset.taxi_zones`
WHERE
  ST_CONTAINS(
    ST_GEOGFROMTEXT(shape), -- 把数据里的multipolygon文本转成地理对象
    ST_GEOGPOINT(-73.9857, 40.7484) -- 替换成你的目标经度、纬度(注意先经度后纬度)
  )

批量坐标查询

如果要一次性匹配多个坐标,可以用临时表来批量处理:

WITH input_coords AS (
  SELECT ST_GEOGPOINT(-73.9857, 40.7484) AS point, 'Times Square' AS location_name
  UNION ALL
  SELECT ST_GEOGPOINT(-73.9712, 40.7505) AS point, 'Grand Central' AS location_name
)
SELECT
  ic.location_name,
  tz.zone,
  tz.borough,
  tz.location_id
FROM
  input_coords ic
LEFT JOIN
  `your-project.your-dataset.taxi_zones` tz
ON
  ST_CONTAINS(ST_GEOGFROMTEXT(tz.shape), ic.point)

核心逻辑说明

  • ST_CONTAINS:BigQuery的空间判断函数,用来检查multipolygon类型的区域是否包含目标点
  • ST_GEOGFROMTEXT:将数据集中存储的WKT格式多边形文本转换为BigQuery可处理的地理对象
  • ST_GEOGPOINT:构建点地理对象,参数顺序必须是经度在前,纬度在后,这是很多人容易踩的坑

内容的提问来源于stack exchange,提问作者Hyunuk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 20:57:21