【问题标题】:Issues Building A Polygon with Geolocated Data使用地理定位数据构建多边形的问题
【发布时间】:2021-01-09 20:15:41
【问题描述】:

我在使用已定位的数据在 BigQuery 中构建多边形时遇到问题。当我使用以下查询根据我阅读有关此问题的其他问题来构建它时,我收到此错误,在阅读与此问题相关的许多其他问题后我无法排除故障。我能得到这方面的帮助吗?我已经发布了我作为熊猫数据框使用的数据,以便为大家提供适当的参考点。

错误信息:

ST_MakePolygon 失败:多边形循环无效:边 1 与边 7 有重复的顶点

查询:

WITH Table as (SELECT DISTINCT location, latitude, longitude FROM dataset.table 
WHERE latitude is not null and longitude is not null)

SELECT County, PRECINCT_NAME, ST_MAKEPOLYGON(ST_MAKELINE(ARRAY_AGG(ST_GEOGPOINT(longitude, latitude)))) as geom
FROM Table
Group By location

数据集供参考:

import pandas as pd
df=pd.DataFrame(data=[('location', 'location', 'location', 'location', 'location', 'location'), (-84.2996966, -84.31496, -84.31463, -84.29973, -84.29918, -84.29949), 
(39.1699112, 39.219543, 39.21876, 39.16986, 39.17092, 39.17686)], columns=['location', 'longitude', 'latitude'])

【问题讨论】:

    标签: python google-bigquery gis polygon


    【解决方案1】:

    而不是失败

    ST_MAKEPOLYGON(ST_MAKELINE(ARRAY_AGG(ST_GEOGPOINT(longitude, latitude)))) as geom
    

    你可以试试下面

    ST_CONVEXHULL(ST_UNION_AGG(ST_GEOGPOINT(longitude, latitude))) as geom
    

    如果对您问题中的示例数据运行此命令 - 结果是

    POLYGON((-84.31496 39.219543, -84.29973 39.16986, -84.2996966 39.1699112, -84.29918 39.17092, -84.29949 39.17686, -84.31463 39.21876, -84.31496 39.219543))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      • 2019-04-03
      • 2018-08-05
      • 1970-01-01
      相关资源
      最近更新 更多