使用 BigQuery Geo Viz 可视化多边形及其质心

Using BigQuery Geo Viz to visualize a polygon and its centroid

使用 BigQuery Geo Viz,

我正在尝试在同一张地图上同时可视化多边形及其质心点。

我尝试了 ST_UNION 函数,但无法真正组合两个 GEOGRAPHY。

知道如何可视化这两个 GEOGRAPHY。

Polygon:
POLYGON((-95.7082555 29.9212101, -95.665885 29.907145, -95.7742806214083 29.82947355, -95.7303605 29.8538605, -95.659484 29.901497, -95.662932 29.894958, -95.8441482 29.7265376, -95.646749 29.905534, -95.810012 29.719363, -95.664174 29.883618, -95.639718 29.910045, -95.652796 29.89204, -95.649915 29.886317, -95.650089 29.881912, -95.641443 29.897741, -95.632912 29.911674, -95.653458 29.864561, -95.635056 29.864431, -95.636533 29.757219, -95.623339 29.903466, -95.597235 29.75367, -95.3636989932886 29.8063167449664, -95.575123 29.920295, -95.3944858832763 29.94248964622, -95.147033 30.013214, -95.586588 29.947706, -95.456723 31.3287239, -95.69717 29.96911, -95.674433 29.943844, -95.678203 29.935184, -95.7082555 29.9212101))

Centroid point:
POINT(-95.5606651932764 30.2307053050834)

尝试分别选择两个结构并使用 UNION ALL 将它们聚集在同一个可视化中:

SELECT ST_GeogFromText('POLYGON((-95.7082555 29.9212101, -95.665885 29.907145, -95.7742806214083 29.82947355, -95.7303605 29.8538605, -95.659484 29.901497, -95.662932 29.894958, -95.8441482 29.7265376, -95.646749 29.905534, -95.810012 29.719363, -95.664174 29.883618, -95.639718 29.910045, -95.652796 29.89204, -95.649915 29.886317, -95.650089 29.881912, -95.641443 29.897741, -95.632912 29.911674, -95.653458 29.864561, -95.635056 29.864431, -95.636533 29.757219, -95.623339 29.903466, -95.597235 29.75367, -95.3636989932886 29.8063167449664, -95.575123 29.920295, -95.3944858832763 29.94248964622, -95.147033 30.013214, -95.586588 29.947706, -95.456723 31.3287239, -95.69717 29.96911, -95.674433 29.943844, -95.678203 29.935184, -95.7082555 29.9212101))') t UNION ALL SELECT ST_GeogFromText('POINT(-95.5606651932764 30.2307053050834)') t

如果您的目的是在同一个可视化中显示几何图形和点,它将像您在下图中看到的那样工作:

如果这就是您要找的东西,请告诉我

对于您在只有一个多边形及其质心的问题中提出的简单方案,简单解决方案有效

#standardSQL
WITH objects AS (
  SELECT 'POLYGON((-95.7082555 29.9212101, -95.665885 29.907145, -95.7742806214083 29.82947355, -95.7303605 29.8538605, -95.659484 29.901497, -95.662932 29.894958, -95.8441482 29.7265376, -95.646749 29.905534, -95.810012 29.719363, -95.664174 29.883618, -95.639718 29.910045, -95.652796 29.89204, -95.649915 29.886317, -95.650089 29.881912, -95.641443 29.897741, -95.632912 29.911674, -95.653458 29.864561, -95.635056 29.864431, -95.636533 29.757219, -95.623339 29.903466, -95.597235 29.75367, -95.3636989932886 29.8063167449664, -95.575123 29.920295, -95.3944858832763 29.94248964622, -95.147033 30.013214, -95.586588 29.947706, -95.456723 31.3287239, -95.69717 29.96911, -95.674433 29.943844, -95.678203 29.935184, -95.7082555 29.9212101))' wkt_string UNION ALL
  SELECT 'POINT(-95.5606651932764 30.2307053050834)'
)
SELECT ST_GEOGFROMTEXT(wkt_string) geo
FROM objects    

这可以用不同的工具可视化——如下例所示

对于更现实的场景,当您有许多多边形并且需要将它们与它们的质心一起可视化时 - 您可以使用以下方法(基于美国各州的示例)

#standardSQL
SELECT state_geom state, ST_CENTROID(state_geom) centroid
FROM `bigquery-public-data.utility_us.us_states_area`

结果如下

可以在下面的示例中可视化(仅显示几个状态以获得想法)

最后,您可以将所有此类多边形(本例中的状态)与其质心组合在一起,呈现出漂亮的可视化效果,如下所示

您可以做的另一件事(在许多无尽的选项中)是向查询添加一些指标和更多属性 - 例如 state_name 和 area_land_meters 并使您的可视化数据驱动并具有动态性如下例所示的工具提示