在 MKMapView 上绘制网格
Posted
技术标签:
【中文标题】在 MKMapView 上绘制网格【英文标题】:Draw a grid onto an MKMapView 【发布时间】:2014-08-25 08:56:59 【问题描述】:我想在我的地图中绘制一个网格,它表示某个缩放级别的图块的大小。因此,例如,我想在我的地图视图上有一个网格,显示缩放级别 10 瓷砖的轮廓。所以这个瓷砖的轮廓。无论地图视图本身的缩放级别是 5 还是 15,它都应该显示该图块放置位置的轮廓。
我遇到的问题是如何计算代表每个可见“瓷砖”的正确矩形。
非常感谢任何帮助!!!
或者以下问题的答案可能会有所帮助:
如何将 MKMapRect 转换为 MKTileOverlayPath?
【问题讨论】:
【参考方案1】:我发现当您想开始越来越多地使用地图时,MapKit 太有限了。
我会推荐使用适用于 ios 的 Google Maps SDK:https://developers.google.com/maps/documentation/ios/start
然后将 GMSTileLayer 用于图块: https://developers.google.com/maps/documentation/ios/reference/interface_g_m_s_tile_layer
从长远来看,将 MapKit 替换为 Google 地图可为您提供更多功能和选项,并且比 Apple 具有更好的地理定位和反向地理定位
【讨论】:
虽然这可能是真的,但 OP 应该知道 Google Maps 是一项付费服务,并且用户可以执行的 API 调用数量有限,而 Apple Maps 是免费的,并且仅在不合理的情况下限制 API 访问API 调用的数量。 这个答案来自 2014 年(5 年前),虽然仍然相关,但 Apple 地图框架及其支持的位置数据要强大得多【参考方案2】:您也可以查看Mapbox。在使用 TileMill 通过将 Map
背景设置为图案图像来创建网格层之间,您只能导出缩放级别 10 并将其托管在 Mapbox 上或将其导出为 MBTiles 格式(基于 SQLite)。然后,其中一个 Mapbox 移动工具包可以将图块作为地图上的叠加层提供。
【讨论】:
以上是关于在 MKMapView 上绘制网格的主要内容,如果未能解决你的问题,请参考以下文章
使用 MKMapView 的 showShowsUserLocation 方法而不显示视图
MKMapView 和 setRegion:animated: 不更新地图视觉效果
使用 UIView 作为 MKMapView 子视图来绘制路线