You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建覆盖极点的MKPolygon多边形的正确实现方法是什么

问题原因

MapKit 绘制 MKPolygon 时会默认将相邻顶点沿球面最短路径连接,你提供的所有顶点都位于南纬70°环绕南极点,系统会默认沿纬度线连接顶点,最终形成的是沿南纬70°的闭合环,而非向南覆盖到南极点的区域,所以只会显示环形或者直线。
设置 hybridFlyover 没有效果是因为该设置仅更改地图渲染样式,不影响多边形的路径计算逻辑。

正确实现方法

需要在坐标数组中明确包含极点坐标,同时保证经度数值的连续性,避免跨180°经线时路径计算错误:

// 覆盖南极点的多边形示例:覆盖南纬70°到南极点的所有区域
let coordinates = [
    CLLocationCoordinate2D(latitude: -70, longitude: 0),
    CLLocationCoordinate2D(latitude: -70, longitude: 90),
    CLLocationCoordinate2D(latitude: -70, longitude: 180),
    // 此处用270等同于-90,保证经度数值连续,不会往反方向绕路
    CLLocationCoordinate2D(latitude: -70, longitude: 270),
    // 加入南极点坐标,明确区域覆盖到极点
    CLLocationCoordinate2D(latitude: -90, longitude: 0)
]
let polygon = MKPolygon(coordinates: coordinates, count: coordinates.count)

如果需要覆盖北极点,只需要将极点纬度改为90,外围顶点的纬度改为对应北纬数值即可。

内容的提问来源于stack exchange,提问作者sbooth

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:15:08