gpt4 book ai didi

postgresql - 多行 POLYGON 与一个 MULTIPOLYGON 字段的优缺点是什么?

转载 作者:行者123 更新时间:2023-11-29 11:58:57 24 4
gpt4 key购买 nike

所以这是我第一次做一个涉及 map 和图层的项目, map 上有很多点和很多多边形。

我倾向于为点和多边形创建单独的表,然后在它们与图层表之间创建多对多关系。如果这样做,我最终会得到 5 个表:pointspolygonslayerslayers_points layers_polygons.

但是,我看到 PostGIS 还提供了称为 MULTIPOINTMULTIPOLYGON 的类型。如果我使用这些类型,那么我可以将它们全部放在 layers 表中。我想这会使查询更快,因为我需要更少的连接。但是,我不确定以后我是否会后悔,如果这意味着无法处理单个点和多边形。我什至不确定是否有必要对单个点和多边形执行计算,但很高兴知道这两种方法是否可行。

所以基本上我要问的是,这些不同方法的优缺点是什么?

最佳答案

通常,您会考虑使用多边形来表示具有不相交表面的实体(例如,阿拉斯加的几何形状)或您无法表示为多边形的其他拓扑。这里的关键是单个实体需要用多边形表示

不会做的是将不相关多边形分组到一个多多边形中,因为您将无法在子多边形级别执行查询,除非您提取环变成另一个几何体。如果多边形不相关,您可能需要单独查询它们。即使它们共享一个层,您也可以在不合并它们的情况下管理与业务逻辑的关系,因为它们不代表同一个实体。

请记住,前端的几何工具不一定会将多面体视为有效几何体或多对象。看起来像您的用例的多边形点算法在检查一个点是否包含在多多边形中时不一定有效。

像 Wicket.js 这样的工具(从/到 WKT/geojson/native 对象的转换)不支持多面体。 Google maps api v3 不支持除数据层外的多面(但您不能像在多边形特征上那样在数据层上操作)。 Turf.js 的操作会在包含多个多边形的 Featurecollection 上运行,但不会在多多边形上运行。

在不知道您的确切用例的情况下,这是我能告诉您的最好的,TL/DR:保持多边形原样

关于postgresql - 多行 POLYGON 与一个 MULTIPOLYGON 字段的优缺点是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42420762/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com