RLMGeospatialPolygon
Objective-C
@interface RLMGeospatialPolygon : NSObject <RLMGeospatial>
Swift
class RLMGeospatialPolygon : NSObject, RLMGeospatial, @unchecked Sendable
表示多边形的类,可用于地理空间geoWithin
查询。
RLMGeospatialPolygon
描述了一种由外部Polygon
(称为outerRing
)和 0 个或多个内部Polygon
(称为holes
)一致的形状,它表示外部Polygon
内有无限数量的内孔。 Polygon
描述由至少三个线段组成的形状,其中最后一个和第一个RLMGeospatialPoint
必须相同才能表示闭合多边形(这意味着至少需要 4 个点才能定义多边形)。 RLMGeospatialPolygon
中的内孔必须完全位于外环内部
hole
具有以下限制:
- 孔不得交叉,即一个孔的边界不得与任何其他孔的内部和外部相交。
- 孔不得共享边,即,如果一个孔包含边 AB,则其他孔不得包含该边。
- 孔可以共享顶点,但任何顶点不得在单个孔中出现两次。
- 没有一个洞是空的。
只允许嵌套一次。
警告
此类无法持久保存,只能在地理空间geoWithin
查询中使用。
-
多边形的外环。
声明
Objective-C
@property (strong, readonly) NSArray<RLMGeospatialPoint *> *_Nonnull outerRing;
Swift
var outerRing: [RLMGeospatialPoint] { get }
-
多边形中的孔(如果有)。
声明
Objective-C
@property (strong, readonly, nullable) NSArray<NSArray<RLMGeospatialPoint *> *> *holes;
Swift
var holes: [[RLMGeospatialPoint]]? { get }
-
初始化
RLMGeospatialPolygon
及其外环和孔(如果有)。如果表示多边形(外环或孔)的
RLMGeospatialPoints
没有至少 4 个点,则返回nil
。 如果多边形中的第一个RLMGeospatialPoint
和最后一个不同,则返回nil
。声明
Objective-C
- (nullable instancetype)initWithOuterRing: (nonnull NSArray<RLMGeospatialPoint *> *)outerRing;
Swift
init?(outerRing: [RLMGeospatialPoint])
参数
outerRing
多边形的外环。
-
初始化
RLMGeospatialPolygon
及其外环和孔(如果有)。如果表示多边形(外环或孔)的
RLMGeospatialPoints
没有至少 4 个点,则返回nil
。 如果多边形中的第一个RLMGeospatialPoint
和最后一个不同,则返回nil
。声明
Objective-C
- (nullable instancetype) initWithOuterRing:(nonnull NSArray<RLMGeospatialPoint *> *)outerRing holes: (nullable NSArray<NSArray<RLMGeospatialPoint *> *> *)holes;
Swift
init?(outerRing: [RLMGeospatialPoint], holes: [[RLMGeospatialPoint]]?)
参数
outerRing
多边形的外环。
holes
多边形中的孔(如果有)。