使用地理定位数据构建多边形的问题

Issues Building A Polygon with Geolocated Data

我在使用已经定位的数据在 BigQuery 中构建多边形时遇到问题。当我根据对此事发布的其他问题的阅读使用以下查询来构建它时,我收到此错误,在阅读与此事相关的许多其他问题后我无法解决该错误。我能得到这方面的帮助吗?我已经发布了我正在使用的数据作为 pandas 数据框,为大家提供一个合适的参考点。

错误信息:

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'])

而不是失败

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))