从 MKMapView 中只删除餐馆

Posted

技术标签:

【中文标题】从 MKMapView 中只删除餐馆【英文标题】:Remove only restaurants from MKMapView 【发布时间】:2014-07-02 03:29:23 【问题描述】:

我希望我的 MKMapView 显示兴趣点除了餐厅。这可能吗?如果可以,我该如何设置?

我确实在 Documentation 中看到了以下内容,但这真的是全有还是全无?

@property (nonatomic) BOOL showsPointsOfInterest;

当此属性设置为 YES 时,地图会显示餐馆、学校和其他相关景点的图标和标签。此属性的默认值为 YES。

例如,在下面,我希望显示加油站而不显示餐厅。

【问题讨论】:

【参考方案1】:

ios 13 中,您可以选择过滤:这里是在地图上不显示任何项目的示例

localMap.pointOfInterestFilter = .some(MKPointOfInterestFilter(including: []))

例如,您可以从地图中过滤机场...

localMap.pointOfInterestFilter = .some(MKPointOfInterestFilter(including: [MKPointOfInterestCategory.airport]))

【讨论】:

如果要显式包含所有兴趣点,可以使用 exclude: localMap.pointOfInterestFilter = MKPointOfInterestFilter( exclude: []) @user1909186 不错!【参考方案2】:

无法控制绘制的特定类型的点。 Apple 可以添加/删除/更改它在 Map Kit 的任何未来更新中显示的特定类型。正如您所提到的,您唯一的做法是设置showsPointsOfInterest

您可以使用 Foursquare 或 Facebook 的第三方地点数据库来获取相似的兴趣点并将它们绘制在您的地图上,但不能保证结果与 Apple 会显示的结果一致。

【讨论】:

【参考方案3】:

iOS 13 中的另一个选项是包含或排除某些兴趣点:

// Includes airports
localMap.pointOfInterestFilter?.includes(MKPointOfInterestCategory.airport)


// Excludes laundry/laundromats
localMap.pointOfInterestFilter?.excludes(MKPointOfInterestCategory.laundry)

【讨论】:

以上是关于从 MKMapView 中只删除餐馆的主要内容,如果未能解决你的问题,请参考以下文章

从 UIViewController 中删除我的自定义 MKMapView

向 MKMapView 添加注释的最佳方法

Flutter:从后台堆栈中只删除一页

从另一个视图中的 MKMapView 中删除注释

如何从 python 中的字符串中只删除最后一个括号?

我可以重新定位已经放置在 MKMapView 上的 MKAnnotationView 吗?