如何在Looker中基于JSON列绘制Polygon数据
在Looker中处理BigQuery的Polygon地理数据
直接给你最实用的处理步骤,不用绕弯路:
第一步:把字符串类型的GeoJSON转成BigQuery的GEOGRAPHY类型
你的polygon_shape是标准的GeoJSON字符串,直接用BigQuery的ST_GEOGFROMGEOJSON函数转成专门的地理类型就行,这是最关键的一步——Looker对BigQuery的GEOGRAPHY类型有原生支持,不管是画地图还是做空间聚合都能用。你可以直接在Looker的视图文件里定义这个维度,不用提前修改BigQuery表:
dimension: polygon_geography { type: geography sql: ST_GEOGFROMGEOJSON(${TABLE}.polygon_shape) ;; }不需要单独提取coordinates字段
单独拆坐标数组完全没必要,Looker需要的是完整的地理对象才能识别为Polygon并绘制,拆成零散的坐标反而没法直接用在地图上。不用转成JSON类型
JSON类型只是存储格式,没有空间计算能力,而GEOGRAPHY类型是BigQuery专门为地理数据设计的,支持各种空间函数(比如计算面积、判断相交),Looker也能直接识别这个类型做可视化。可视化和聚合的具体用法
- 绘制Polygon:在Looker探索里,把
polygon_geography维度拖到地图组件,选择「Polygon」图层类型就能直接显示所有区域。 - 空间聚合分析:比如统计和某个指定区域相交的Polygon数量,可以这么定义度量:
measure: intersecting_polygon_count { type: count filters: { field: polygon_geography sql: ST_INTERSECTS(${polygon_geography}, ST_GEOGFROMTEXT('POLYGON((-11.7 36.6, -11.6 36.6, -11.6 36.7, -11.7 36.7, -11.7 36.6))')) ;; } } - 计算Polygon面积:
dimension: polygon_area_sq_meters { type: number sql: ST_AREA(${polygon_geography}) ;; value_format_name: decimal_2 }
- 绘制Polygon:在Looker探索里,把
内容的提问来源于stack exchange,提问作者Nina
相关产品推荐
相关产品推荐

