【问题标题】:How to remove map Places and annotations from MKMapKit in Objective c如何在Objective c中从MKMapKit中删除地图位置和注释
【发布时间】:2018-11-27 02:20:48
【问题描述】:

嗨,我的项目中有一个 MapView,我需要从 MapView 中删除所有标签注释、位置。看起来像普通的 mapView

我尝试了以下代码,它工作正常,但我仍然得到了一些建筑细节、街道名称和我想要的所有内容,也只能删除用户位置可见

代码如下:

[mapView setShowsPointsOfInterest:NO];

上面的代码工作正常并从 mapKit 中删除了默认位置图标,但没有删除所有图标和标签,如何从 MapKit 中删除所有默认图标和标签名称

【问题讨论】:

标签: ios objective-c mapkit mapkitannotation


【解决方案1】:

iOS 11开始,可以设置

mapView.mapType = .mutedStandard

这会消除地图上令人分心的细节。

Apple 使用这种类型的地图,当他们想要强调运输路线并且其他所有内容都应该在背景中而不分散注意力时。

iOS 13 开始,您可以进行更精细的控制:

使用MKMapKit.pointOfInterestFilter,您可以包含或排除特定类别的兴趣点。

因此,如果您正在制作“我所在城市的最佳餐厅”应用程序,您的应用程序有自己的餐厅注释,您可以从 Apple 的兴趣点中删除餐厅类别,但所有其他 POI 类别都适合您。

https://developer.apple.com/documentation/mapkit/mkmapview/3143417-pointofinterestfilter?language=objc

【讨论】:

    【解决方案2】:

    这似乎有点杂乱无章。

    首先,您将地图替换为您自己的叠加层...

    self.mapView.insertOverlay(underlay, at: 0, level: MKOverlayLevel.aboveLabels)
    

    这可以是任何东西。如果您想使用 Google 地图或 Open Street Map,您可以像这样:

    let url = "http://mt0.google.com/vt/x={x}&y={y}&z={z}"
    //let url = "http://c.tile.openstreetmap.org/{z}/{x}/{y}.png"
    let underlay = MKTileOverlay(urlTemplate: url)
    underlay.canReplaceMapContent = true
    

    或者,如果你只是想要空白,给它一个默认层:

    let underlay = MKTileOverlay()
    underlay.canReplaceMapContent = true
    

    参数level: 允许您指定您的背景是否仅遮盖他们的背景地图、背景和道路或背景和标签,但不能高于一切。文档说:

    MKOverlayLevel.aboveLabels

    case aboveLabels = 1

    将叠加层放置在地图标签、盾牌或兴趣点上方 图标,但位于建筑物的注释和 3D 投影下方。

    我无法让它适用于默认 MKTileOverlay() - 它似乎与替代 .aboveRoads 相同 - 即它隐藏了所有地图,包括道路,但不隐藏标签。当您指定其中一个外部叠加层(例如 google)时 - 它们会替换标签。可能是一个错误,所以最后一步,完全消除标签是

    self.mapView.mapType = .satellite
    

    这会删除标签,并且您的叠加层会隐藏卫星地图。不整洁,但也不难。

    【讨论】:

      【解决方案3】:

      万一有人回来,在撰写本文时,如果您只需要地图和道路名称,没有兴趣点,只需使用

      mapView.pointOfInterestFilter = .excludingAll
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-13
        • 2012-06-07
        • 2023-03-16
        • 1970-01-01
        • 2014-05-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多